跟上時(shí)代的步伐盹憎,學(xué)一波Python(一)


注:筆記整理自《Python編程:從入門到實(shí)踐》

1. 環(huán)境搭建

OS X系統(tǒng)默認(rèn)安裝了 Python2,我們需要到Python官網(wǎng)下載Python3
Windows系統(tǒng)下需要下載Python2和Python3
Python下載地址
命令行輸入 python 和 python3查看切換python版本

python2

python3

輸入python命令后,可以直接在控制臺(tái)編寫代碼敌买,也可以使用編輯器藤乙。
推薦使用Sublime Text3 編輯器 插件比較多猜揪,比較方便

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

2.0 Python關(guān)鍵字與Python內(nèi)置函數(shù)

warning:第一排黑體沒有特殊含義,我是markdown新手湾盒,表格用的不好湿右,第一排默認(rèn)是表頭,不知道怎么改成普通文本

Python關(guān)鍵字

False class finally is return
None continue for lambda try
True def from nonlocal while
and del global not with
as elif if or yield
assert else import pass
break except in raise

關(guān)于縮進(jìn)
對(duì)于Python而言代碼縮進(jìn)是一種語法,Python沒有像其他語言一樣采用{}或者begin...end分隔代碼塊罚勾,而是采用代碼縮進(jìn)和冒號(hào)來區(qū)分代碼之間的層次毅人。

縮進(jìn)的空白數(shù)量是可變的,但是所有代碼塊語句必須包含相同的縮進(jìn)空白數(shù)量尖殃,這個(gè)必須嚴(yán)格執(zhí)行丈莺。
示例:

if True:
    print("Hello girl!") #縮進(jìn)一個(gè)tab的占位
else:                    #與if對(duì)齊
    print("Hello boy!")  #縮進(jìn)一個(gè)tab的占位

2.1 變量

創(chuàng)建變量時(shí)不需要聲明數(shù)據(jù)類型,直接聲明變量名進(jìn)行賦值
message = "hello world"
age = 13
age = 14
在程序中可隨時(shí)修改變量的值送丰,而Python將始終記錄變量的最新值

2.1.1 變量的命名和使用

在Python中使用變量時(shí)缔俄,需要遵守一些規(guī)則

  • 變量名只能包含字母、數(shù)字和下劃線打頭,但不能以數(shù)字打頭俐载,例如蟹略,可將變量命名為message_1,但不能將其命名為1_message遏佣。
  • 變量名不能包含空格挖炬,但可使用下劃線來分隔其中的單詞。例如状婶,變量名greeting_message可行意敛,但變量名greeting message會(huì)引發(fā)錯(cuò)誤。
  • 不要將Python關(guān)鍵字和函數(shù)名用作變量名膛虫,即不要使用Python保留用于特殊用途的單詞草姻,如print。
  • 變量名應(yīng)既簡短又具有描述性稍刀。例如撩独,name比n好,student_name比s_n好账月,name_length比length_of_persons_name好跌榔。
  • 慎用小寫字母l和大寫字母O,因?yàn)樗鼈兛赡鼙蝗丝村e(cuò)成數(shù)字1和0捶障。

2.1.2 使用變量名時(shí)避免命名錯(cuò)誤

程序存在錯(cuò)誤時(shí)僧须,Python解釋器將竭盡所能地幫助你找出問題所在。程序無法成功地運(yùn)行時(shí)项炼,解釋器會(huì)提供一個(gè)traceback担平。traceback是一條記錄,指出了解釋器嘗試運(yùn)行代碼時(shí)锭部, 在什么地方陷入了困境暂论。下面是你不小心錯(cuò)誤地拼寫了變量名時(shí),Python解釋器提供的traceback:


traceback

往往像這樣的小錯(cuò)誤很難發(fā)現(xiàn)拌禾,會(huì)浪費(fèi)不少時(shí)間取胎,所以,還是盡量避免吧湃窍。

2.2 字符串

字符串 就是一系列字符闻蛀。在Python中,用引號(hào)括起的都是字符串您市,其中的引號(hào)可以是單引號(hào)觉痛,也可以是雙引號(hào),如下所示:

"This is a string."
'This is also a string.'

這種靈活性讓你能夠在字符串中包含引號(hào)和撇號(hào)

'I told my friend, "Python is my favorite language!" '
"The language 'Python' is named after Monty Python, not the snake." 
"One of Python's strengths is its diverse and supportive community."

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

對(duì)于字符串茵休,可執(zhí)行的最簡單的操作之一是修改其中的單詞的大小寫薪棒,如下所示手蝎,

首字母大寫:

name = "sun wu kong"
print(name.title())

輸出結(jié)果:

Sun Wu Kong

全部大寫或小寫:

name = "Zhu Ba Jie" 
print(name.upper()) 
print(name.lower())

輸出結(jié)果:

ZHU BA JIE
zhu ba jie

2.2.2 合并(拼接)字符串

Python使用加號(hào)(+)來合并字符串。

first_name = "Yu"
last_name = "Guan"
full_name = last_name + " " + first_name
print(full_name)

輸出結(jié)果:

Guan Yu

2.2.3 使用制表符或換行符來添加空白

可在同一個(gè)字符串中同時(shí)包含制表符和換行符俐芯。字符串"\n\t" 讓Python換到下一行棵介,并在下一行開頭添加一個(gè)制表符。

>>> print("Languages:\n\tPython\n\tC\n\tJavaScript") 
Languages:
    Python
    C 
    JavaScript

2.2.4 刪除空白

在程序中吧史,額外的空白可能令人迷惑鞍时。對(duì)程序員來說,'python' 和'python ' 看起來幾乎沒什么兩樣扣蜻,但對(duì)程序來說,它們卻是兩個(gè)不同的字符串及塘。Python能夠發(fā)
現(xiàn)'python ' 中額外的空白莽使,并認(rèn)為它是有意義的——除非你告訴它不是這樣的。
空白很重要笙僚,因?yàn)槟憬?jīng)常需要比較兩個(gè)字符串是否相同芳肌。例如,一個(gè)重要的示例是肋层,在用戶登錄網(wǎng)站時(shí)檢查其用戶名亿笤。但在一些簡單得多的情形下,額外的空格也可能令人迷惑栋猖。所幸在Python中净薛,刪除用戶輸入的數(shù)據(jù)中的多余的空白易如反掌。
Python能夠找出字符串開頭和末尾多余的空白蒲拉。要確保字符串末尾沒有空白肃拜,可使用方法rstrip() 。

>>> favorite_language = 'python ' 
>>> favorite_language
'python '
>>> favorite_language.rstrip()
'python'
>>> favorite_language
'python '

使用rstrip()方法后重新賦值雌团,原值才會(huì)改變

>>> favorite_language = favorite_language.rstrip()
>>> favorite_language
 'python'

剔除字符串開頭的空白燃领,或同時(shí)剔除字符串兩端的空白,可分別使用方法lstrip() 和strip() :

>>> favorite_language = ' python '
>>> favorite_language.rstrip()
' python'
>>> favorite_language.lstrip() 
'python '
>>> favorite_language.strip() 
'python'

2.3 數(shù)字

2.3.1 整數(shù)

在Python中锦援,可對(duì)整數(shù)執(zhí)行加(+ )減(- )乘(* )除(/ )運(yùn)算猛蔽。

>>>2+3
 5 
>>>3-2 
1 
>>>2*3 
6 
>>>3/2 
1.5

在終端會(huì)話中,Python直接返回運(yùn)算結(jié)果灵寺。Python使用兩個(gè)乘號(hào)表示乘方運(yùn)算:

>>>  3**2 
9 
>>>  3**3 
27 
>>>  10**6 
1000000

Python還支持運(yùn)算次序曼库,因此你可在同一個(gè)表達(dá)式中使用多種運(yùn)算。你還可以使用括號(hào)來修改運(yùn)算次序略板,讓Python按你指定的次序執(zhí)行運(yùn)算凉泄,如下所示:

>>>2+3*4
14 
>>>(2+3)*4 
20

2.3.2 浮點(diǎn)數(shù)

Python將帶小數(shù)點(diǎn)的數(shù)字都稱為浮點(diǎn)數(shù) 。大多數(shù)編程語言都使用了這個(gè)術(shù)語蚯根,它指出了這樣一個(gè)事實(shí):小數(shù)點(diǎn)可出現(xiàn)在數(shù)字的任何位置后众。每種編程語言都須細(xì)心設(shè)計(jì)胀糜,以妥善地 處理浮點(diǎn)數(shù),確保不管小數(shù)點(diǎn)出現(xiàn)在什么位置蒂誉,數(shù)字的行為都是正常的教藻。
從很大程度上說,使用浮點(diǎn)數(shù)時(shí)都無需考慮其行為右锨。你只需輸入要使用的數(shù)字括堤,Python通常都會(huì)按你期望的方式處理它們:

>>> 0.1 + 0.1 
0.2
>>> 0.2 + 0.2 
0.4 
>>>2*0.1 
0.2 
>>>2*0.2 
0.4

2.3.3 使用函數(shù)str()避免類型錯(cuò)誤

在字符串中使用整數(shù)時(shí),需要顯式地指出你希望Python將這個(gè)整數(shù)用作字符串绍移。為此悄窃,可調(diào)用函數(shù)str() , 它讓Python將非字符串值表示為字符串:

age=23
message = "Happy " + str(age) + "rd Birthday!"
print(message)

輸出結(jié)果:

Happy 23rd Birthday!

2.3.4 Python 2中的整數(shù)

在Python 2中蹂窖,將兩個(gè)整數(shù)相除得到的結(jié)果稍有不同:

>>> python2.7 
>>>3/2
1

Python返回的結(jié)果為1轧抗,而不是1.5。在Python 2中瞬测,整數(shù)除法的結(jié)果只包含整數(shù)部分横媚,小數(shù)部分被刪除。請(qǐng)注意月趟,計(jì)算整數(shù)結(jié)果時(shí)灯蝴,采取的方式不是四舍五入,而是將小數(shù)部分直 接刪除孝宗。
在Python 2中穷躁,若要避免這種情況,務(wù)必確保至少有一個(gè)操作數(shù)為浮點(diǎn)數(shù)因妇,這樣結(jié)果也將為浮點(diǎn)數(shù):

>>>3/2 
1 
>>>3.0/2 
1.5 
>>>3/2.0 
1.5
>>> 3.0 / 2.0 
1.5

2.4注釋

在Python中折砸,注釋用井號(hào)(# )標(biāo)識(shí)。井號(hào)后面的內(nèi)容都會(huì)被Python解釋器忽略沙峻。

print("merry christmas") #圣誕節(jié)快樂睦授!

輸出結(jié)果:

merry christmas

3.列表

3.1 修改、添加摔寨、插入和刪除元素

(1)修改元素

motorcycles = ['honda', 'yamaha', 'suzuki'] 
print(motorcycles)
motorcycles[0] = 'ducati' 
print(motorcycles)

輸出結(jié)果:

['honda', 'yamaha', 'suzuki'] 
['ducati', 'yamaha', 'suzuki']

(2)添加元素

motorcycles = ['honda', 'yamaha', 'suzuki'] 
print(motorcycles)
motorcycles.append('ducati') 
print(motorcycles)

輸出結(jié)果:

['honda', 'yamaha', 'suzuki'] 
['honda', 'yamaha', 'suzuki', 'ducati']

(3)插入元素

motorcycles = ['honda', 'yamaha', 'suzuki']
motorcycles.insert(0, 'ducati') 
print(motorcycles)

輸出結(jié)果:

['ducati', 'honda', 'yamaha', 'suzuki']

(4)刪除元素
使用del語句刪除元素:

motorcycles = ['honda', 'yamaha', 'suzuki'] 
print(motorcycles)
del motorcycles[0] 
print(motorcycles)

輸出結(jié)果:

['honda', 'yamaha', 'suzuki'] 
['yamaha', 'suzuki']

使用方法pop()刪除元素:

motorcycles = ['honda', 'yamaha', 'suzuki']
first_owned = motorcycles.pop(0)
print('The first motorcycle I owned was a ' + first_owned.title() + '.')

輸出結(jié)果:

The first motorcycle I owned was a Honda.

根據(jù)值刪除元素:

motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati'] 
print(motorcycles)
motorcycles.remove('ducati') 
print(motorcycles)

輸出結(jié)果:

['honda', 'yamaha', 'suzuki', 'ducati'] 
['honda', 'yamaha', 'suzuki']

3.2 組織列表

3.2.1 使用方法sort()對(duì)列表進(jìn)行永久性排序

sort()方法

cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort()
print(cars)

輸出結(jié)果:

['audi', 'bmw', 'subaru', 'toyota']

3.2.2 使用函數(shù)sorted()對(duì)列表進(jìn)行臨時(shí)排序

sorted()函數(shù)

cars = ['bmw', 'audi', 'toyota', 'subaru']
print("Here is the original list:") 
print(cars)
print("\nHere is the sorted list:") 
print(sorted(cars))
print("\nHere is the original list again:") 
print(cars)

輸出結(jié)果:

Here is the original list:
['bmw', 'audi', 'toyota', 'subaru']
Here is the sorted list:
['audi', 'bmw', 'subaru', 'toyota']
Here is the original list again: ['bmw', 'audi', 'toyota', 'subaru']

3.2.3 倒序打印列表

revers()方法:

cars = ['bmw', 'audi', 'toyota', 'subaru'] 
print(cars)
cars.reverse() 
print(cars)

輸出結(jié)果:

['bmw', 'audi', 'toyota', 'subaru'] 
['subaru', 'toyota', 'audi', 'bmw']

3.2.4 確定列表的長度

>>> cars = ['bmw', 'audi', 'toyota', 'subaru'] 
>>> len(cars)
4

4.操作列表

4.1 遍歷整個(gè)列表

for循環(huán):

magicians = ['alice', 'david', 'carolina'] 
for magician in magicians:
    print(magician)

輸出結(jié)果:

alice david carolina

4.1.1 在for循環(huán)中執(zhí)行更多的操作

在for 循環(huán)中去枷,想包含多少行代碼都可以。在代碼行for magician in magicians 后面是复,每個(gè)縮進(jìn)的代碼行都是循環(huán)的一部分删顶,且將針對(duì)列表中的每個(gè)值都執(zhí)行一次。因 此淑廊,可對(duì)列表中的每個(gè)值執(zhí)行任意次數(shù)的操作逗余。

magicians = ['alice', 'david', 'carolina'] 
for magician in magicians:
    print(magician.title() + ", that was a great trick!")
    print("I can't wait to see your next trick, " + magician.title() + ".\n")

由于兩條print 語句都縮進(jìn)了,因此它們都將針對(duì)列表中的每位魔術(shù)師執(zhí)行一次季惩。第二條print 語句中的換行符"\n" 在每次迭代結(jié)束后都插入一個(gè)空行录粱,從而整潔地 將針對(duì)各位魔術(shù)師的消息編組:

Alice, that was a great trick!
I can't wait to see your next trick, Alice.

David, that was a great trick!
I can't wait to see your next trick, David.

Carolina, that was a great trick!
I can't wait to see your next trick, Carolina.

4.1.2 在for循環(huán)結(jié)束后執(zhí)行一些操作

在for 循環(huán)后面腻格,沒有縮進(jìn)的代碼都只執(zhí)行一次,而不會(huì)重復(fù)執(zhí)行啥繁。下面來打印一條向全體魔術(shù)師致謝的消息菜职,感謝他們的精彩表演。想要在打印給各位魔術(shù)師的消息后面打印 一條給全體魔術(shù)師的致謝消息旗闽,需要將相應(yīng)的代碼放在for 循環(huán)后面酬核,且不縮進(jìn):

magicians = ['alice', 'david', 'carolina'] for magician in magicians:
    print(magician.title() + ", that was a great trick!")
    print("I can't wait to see your next trick, " + magician.title() + ".\n")
print("Thank you, everyone. That was a great magic show!")

開頭兩條print 語句針對(duì)列表中每位魔術(shù)師重復(fù)執(zhí)行。由于第三條print 語句沒有縮進(jìn)适室,因此只執(zhí)行一次:

Alice, that was a great trick!
I can't wait to see your next trick, Alice.

David, that was a great trick!
I can't wait to see your next trick, David.

Carolina, that was a great trick!
I can't wait to see your next trick, Carolina.

Thank you, everyone. That was a great magic show!

for else語法
(1)觸發(fā)else
正常結(jié)束的循環(huán):

list = [1,2,3,4,5]
for x in list:
    print(x)
else:
    print("else")

輸出結(jié)果:

1
2
3
4
5
else

使用continue關(guān)鍵字

list = [1,2,3,4,5]
for x in list:
    if x==2:
        continue
 
    print x
else:
    print("else")

輸出結(jié)果:

1
3
4
5
else

(2)不觸發(fā)else

list = [1,2,3,4,5]
for x in list:
    if x==3:
        break
 
    print x
else:
    print("else")

輸出結(jié)果:

1
2

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

4.2.1 使用函數(shù)range()

for value in range(1,5): 
    print(value)

輸出結(jié)果:

1
2
3
4

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

numbers = list(range(1,6)) 
print(numbers)

輸出結(jié)果:

[1,2,3,4,5]

使用函數(shù)range() 時(shí)嫡意,還可指定步長。例如捣辆,下面的代碼打印1~10內(nèi)的偶數(shù):

even_numbers = list(range(2,11,2)) 
print(even_numbers)

輸出結(jié)果:

[2,4,6,8,10]

打印1-10的平方:

squares = []
for value in range(1,11):
    square = value**2 squares.append(square)
    print(squares)

輸出結(jié)果:

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

4.2.3 對(duì)數(shù)字列表執(zhí)行簡單的統(tǒng)計(jì)計(jì)算

有幾個(gè)專門用于處理數(shù)字列表的Python函數(shù)蔬螟。例如,你可以輕松地找出數(shù)字列表的最大值罪帖、最小值和總和:

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

4.2.4 列表解析

前面介紹的生成列表squares 的方式包含三四行代碼,而列表解析讓你只需編寫一行代碼就能生成這樣的列表邮屁。列表解析 將for 循環(huán)和創(chuàng)建新元素的代碼合并成一行整袁,并自動(dòng)附加新元素。

squares = [value**2 for value in range(1,11)] 
print(squares)

輸出結(jié)果:

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

4.3 使用列表的一部分

4.3.1 切片

要?jiǎng)?chuàng)建切片佑吝,可指定要使用的第一個(gè)元素和最后一個(gè)元素的索引坐昙。與函數(shù)range() 一樣,Python在到達(dá)你指定的第二個(gè)索引前面的元素后停止芋忿。要輸出列表中的前三個(gè)元素炸客,需 要指定索引0~3,這將輸出分別為0 戈钢、1 和2 的元素痹仙。

players = ['charles', 'martina', 'michael', 'florence', 'eli'] 
print(players[0:3])

4.3.2 遍歷切片

如果要遍歷列表的部分元素,可在for 循環(huán)中使用切片殉了。

players = ['charles', 'martina', 'michael', 'florence', 'eli']
print("Here are the first three players on my team:") 
for player in players[:3]:
      print(player.title())

輸出結(jié)果:

Here are the first three players on my team: 
Charles
Martina
Michael

4.3.3 復(fù)制列表

要復(fù)制列表开仰,可創(chuàng)建一個(gè)包含整個(gè)列表的切片,方法是同時(shí)省略起始索引和終止索引([:] )薪铜。這讓Python創(chuàng)建一個(gè)始于第一個(gè)元素众弓,終止于最后一個(gè)元素的切片,即復(fù)制整個(gè) 列表隔箍。

my_foods = ['pizza', 'falafel', 'carrot cake'] 
friend_foods = my_foods[:]
print("My favorite foods are:") 
print(my_foods)
print("\nMy friend's favorite foods are:") 
print(friend_foods)

輸出結(jié)果:

My favorite foods are:
['pizza', 'falafel', 'carrot cake']
My friend's favorite foods are: ['pizza', 'falafel', 'carrot cake']

4.4 元組

列表非常適合用于存儲(chǔ)在程序運(yùn)行期間可能變化的數(shù)據(jù)集谓娃。列表是可以修改的,這對(duì)處理網(wǎng)站的用戶列表或游戲中的角色列表至關(guān)重要蜒滩。然而滨达,有時(shí)候你需要?jiǎng)?chuàng)建一系列不可修
改的元素记劝,元組可以滿足這種需求。Python將不能修改的值稱為不可變的 向胡,而不可變的列表被稱為元組 湿故。

4.4.1 定義元組

元組看起來猶如列表,但使用圓括號(hào)而不是方括號(hào)來標(biāo)識(shí)稽莉。定義元組后瀑志,就可以使用索引來訪問其元素,就像訪問列表元素一樣污秆。

dimensions = (200, 50) 
print(dimensions[0])
print(dimensions[1])

4.4.2 遍歷元祖中的所有值

像列表一樣劈猪,也可以使用for 循環(huán)來遍歷元組中的所有值:

dimensions = (200, 50)
for dimension in dimensions:
    print(dimension)

輸出結(jié)果:

200 
50

4.4.3 修改元組變量

雖然不能修改元組的元素,但可以給存儲(chǔ)元組的變量賦值良拼。

dimensions = (200, 50) 
print("Original dimensions:") 
for dimension in dimensions:
    print(dimension)

dimensions = (400, 100)
print("\nModified dimensions:")
for dimension in dimensions: 
    print(dimension)

輸出結(jié)果:

Original dimensions:
200 
50

Modified dimensions: 
400
100

5 if語句

5.1 一個(gè)簡單的示例

cars = ['audi', 'bmw', 'subaru', 'toyota']
for car in cars:
    if car == 'bmw':
         print(car.upper()) 
    else:
         print(car.title())

輸出結(jié)果:

Audi 
BMW 
Subaru 
Toyota

5.2 條件測試

每條if 語句的核心都是一個(gè)值為True 或False 的表達(dá)式战得,這種表達(dá)式被稱為條件測試 。

5.2.1 檢查是否相等

>>> car = 'bmw' 
>>> car == 'bmw'
True

5.2.2 檢查是否相等時(shí)區(qū)分大小寫

>>> car = 'Audi' >>> 
car == 'audi' 
False

>>> car = 'Audi'
>>> car.lower() == 'audi' 
True

5.2.3 檢查是否不相等

要判斷兩個(gè)值是否不等庸推,可結(jié)合使用驚嘆號(hào)和等號(hào)(!= )常侦,其中的驚嘆號(hào)表示不 ,在很多編程語言中都如此贬媒。

requested_topping = 'mushrooms'
if requested_topping != 'anchovies': 
    print("Hold the anchovies!")

輸出結(jié)果:

Hold the anchovies!

5.2.5 檢查多個(gè)條件

1.使用and檢查多個(gè)條件(且運(yùn)算聋亡,OC中為 && )
要檢查是否兩個(gè)條件都為True ,可使用關(guān)鍵字and 將兩個(gè)條件測試合而為一;如果每個(gè)測試都通過了际乘,整個(gè)表達(dá)式就為True ;如果至少有一個(gè)測試沒有通過坡倔,整個(gè)表達(dá)式就
為False 。

>>> age_0 = 22 
>>> age_1 = 18
>>> (age_0 >= 21) and (age_1 >= 21)
False
>>> age_1 = 22
>>> (age_0 >= 21) and (age_1 >= 21)
 True

2.使用or檢查多個(gè)條件(或運(yùn)算脖含,OC中為 || )
關(guān)鍵字or 也能夠讓你檢查多個(gè)條件罪塔,但只要至少有一個(gè)條件滿足,就能通過整個(gè)測試养葵。僅當(dāng)兩個(gè)測試都沒有通過時(shí)征堪,使用or 的表達(dá)式才為False 。

>>> age_0 = 22 
>>> age_1 = 18
>>> (age_0 >= 21) or (age_1 >= 21)
True
>>> age_0 = 18
>>> (age_0 >= 21) or (age_1 >= 21) 
False

5.2.6 檢查特定值是否包含在列表中

有時(shí)候关拒,執(zhí)行操作前必須檢查列表是否包含特定的值请契。例如,結(jié)束用戶的注冊(cè)過程前夏醉,可能需要檢查他提供的用戶名是否已包含在用戶名列表中爽锥。在地圖程序中,可能需要檢查用戶提交的位置是否包含在已知位置列表中畔柔。
要判斷特定的值是否已包含在列表中氯夷,可使用關(guān)鍵字in 。

>>> requested_toppings = ['mushrooms', 'onions', 'pineapple'] 
>>> 'mushrooms' in requested_toppings
True
>>> 'pepperoni' in requested_toppings
False

5.2.7 檢查特定值是否不包含在列表中

還有些時(shí)候靶擦,確定特定的值未包含在列表中很重要;在這種情況下腮考,可使用關(guān)鍵字not in 雇毫。

banned_users = ['andrew', 'carolina', 'david'] 
user = 'marie'
if user not in banned_users:
    print(user.title() + ", you can post a response if you wish.")

輸出結(jié)果:

Marie, you can post a response if you wish.

5.2.8 布爾表達(dá)式

與條件表達(dá)式一樣,布爾表達(dá)式的結(jié)果要么為True 踩蔚,要么為False 棚放。

isLogin = true;
isVip = false;

5.3 if語句

5.3.1 簡單的if語句

最簡單的if 語句只有一個(gè)測試和一個(gè)操作:

if conditional_test: 
    do something

5.3.2 if-else 語句

經(jīng)常需要在條件測試通過了時(shí)執(zhí)行一個(gè)操作,并在沒有通過時(shí)執(zhí)行另一個(gè)操作;在這種情況下馅闽,可使用Python提供的if-else 語句飘蚯。if-else 語句塊類似于簡單的if 語句,但 其中的else 語句讓你能夠指定條件測試未通過時(shí)要執(zhí)行的操作福也。

age=17
if age >= 18:
    print("You are old enough to vote!")
    print("Have you registered to vote yet?") 
else:
    print("Sorry, you are too young to vote.") 
    print("Please register to vote as soon as you turn 18!")

5.3.3 if-elif-else 結(jié)構(gòu)

常需要檢查超過兩個(gè)的情形局骤,為此可使用Python提供的if-elif-else 結(jié)構(gòu)。Python只執(zhí)行if-elif-else 結(jié)構(gòu)中的一個(gè)代碼塊暴凑,它依次檢查每個(gè)條件測試峦甩,直到遇到通過了的條件測試。測試通過后现喳,Python將執(zhí)行緊跟在它后面的代碼凯傲,并跳過余下的測試。
在現(xiàn)實(shí)世界中嗦篱,很多情況下需要考慮的情形都超過兩個(gè)冰单。

age=12
if age < 4:
    print("Your admission cost is $0.")
elif age < 18:
    print("Your admission cost is $5.")
else:
    print("Your admission cost is $10.")

輸出結(jié)果:

Your admission cost is $5.

5.3.4 使用多個(gè)elif 代碼塊

可根據(jù)需要使用任意數(shù)量的elif 代碼塊。

age = 12
if age < 4:
    price = 0
elif age < 18: 
    price = 5
elif age < 65: 
    price = 10
else:
    price = 5
print("Your admission cost is $" + str(price) + ".")

5.4 使用if 語句處理列表

5.4.1 檢查特殊元素

requested_toppings = ['mushrooms', 'green peppers', 'extra cheese']
for requested_topping in requested_toppings: 
    if requested_topping == 'green peppers':
        print("Sorry, we are out of green peppers right now.") 
    else:
        print("Adding " + requested_topping + ".") 
        print("\nFinished making your pizza!")

5.4.2 確定列表不是空的

requested_toppings = []
if requested_toppings:
    for requested_topping in requested_toppings:
        print("Adding " + requested_topping + ".") 
        print("\nFinished making your pizza!")
else:
    print("Are you sure you want a plain pizza?")

輸出結(jié)果:

Are you sure you want a plain pizza?

5.4.3 使用多個(gè)列表

available_toppings = ['mushrooms', 'olives', 'green peppers', 'pepperoni', 'pineapple', 'extra cheese']
requested_toppings = ['mushrooms', 'french fries', 'extra cheese']
for requested_topping in requested_toppings: 
    if requested_topping in available_toppings:
        print("Adding " + requested_topping + ".") 
    else:
        print("Sorry, we don't have " + requested_topping + ".")       
print("\nFinished making your pizza!")

未完待續(xù)...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末默色,一起剝皮案震驚了整個(gè)濱河市球凰,隨后出現(xiàn)的幾起案子狮腿,更是在濱河造成了極大的恐慌腿宰,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缘厢,死亡現(xiàn)場離奇詭異吃度,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)贴硫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門椿每,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人英遭,你說我怎么就攤上這事间护。” “怎么了挖诸?”我有些...
    開封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵汁尺,是天一觀的道長。 經(jīng)常有香客問我多律,道長痴突,這世上最難降的妖魔是什么搂蜓? 我笑而不...
    開封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮辽装,結(jié)果婚禮上帮碰,老公的妹妹穿的比我還像新娘。我一直安慰自己拾积,他們只是感情好殉挽,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著殷勘,像睡著了一般此再。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上玲销,一...
    開封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天输拇,我揣著相機(jī)與錄音,去河邊找鬼贤斜。 笑死策吠,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的瘩绒。 我是一名探鬼主播猴抹,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼锁荔!你這毒婦竟也來了蟀给?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤阳堕,失蹤者是張志新(化名)和其女友劉穎跋理,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體恬总,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡前普,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了壹堰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拭卿。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖贱纠,靈堂內(nèi)的尸體忽然破棺而出峻厚,到底是詐尸還是另有隱情,我是刑警寧澤谆焊,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布惠桃,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏刽射。R本人自食惡果不足惜军拟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望誓禁。 院中可真熱鬧懈息,春花似錦、人聲如沸摹恰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽俗慈。三九已至姑宽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間闺阱,已是汗流浹背炮车。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留酣溃,地道東北人瘦穆。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像赊豌,于是被迫代替她去往敵國和親扛或。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

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