Python入門三部曲(二)

1.起步

2.變量和簡單數(shù)據(jù)類型

1.變量

message = "hello world python"
  print(message)
        

2.命名

2.使用變量時避免命名錯誤
3.字符串

1.使用方法修改字符串的大小寫

name = 'ada lovelace'
print(name.title())
輸出得到:
Ada Lovelace

title()以首字母大寫的方式顯示每個單詞北专,即每個單詞的首字母都改為大寫

print(name.upper())
print(name.lower())
得到:
ADA LOVELACE
ada lovelace

2.拼接字符串
用“+” 來拼接字符串
“\t,\n”來空格與換行
3.刪除空白
rstrip() 刪除末尾的空白
lstrip() 刪除頭部的空白
strip() 刪除字符串兩端的空白

msg = ' python '
print(msg.rstrip())
print(msg.lstrip())
print(msg.strip())
得到
 python
python 
python

4.使用字符串避免語法錯誤
單引號與單引號一對担扑,
雙引號與雙引號是一對聋涨,
一般要成對出現(xiàn),且溉躲。

4.使用函數(shù)str()避免類型錯誤
age = 23
msg = "Happy "+str(age)+" rd Birthday"  # 必須使用str()否則python識別不了
print(msg)

3.列表簡介

1.列表是什么
bicycles = ['trek','cannondale','redline','specialized']
print(bicycles)

1.訪問列表元素

print(bicycles[0])
得到
trek

2.索引從0而不是1開始

2.修改榜田,添加和刪除元素

1.修改列表元素

names =['zhangsan','lisi','wangwu','zhaoliu']
print(names)
names[0] = 'zhangsanfeng'
print(names)
得到:
['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
['zhangsanfeng', 'lisi', 'wangwu', 'zhaoliu']

2.列表中添加元素

  • 在列表末尾添加元素
  names.append('qianda')
  print(names)
  得到:
  ['zhangsanfeng', 'lisi', 'wangwu', 'zhaoliu', 'qianda']
  cars = [   ]
  cars.append('honda')
  cars.append('honda2')
  cars.append('honda3')
  print(cars)
  得到
  ['honda', 'honda2', 'honda3']
  • 在列表中插入元素
  cars.insert(0,'honda0')
  print(cars)
  得到:
  ['honda0', 'honda', 'honda2', 'honda3']
3.2.3列表中刪除元素
  nicks =['zhangsan','lisi','wangwu','zhaoliu']
  del nicks[0]
  print(nicks)
  得到:
  ['lisi', 'wangwu', 'zhaoliu']
  >nicks =['zhangsan','lisi','wangwu','zhaoliu']
  print(nicks)
  poped_nicks = nicks.pop();
  print(nicks)
  print(poped_nicks)
  得到:
  ['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
  ['zhangsan', 'lisi', 'wangwu']
  zhaoliu
  • 彈出列表中任何位置處的元素
  • 使用方法pop()刪除元素
    有時候要將元素從列表中刪除,并接著使用它的值,方法pop()可刪除列表末尾的元素锻梳,并讓你能夠接著使用它串慰。
  • 使用del語句刪除元素
nicks =['zhangsan','lisi','wangwu','zhaoliu']
print(nicks)
poped_nicks = nicks.pop(0)
print('The first name is '+poped_nicks.title()+'.')
得到:['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
The first name is Zhangsan.

如果不確定使用del語句還是pop()方法,有一個簡單的標(biāo)準(zhǔn):如果你要從列表中刪除的一個元素唱蒸,且不再以任何方式使用它,就使用del語句灸叼;如果你要在刪除元素后還能繼續(xù)使用它神汹,就使用方法pop()

  • 根據(jù)值刪除元素
nicks =['zhangsan','lisi','wangwu','zhaoliu']
print(nicks)
nicks.remove('lisi')
print(nicks)
得到:
['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
['zhangsan', 'wangwu', 'zhaoliu']

3.組織列表

1.使用方法sort()對列表進(jìn)行永久性排序—按字母排序
nicks =['zhangsan','lisi','wangwu','zhaoliu']
print(nicks)
nicks.sort();
print(nicks)
得到:
['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
['lisi', 'wangwu', 'zhangsan', 'zhaoliu']

還可以按字母順序相反的順序排列列表元素,只需要向sort()方法傳遞參數(shù)reverse = True

nicks =['zhangsan','lisi','wangwu','zhaoliu']
print(nicks)
nicks.sort(reverse = True);
print(nicks)
得到:
['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
['zhaoliu', 'zhangsan', 'wangwu', 'lisi']
2.使用方法sorted()對列表進(jìn)行臨時排序—按字母排序
nicks =['zhangsan','lisi','wangwu','zhaoliu']
print(nicks)
print(sorted(nicks))
print(nicks)
得到:
['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
['lisi', 'wangwu', 'zhangsan', 'zhaoliu']
['zhangsan', 'lisi', 'wangwu', 'zhaoliu']

還可以相反順序臨時排序

nicks =['zhangsan','lisi','wangwu','zhaoliu']
print(nicks)
print(sorted(nicks,reverse = True))
print(nicks)
得到:
['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
['zhaoliu', 'zhangsan', 'wangwu', 'lisi']
['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
3.倒著打印列表,按元素反轉(zhuǎn)列表排序
nicks =['zhangsan','lisi','wangwu','zhaoliu']
print(nicks)
nicks.reverse()
print(nicks)
得到:
['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
['zhaoliu', 'wangwu', 'lisi', 'zhangsan']

方法reverse()永久性地修改列表元素的排列順序古今,但可隨時恢復(fù)原來的排列順序屁魏,只需要再次調(diào)用reverse()

4.確定列表的長度
nicks =['zhangsan','lisi','wangwu','zhaoliu']
print(len(nicks))

得到:4

4.使用列表時避免索引錯誤

注意元素的個數(shù),另外訪問最后一個元素時捉腥,都可使用索引-1,倒數(shù)第2個可以使用索引-2,依次類推

nicks =['zhangsan','lisi','wangwu','zhaoliu']
print(nicks[-1])
得到:
zhaoliu

4.操作列表

1.遍歷整個列表

nicks =['zhangsan','lisi','wangwu','zhaoliu']
for nick in nicks:
    print(nick)
得到:
zhangsan
lisi
wangwu
zhaoliu
for cat in cats:
for dog in dogs
for item in list_of_items
使用單數(shù)和復(fù)數(shù)的式名稱可幫助判斷代碼段處理的是單個列表元素還是整個列表氓拼。
1.在for循壞環(huán)中執(zhí)行更多的操作

在每條記錄中打印一條消息。

nicks =['zhangsan','lisi','wangwu','zhaoliu']
for nick in nicks:
    print(nick.title()+", welcome to china")
得到:
Zhangsan, welcome to china
Lisi, welcome to china
Wangwu, welcome to china
Zhaoliu, welcome to china

執(zhí)行多行代碼,這里需要注意一下桃漾,接下來的代碼都是需要縮進(jìn)的

nicks =['zhangsan','lisi','wangwu','zhaoliu']
for nick in nicks:
    print(nick.title()+", welcome to china")
    print("hello,python")
得到:
Zhangsan, welcome to china
hello,python
Lisi, welcome to china
hello,python
Wangwu, welcome to china
hello,python
Zhaoliu, welcome to china
hello,python
2.在for循環(huán)結(jié)束后執(zhí)行一些操作
nicks =['zhangsan','lisi','wangwu','zhaoliu']
for nick in nicks:
    print(nick.title()+", welcome to china")
    print("hello,python")
print("print all message and print finish!")
得到:
Zhangsan, welcome to china
hello,python
Lisi, welcome to china
hello,python
Wangwu, welcome to china
hello,python
Zhaoliu, welcome to china
hello,python
print all message and print finish!
可以看到最后一條要打印的消息只打印一次坏匪,最后一條沒有縮進(jìn),因此只打印一次

2.避免縮進(jìn)錯誤

  • 忘記縮進(jìn)
nicks =['zhangsan','lisi','wangwu','zhaoliu']
for nick in nicks:
print(nick.title()+", welcome to china")
得到:
File "/Users/liuking/Documents/python/python_learn/test.py", line 22
          print(nick.title()+", welcome to china")
                                 ^
IndentationError: expected an indented block
  • 忘記縮進(jìn)額外的代碼行
# 其實想打印兩行的消息撬统,結(jié)果只打印了一行适滓,print("hello,python") 忘記縮進(jìn)了,結(jié)果只是最后一條打印了這條消息
nicks =['zhangsan','lisi','wangwu','zhaoliu']
for nick in nicks:
    print(nick.title()+", welcome to china")
print("hello,python")
得到:
Zhangsan, welcome to china
Lisi, welcome to china
Wangwu, welcome to china
Zhaoliu, welcome to china
hello,python
# 不必要的縮進(jìn)
>message = 'hello python world'
        print(message)
得到:
     File "/Users/liuking/Documents/python/python_learn/test.py", line 20
           print(message)
             ^
IndentationError: unexpected indent
# 循環(huán)后不必要的縮進(jìn)
第三個打印的消息沒有縮進(jìn)恋追,結(jié)果每一行都被打印出來了凭迹。
nicks =['zhangsan','lisi','wangwu','zhaoliu']
for nick in nicks:
    print(nick.title()+", welcome to china")
    print("hello,python")
    print("print all message and print finish!")
得到:
Zhangsan, welcome to china
hello,python
print all message and print finish!
Lisi, welcome to china
hello,python
print all message and print finish!
Wangwu, welcome to china
hello,python
print all message and print finish!
Zhaoliu, welcome to china
hello,python
print all message and print finish!
  • 遺漏了冒號
    漏掉了冒號,python不知道程序意欲何為苦囱。

3.創(chuàng)建數(shù)值列表

1.使用函數(shù)range()

函數(shù)range()讓你能夠輕松地生成一系列的數(shù)字嗅绸。

for value in range(1,5):
    print(value)
得到:
1
2
3
4

只打印了1?4 函數(shù)range()從指定的第一個值開始數(shù),并在到達(dá)你指定的你第二個值后停止撕彤。

2.使用range()創(chuàng)建數(shù)字列表

要創(chuàng)建數(shù)字列表鱼鸠,可使用函數(shù)list()將range()的結(jié)果直接轉(zhuǎn)換為列表,如果將range()作為list()的參數(shù)喉刘,輸出將為一個數(shù)字列表瞧柔。

numbers = list(range(1,6))
print(numbers)
得到:
[1, 2, 3, 4, 5]

把10個整數(shù)的平方加入列表中,并打印出來

squares = [  ]
numbers = range(1,11)
for number in numbers:
    squares.append(number**2)
print(squares)
得到:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
3.對數(shù)字列表執(zhí)行簡單的統(tǒng)計計算

最小值睦裳,最大值造锅,求和

digits = [1,2,3,4,5,6,7,8,9,0]
print(min(digits))
print(max(digits))
print(sum(digits))
得到:
0
9
45

4.使用列表的一部分

1.切片
nicks =['zhangsan','lisi','wangwu','zhaoliu']
print(nicks[0:3])  前一個數(shù)從0開始,后一個數(shù)從1開始數(shù)
print(nicks[2:3])  從2開始廉邑,截止到第4個元素
print(nicks[2:])   從2開始哥蔚,沒有指定截止數(shù)據(jù),直接數(shù)到末尾
print(nicks[:2])   沒有指定開始蛛蒙,默認(rèn)從0開始
print(nicks[:])    沒有指定開始糙箍,也沒有指定結(jié)束的,直接復(fù)制整個列表
print(nicks[-2:])  從倒數(shù)第2個開始
得到:
['zhangsan', 'lisi', 'wangwu']
['wangwu']
['wangwu', 'zhaoliu']
['zhangsan', 'lisi']
['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
['wangwu', 'zhaoliu']
2.遍歷切片
nicks =['zhangsan','lisi','wangwu','zhaoliu']
for nick in nicks[0:3]:
    print(nick.title())
得到:
Zhangsan
Lisi
Wangwu
3.復(fù)制列表—-需要特別注意了
nicks =['zhangsan','lisi','wangwu','zhaoliu']
nicks_copy = nicks[:]
print("original nicks")
print(nicks)
print("copy nicks")
print(nicks_copy)
得到:
original nicks
['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
copy nicks
['zhangsan', 'lisi', 'wangwu', 'zhaoliu']

為了核實我們確實有兩個列表牵祟,
我們可以再添加一下東西

nicks =['zhangsan','lisi','wangwu','zhaoliu']
nicks_copy = nicks[:]
nicks.append('zhangsanfeng')
nicks_copy.append('zhangwuji')
print("original nicks")
print(nicks)
print("copy nicks")
print(nicks_copy)
得到:
original nicks
['zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'zhangsanfeng']
copy nicks
['zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'zhangwuji']

如果我們只是簡單的nicks賦值給nicks_copy就不能得到兩個列表

>nicks =['zhangsan','lisi','wangwu','zhaoliu']
nicks_copy = nicks;
nicks.append('zhangsanfeng')
nicks_copy.append('zhangwuji')
print("original nicks")
print(nicks)
print("copy nicks")
print(nicks_copy)
得到:
original nicks
['zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'zhangsanfeng', 'zhangwuji']
copy nicks
['zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'zhangsanfeng', 'zhangwuji']

因為nicks和nicks_copy都指向同一個列表深夯,所以都打印出了相同的列表,這里要特別注意

5.元組

python將不能修改的值稱為不可變的诺苹,而不可變的列表被稱為元組咕晋。有的時候需要創(chuàng)建一系列不可修改的元素,元組可以滿足這種需要收奔。

  • 定義元組
    元組看起來像列表掌呜,但使用圓括號而不是方括號來標(biāo)識,定義元組后坪哄,就可以使用索引來訪問其元素质蕉。
point = (200,50,300,90)
print(point[0])
print(point[1])
print(point[2])
print(point[-1])
>得到:
>200
50
300
90
  • 遍歷元組中的所有值
points = (200,50,300,90)
for point in points:
    print(point)
>得到:
>200
50
300
90
  • 修改元組變量
    雖然不能修改元組的元素势篡,但可以給存儲元組的變量賦值。重新定義整個元組模暗。
print("original data")
points = (200,50,300,90)
for point in points:
    print(point)
print("\nmodify data")
points = (1,2,3,4)
for point in points:
    print(point)
得到:
original data
200
50
300
90
modify data
1
2
3
4

5.if語句

1.條件測試
  • 檢查相等用‘==’

  • 檢查不相等用‘!=’

  • 檢查多個條件

    1. 使用and檢查多個條件:要檢查是否兩個條件都為True,可使用關(guān)鍵字and將兩個條件測試合而為一禁悠;如果每個測試都通過了,整個表達(dá)式為就為True,如果至少有一個測試沒有通過汰蓉,則整個表達(dá)式為False
    2. 使用or檢查多個條件:至少有一個條件滿足绷蹲,就能通過整修測試,僅當(dāng)兩個測試都沒有通過時顾孽,使用or的表達(dá)式才為False
  • 檢查特定值是否包含在列表中祝钢,使用關(guān)鍵字in

request_topping = ['mushrooms','onions','pineapple']
print('mushrooms' in request_topping)
print('mush' in request_topping)
得到:
True
False
  • 檢查特定值是否不包含在列表中,使用關(guān)鍵字not in
request_topping = ['mushrooms','onions','pineapple']
print('mushrooms' not in request_topping)
print('mush' not in request_topping)
得到:
False
True
2.if語句 主要注意的是代碼縮進(jìn),
  • if
  • if-else
  • if-elif-else
  • 多個代碼塊

6.字典

1.字典的簡單使用

在Python中字典是一系列的鍵值對若厚,每一個鍵都與一個值相關(guān)聯(lián)拦英,與鍵相關(guān)聯(lián)的值可以是數(shù)字,字符串测秸,列表疤估,乃至字典。

  • 訪問字典的值
>alien_0 = {'color':'green','point':5}
print(alien_0['color'])
得到:
green
  • 添加鍵值對
alien_0 = {'color':'green','point':5}
print(alien_0)
alien_0['x_point'] = 250
alien_0['y_point'] = 100
print(alien_0)
得到:
{'color': 'green', 'point': 5}
{'color': 'green', 'y_point': 100, 'x_point': 250, 'point': 5}
  • 先創(chuàng)建一個空字典
alien_0 = {}
alien_0['x_point'] = 250
alien_0['y_point'] = 100
print(alien_0)
得到:
{'y_point': 100, 'x_point': 250}
  • 修改字典中的值
alien_0 = {}
alien_0['y_point'] = 100
print(alien_0)
alien_0['y_point'] = 1000
print(alien_0)
得到:
{'y_point': 100}
{'y_point': 1000}
  • 刪除-鍵值對
alien_0 = {'color':'green','point':5}
print(alien_0)
del alien_0['point']
print(alien_0)
得到:
{'color': 'green', 'point': 5}
{'color': 'green'}

2.遍歷字典

  • 遍歷所有的鍵值對
values = {'1':'one','2':'two','3':'three','4':'four'}
for value in values.items():
    print(value)
for key,value in values.items():
    print("\nkey:"+key)
    print("value:"+value)
得到:
('1', 'one')
('3', 'three')
('2', 'two')
('4', 'four')
key:1
value:one
key:3
value:three
key:2
value:two
key:4
value:four
1.遍歷字典中所有的鍵
values = {'1':'one','2':'two','3':'three','4':'four'}
for value in values.keys():
    print(value)
得到:
1
3
2
4
2.遍歷字典中所有的值
values = {'1':'one','2':'two','3':'three','4':'four'}
for value in values.values():
    print(value)
得到:
one
three
two
four
3.按順序遍歷字典中所有鍵
values = {'first':'one','second':'two','three':'three'}
for value in sorted(values.keys()):
    print(value)
得到:
first
second
three
高級變量類型.png

結(jié)束語

如果您對這篇文章有什么意見或者建議,請評論與我討論.
如果您覺得還不錯的話~可以點個喜歡鼓勵我哦.
如果您想和我一起學(xué)習(xí),請毫不吝嗇的私信我吧~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末霎冯,一起剝皮案震驚了整個濱河市铃拇,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌沈撞,老刑警劉巖慷荔,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異缠俺,居然都是意外死亡显晶,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進(jìn)店門壹士,熙熙樓的掌柜王于貴愁眉苦臉地迎上來磷雇,“玉大人,你說我怎么就攤上這事躏救∥希” “怎么了?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵盒使,是天一觀的道長睁本。 經(jīng)常有香客問我,道長忠怖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任抄瑟,我火速辦了婚禮凡泣,結(jié)果婚禮上枉疼,老公的妹妹穿的比我還像新娘。我一直安慰自己鞋拟,他們只是感情好骂维,可當(dāng)我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著贺纲,像睡著了一般航闺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上猴誊,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天潦刃,我揣著相機與錄音,去河邊找鬼懈叹。 笑死乖杠,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的澄成。 我是一名探鬼主播胧洒,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼墨状!你這毒婦竟也來了卫漫?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤肾砂,失蹤者是張志新(化名)和其女友劉穎列赎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體通今,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡粥谬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了辫塌。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片漏策。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖臼氨,靈堂內(nèi)的尸體忽然破棺而出掺喻,到底是詐尸還是另有隱情,我是刑警寧澤储矩,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布感耙,位于F島的核電站,受9級特大地震影響持隧,放射性物質(zhì)發(fā)生泄漏即硼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一屡拨、第九天 我趴在偏房一處隱蔽的房頂上張望只酥。 院中可真熱鬧褥实,春花似錦、人聲如沸裂允。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽绝编。三九已至僻澎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間十饥,已是汗流浹背窟勃。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留绷跑,地道東北人拳恋。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像砸捏,于是被迫代替她去往敵國和親谬运。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容