編程時(shí)經(jīng)常需要檢查一系列條件,并據(jù)此決定采取什么措施。在Python中,if 語(yǔ)句讓你能夠檢查程序的當(dāng)前狀態(tài),并據(jù)此采取相應(yīng)的措施。
5.1 一個(gè)簡(jiǎn)單示例
cars = ['audi', 'bmw', 'subaru', 'toyota']
for car in cars:
if car == 'bmw':
print(car.upper()) #對(duì)于汽車名'bmw' ,以全大寫的方式打印
else:
print(car.title()) #其他的汽車以首字母大寫的方式打印
Audi
BMW
Subaru
Toyota
5.2 條件測(cè)試
每條if語(yǔ)句的核心都是一個(gè)值為True或False的表達(dá)式,這種表達(dá)式被稱為條件測(cè)試
。
Python根據(jù)條件測(cè)試的值為True還是False來(lái)決定是否執(zhí)行if語(yǔ)句中的代碼。如果條件測(cè)試的值為True,Python就執(zhí)行緊跟在if語(yǔ)句后面的代碼;如果為False,Python就忽略這些代碼。
5.2.1 檢查是否相等
首先使用一個(gè)等號(hào)將car 的值設(shè)置為'bmw'。接下來(lái),使用兩個(gè)等號(hào)(==)檢查car 的值是否為'bmw'。這個(gè)相等運(yùn)算符在它兩邊的值相等時(shí)返回True ,否則返回False 。兩邊的值相等,因此Python返回True 。如果變量car的值不是'audi',測(cè)試將返回False。
car = 'bmw'
print(car == 'bmw')
True
print(car == 'audi')
False
5.2.2 檢查是否相等時(shí)不考慮大小寫
在Python中檢查是否相等時(shí)區(qū)分大小寫,如果大小寫很重要,這種行為有其優(yōu)點(diǎn);但如果大小寫無(wú)關(guān)緊要,而只想檢查變量的值,可將變量的值轉(zhuǎn)換為小寫或大寫,再進(jìn)行比較。
函數(shù)lower() 不會(huì)修改存儲(chǔ)在變量car 中的值,因此進(jìn)行這樣的比較時(shí)不會(huì)影響原來(lái)的變量。
car = 'Audi'
print(car == 'audi')
print(car.lower() == 'audi'.lower())
print(car.upper() == 'audi'.upper())
False
True
True
5.2.3 檢查是否不相等
要判斷兩個(gè)值是否不等,可結(jié)合使用驚嘆號(hào)和等號(hào)(!= ),其中的驚嘆號(hào)表示不,在很多編程語(yǔ)言中都如此。
requested_topping = 'mushrooms'
if requested_topping != 'anchovies':
print("Hold the anchovies!")
Hold the anchovies!
5.2.4 比較數(shù)字
條件語(yǔ)句中可包含各種數(shù)學(xué)比較,如小于(<)、小于等于(<=)、大于(>)、大于等于(>=)。
age = 18
print(age == 18)
True
answer = 17
if answer != 42:
print("That is not the correct answer. Please try again!")
That is not the correct answer. Please try again!
age = 21
print(age < 21)
print(age <= 21)
print(age > 21)
print(age >= 21)
False
True
False
True
5.2.5 檢查多個(gè)條件
- 使用and 檢查多個(gè)條件
要檢查是否兩個(gè)條件都為True,可使用關(guān)鍵字and將兩個(gè)條件測(cè)試合而為一;如果每個(gè)測(cè)試都通過(guò)了,整個(gè)表達(dá)式就為True;如果至少有一個(gè)測(cè)試沒(méi)有通過(guò),整個(gè)表達(dá)式就為False。
為改善可讀性,可將每個(gè)測(cè)試都分別放在一對(duì)括號(hào)內(nèi),但并非必須這樣做。
age_0 = 22
age_1 = 18
print(age_0 >= 21and age_1 >= 21)
print((age_0 >= 21) & (age_1 >= 21))
age_1 = 22
print(age_0 >= 21and age_1 >= 21)
print((age_0 >= 21) and (age_1 >= 21))
False
False
True
True
- 使用or 檢查多個(gè)條件
關(guān)鍵字or也能夠檢查多個(gè)條件,但只要至少有一個(gè)條件滿足,就能通過(guò)整個(gè)測(cè)試。僅當(dāng)兩個(gè)測(cè)試都沒(méi)有通過(guò)時(shí),使用or的表達(dá)式才為False 。
另注意,類似與C,|和&分別表示or和and。但是尤其要注意運(yùn)算的優(yōu)先級(jí)。
age_0 = 22
age_1 = 18
print(age_0 >= 21or age_1 >= 21)
print((age_0 >= 21) | (age_1 >= 21))
print(age_0 >= 21 | age_1 >= 21)
age_0 = 18
print(age_0 >= 21or age_1 >= 21)
print((age_0 >= 21) | (age_1 >= 21))
True
True
False
False
False
5.2.6 檢查特定值是否包含在列表中
要判斷特定的值是否已包含在列表中,可使用關(guān)鍵字in。
requested_toppings = ['mushrooms', 'onions', 'pineapple']
print('mushrooms'in requested_toppings)
print('pepperoni'in requested_toppings)
True
False
5.2.7 檢查特定值是否不包含在列表中
確定特定的值未包含在列表中很重要;在這種情況下,可使用關(guān)鍵字not in。
banned_users = ['andrew', 'carolina', 'david']
user = 'marie'
if user notin banned_users:
print(user.title() + ", you can post a response if you wish.")
Marie, you can post a response if you wish.
5.2.8 布爾表達(dá)式
布爾表達(dá)式不過(guò)是條件測(cè)試的別名。與條件表達(dá)式一樣,布爾表達(dá)式的結(jié)果要么為True,要么為False。布爾值通常用于記錄條件。
game_active = True
can_edit = False
print(game_active, can_edit)
True False
練習(xí): 5-1 條件測(cè)試 :編寫一系列條件測(cè)試;將每個(gè)測(cè)試以及你對(duì)其結(jié)果的預(yù)測(cè)和實(shí)際結(jié)果都打印出來(lái)。
詳細(xì)研究實(shí)際結(jié)果,直到你明白了它為何為True 或False 。
創(chuàng)建至少10個(gè)測(cè)試,且其中結(jié)果分別為True 和False 的測(cè)試都至少有5個(gè)。
5-2 更多的條件測(cè)試 :你并非只能創(chuàng)建10個(gè)測(cè)試。如果你想嘗試做更多的比較,可再編寫一些測(cè)試,并將它們加入到conditional_tests.py中。對(duì)于下面列出的各種測(cè)試,至少編寫一個(gè)結(jié)果為True 和False 的測(cè)試。
檢查兩個(gè)字符串相等和不等。
使用函數(shù)lower()的測(cè)試。
檢查兩個(gè)數(shù)字相等、不等、大于、小于、大于等于和小于等于。
使用關(guān)鍵字and 和or 的測(cè)試。
測(cè)試特定的值是否包含在列表中。
測(cè)試特定的值是否未包含在列表中。
# 5-1
print('-----5-1-----')
car = 'subaru'
print("Is car == 'subaru'? I predict True. Actually it's {}".format(car == 'subaru'))
print("Is car == 'audi'? I predict False. Actually it's {}".format(car == 'audi'))
number = 55
print("Is number == 44? I predict True. Actually it's {}".format(number == 44))
print("Is number == 55? I predict False. Actually it's {}".format(number == 55))
# 5-2
print('-----5-2-----')
string_1 = 'string_1'
string_2 = 'String_1'
print(string_1 == string_2, string_1 != string_2)
print(string_1.lower() == string_2.lower(), string_1.lower() != string_2.lower())
number_1 = 55
number_2 = 66
print(number_1 == number_2, number_1 != number_2, number_1 > number_2, number_1 < number_2,
number_1 <= number_2, number_1 >= number_2)
print(string_1 == string_2 and number_1 != number_2)
print(string_1 != string_2 or number_1 <= number_2)
numbers = [1,2,3,4,5,6,7,8,10]
print(9in numbers)
print(8notin numbers)
-----5-1-----
Is car == 'subaru'? I predict True. Actually it's True
Is car == 'audi'? I predict False. Actually it's False
Is number == 44? I predict True. Actually it's False
Is number == 55? I predict False. Actually it's True
-----5-2-----
False True
True False
False True False True True False
False
True
False
False
5.3 if 語(yǔ)句
5.3.1 簡(jiǎn)單的if 語(yǔ)句
最簡(jiǎn)單的if語(yǔ)句只有一個(gè)測(cè)試和一個(gè)操作。
age = 19
if age >= 18:
print("You are old enough to vote!")
You are old enough to vote!
在if語(yǔ)句中,縮進(jìn)的作用與for循環(huán)中相同。如果測(cè)試通過(guò)了,將執(zhí)行if語(yǔ)句后面所有縮進(jìn)的代碼行,否則將忽略它們。
在緊跟在if語(yǔ)句后面的代碼塊中,可根據(jù)需要包含任意數(shù)量的代碼行。
age = 19
if age >= 18:
print("You are old enough to vote!")
print("Have you registered to vote yet?")
You are old enough to vote!
Have you registered to vote yet?
5.3.2 if-else 語(yǔ)句
經(jīng)常需要在條件測(cè)試通過(guò)了時(shí)執(zhí)行一個(gè)操作,并在沒(méi)有通過(guò)時(shí)執(zhí)行另一個(gè)操作;在這種情況下,可使用Python提供的if-else語(yǔ)句。
if-else語(yǔ)句塊類似于簡(jiǎn)單的if語(yǔ)句,但其中的else 語(yǔ)句讓你能夠指定條件測(cè)試未通過(guò)時(shí)要執(zhí)行的操作。
if-else 結(jié)構(gòu)非常適合用于要讓Python執(zhí)行兩種操作之一的情形。在這種簡(jiǎn)單的if-else 結(jié)構(gòu)中,總是會(huì)執(zhí)行兩個(gè)操作中的一個(gè)。
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!")
Sorry, you are too young to vote.
Please register to vote as soon as you turn 18!
5.3.3 if-elif-else 結(jié)構(gòu)
經(jīng)常需要檢查超過(guò)兩個(gè)的情形,為此可使用Python提供的if-elif-else 結(jié)構(gòu)。
Python只執(zhí)行if-elif-else 結(jié)構(gòu)中的一個(gè)代碼塊,它依次檢查每個(gè)條件測(cè)試,直到遇到通過(guò)了的條件測(cè)試。測(cè)試通過(guò)后,Python將執(zhí)行緊跟在它后面的代碼,并跳過(guò)余下的測(cè)試。
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.")
Your admission cost is $5.
age = 12
if age < 4:
price = 0
elif age < 18:
price = 5
else:
price = 10
print("Your admission cost is ${}.".format(price))
Your admission cost is $5.
5.3.4 使用多個(gè)elif 代碼塊
可根據(jù)需要使用任意數(shù)量的elif代碼塊。
age = 66
if age < 4:
price = 0
elif age < 18:
price = 5
elif age < 65:
price = 10
else:
price = 3
print("Your admission cost is ${}.".format(price))
Your admission cost is $3.
5.3.5 省略else 代碼塊
Python并不要求if-elif結(jié)構(gòu)后面必須有else代碼塊。在有些情況下,else代碼塊很有用;而在其他一些情況下,使用一條elif語(yǔ)句來(lái)處理特定的情形更清晰。
else 是一條包羅萬(wàn)象的語(yǔ)句,只要不滿足任何if或elif中的條件測(cè)試,其中的代碼就會(huì)執(zhí)行,這可能會(huì)引入無(wú)效甚至惡意的數(shù)據(jù)。如果知道最終要測(cè)試的條件,應(yīng)考慮使用一個(gè)elif代碼塊來(lái)代替else代碼塊。這樣就可以肯定,僅當(dāng)滿足相應(yīng)的條件時(shí),代碼才會(huì)執(zhí)行。
age = 12
if age < 4:
price = 0
elif age < 18:
price = 5
elif age < 65:
price = 10
elif age >= 65:
price = 3
print("Your admission cost is ${}.".format(price))
Your admission cost is $5.
5.3.6 測(cè)試多個(gè)條件
if-elif-else 結(jié)構(gòu)功能強(qiáng)大,但僅適合用于只有一個(gè)條件滿足的情況:遇到通過(guò)了的測(cè)試后,Python就跳過(guò)余下的測(cè)試。這種行為很好,效率很高,讓你能夠測(cè)試一個(gè)特定的條件。
然而,有時(shí)候必須檢查你關(guān)心的所有條件。在這種情況下,應(yīng)使用一系列不包含elif和else代碼塊的簡(jiǎn)單if語(yǔ)句。在可能有多個(gè)條件為True,且你需要在每個(gè)條件為True時(shí)都采取相應(yīng)措施時(shí),適合使用這種方法。
requested_toppings = ['mushrooms', 'extra cheese']
if'mushrooms'in requested_toppings:
print("Adding mushrooms.")
if'pepperoni'in requested_toppings:
print("Adding pepperoni.")
if'extra cheese'in requested_toppings:
print("Adding extra cheese.")
print("nFinished making your pizza!")
Adding mushrooms.
Adding extra cheese.
Finished making your pizza!
requested_toppings = ['mushrooms', 'extra cheese']
if'mushrooms'in requested_toppings:
print("Adding mushrooms.")
elif'pepperoni'in requested_toppings:
print("Adding pepperoni.")
elif'extra cheese'in requested_toppings:
print("Adding extra cheese.")
print("nFinished making your pizza!")
Adding mushrooms.
Finished making your pizza!
如果你只想執(zhí)行一個(gè)代碼塊,就使用if-elif-else 結(jié)構(gòu);如果要運(yùn)行多個(gè)代碼塊,就使用一系列獨(dú)立的if 語(yǔ)句。
練習(xí): 5-3 外星人顏色#1 :假設(shè)在游戲中剛射殺了一個(gè)外星人,請(qǐng)創(chuàng)建一個(gè)名為alien_color 的變量,并將其設(shè)置為'green' 、'yellow' 或'red' 。
編寫一條if 語(yǔ)句,檢查外星人是否是綠色的;如果是,就打印一條消息,指出玩家獲得了5個(gè)點(diǎn)。
編寫這個(gè)程序的兩個(gè)版本,在一個(gè)版本中上述測(cè)試通過(guò)了,而在另一個(gè)版本中未通過(guò)(未通過(guò)測(cè)試時(shí)沒(méi)有輸出)。
5-4 外星人顏色#2 :像練習(xí)5-3那樣設(shè)置外星人的顏色,并編寫一個(gè)if-else 結(jié)構(gòu)。
如果外星人是綠色的,就打印一條消息,指出玩家因射殺該外星人獲得了5個(gè)點(diǎn)。
如果外星人不是綠色的,就打印一條消息,指出玩家獲得了10個(gè)點(diǎn)。
編寫這個(gè)程序的兩個(gè)版本,在一個(gè)版本中執(zhí)行if 代碼塊,而在另一個(gè)版本中執(zhí)行else 代碼塊。
5-5 外星人顏色#3 :將練習(xí)5-4中的if-else 結(jié)構(gòu)改為if-elif-else 結(jié)構(gòu)。
如果外星人是綠色的,就打印一條消息,指出玩家獲得了5個(gè)點(diǎn)。
如果外星人是黃色的,就打印一條消息,指出玩家獲得了10個(gè)點(diǎn)。
如果外星人是紅色的,就打印一條消息,指出玩家獲得了15個(gè)點(diǎn)。
編寫這個(gè)程序的三個(gè)版本,它們分別在外星人為綠色、黃色和紅色時(shí)打印一條消息。
5-6 人生的不同階段 :設(shè)置變量age 的值,再編寫一個(gè)if-elif-else 結(jié)構(gòu),根據(jù)age 的值判斷處于人生的哪個(gè)階段。
如果一個(gè)人的年齡小于2歲,就打印一條消息,指出他是嬰兒。
如果一個(gè)人的年齡為2(含)~4歲,就打印一條消息,指出他正蹣跚學(xué)步。
如果一個(gè)人的年齡為4(含)~13歲,就打印一條消息,指出他是兒童。
如果一個(gè)人的年齡為13(含)~20歲,就打印一條消息,指出他是青少年。
如果一個(gè)人的年齡為20(含)~65歲,就打印一條消息,指出他是成年人。
如果一個(gè)人的年齡超過(guò)65(含)歲,就打印一條消息,指出他是老年人。
5-7 喜歡的水果 :創(chuàng)建一個(gè)列表,其中包含你喜歡的水果,再編寫一系列獨(dú)立的if 語(yǔ)句,檢查列表中是否包含特定的水果。
將該列表命名為favorite_fruits ,并在其中包含三種水果。
編寫5條if 語(yǔ)句,每條都檢查某種水果是否包含在列表中,如果包含在列表中,就打印一條消息,如“You really like bananas!”。
# 5-3
print("-----5-3-----")
alien_color = 'green'
if alien_color == 'green':
print("Player gets 5 points.")
alien_color = 'red'
if alien_color == 'green':
print("Player gets 5 points.")
# 5-4
print("-----5-4-----")
if alien_color == 'green':
score = 5
else:
score = 10
print("Player gets {} points.".format(score))
# 5-5
print("-----5-5-----")
if alien_color == "green":
score = 5
elif alien_color == "yellow":
score = 10
else:
score = 15
print("Player gets {} points.".format(score))
# 5-6
print("-----5-6-----")
age = 38
if age < 2:
status = "infant"
elif age < 4:
status = "baby"
elif age < 13:
status = "child"
elif age < 20:
status = "teenage"
elif age < 65:
status = "adult"
elif age >= 65:
status = "aged"
print("{} years old is {}".format(age, status))
# 5-7
print("-----5-7-----")
favorite_fruits = ["bananas", "apples", "cherries", "oranges"]
fruit = "bananas"
if fruit in favorite_fruits:
print("You really like {}!".format(fruit))
-----5-3-----
Player gets 5 points.
-----5-4-----
Player gets 10 points.
-----5-5-----
Player gets 15 points.
-----5-6-----
38 years old is adult
-----5-7-----
You really like bananas!
5.4 使用if 語(yǔ)句處理列表
5.4.1 檢查特殊元素
requested_toppings = ['mushrooms', 'green peppers', 'extra cheese']
for requested_topping in requested_toppings:
print("Adding {}.".format(requested_topping))
print("nFinished making your pizza!")
Adding mushrooms.
Adding green peppers.
Adding extra cheese.
Finished making your pizza!
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!")
Adding mushrooms.
Sorry, we are out of green peppers right now.
Adding extra cheese.
Finished making your pizza!
5.4.2 確定列表不是空的
到目前為止,對(duì)于處理的每個(gè)列表都做了一個(gè)簡(jiǎn)單的假設(shè),即假設(shè)它們都至少包含一個(gè)元素。我們馬上就要讓用戶來(lái)提供存儲(chǔ)在列表中的信息,因此不能再假設(shè)循環(huán)運(yùn)行時(shí)列表不是空的。有鑒于此,在運(yùn)行for 循環(huán)前確定列表是否為空很重要。
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?")
Are you sure you want a plain pizza?
首先創(chuàng)建了一個(gè)空列表,其中不包含元素。然后進(jìn)行了簡(jiǎn)單檢查,而不是直接執(zhí)行for循環(huán)。在if語(yǔ)句中將列表名用在條件表達(dá)式中時(shí),Python將在列表至少包含一個(gè)元素時(shí)返回True,并在列表為空時(shí)返回False。
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!")
Adding mushrooms.
Sorry, we don't have french fries.
Adding extra cheese.
Finished making your pizza!
練習(xí): 5-8 以特殊方式跟管理員打招呼 :創(chuàng)建一個(gè)至少包含5個(gè)用戶名的列表,且其中一個(gè)用戶名為'admin' 。想象你要編寫代碼,在每位用戶登錄網(wǎng)站后都打印一條問(wèn)候消息。遍歷用戶名列表,并向每位用戶打印一條問(wèn)候消息。
如果用戶名為'admin' ,就打印一條特殊的問(wèn)候消息,如“Hello admin, would you like to see a status report?”。
否則,打印一條普通的問(wèn)候消息,如“Hello Eric, thank you for logging in again”。
5-9 處理沒(méi)有用戶的情形 :在為完成練習(xí)5-8編寫的程序中,添加一條if 語(yǔ)句,檢查用戶名列表是否為空。
如果為空,就打印消息“We need to find some users!”。
刪除列表中的所有用戶名,確定將打印正確的消息。
5-10 檢查用戶名 :按下面的說(shuō)明編寫一個(gè)程序,模擬網(wǎng)站確保每位用戶的用戶名都獨(dú)一無(wú)二的方式。
創(chuàng)建一個(gè)至少包含5個(gè)用戶名的列表,并將其命名為current_users 。
再創(chuàng)建一個(gè)包含5個(gè)用戶名的列表,將其命名為new_users ,并確保其中有一兩個(gè)用戶名也包含在列表current_users 中。
遍歷列表new_users ,對(duì)于其中的每個(gè)用戶名,都檢查它是否已被使用。如果是這樣,就打印一條消息,指出需要輸入別的用戶名;否則,打印一條消息,指出這個(gè)用戶名未被使用。
確保比較時(shí)不區(qū)分大消息;換句話說(shuō),如果用戶名'John' 已被使用,應(yīng)拒絕用戶名'JOHN' 。
5-11 序數(shù) :序數(shù)表示位置,如1st和2nd。大多數(shù)序數(shù)都以th結(jié)尾,只有1、2和3例外。
在一個(gè)列表中存儲(chǔ)數(shù)字1~9。
遍歷這個(gè)列表。
在循環(huán)中使用一個(gè)if-elif-else 結(jié)構(gòu),以打印每個(gè)數(shù)字對(duì)應(yīng)的序數(shù)。輸出內(nèi)容應(yīng)為1st 、2nd 、3rd 、4th 、5th 、6th 、7th 、8th 和9th ,但每個(gè)序數(shù)都獨(dú)占一行。
# 5-8
print("-----5-8-----")
#users = ['admin', 'mike', 'john', 'alice', 'helen']
users = []
for user in users:
if user == 'admin':
print("Hello {}, would you like to see a status report?".format(user))
else:
print("Hello {}, thank you for logging in again.".format(user))
# 5-9
print("-----5-9-----")
if users:
for user in users:
if user == 'admin':
print("Hello {}, would you like to see a status report?".format(user))
else:
print("Hello {}, thank you for logging in again.".format(user))
else:
print("We need to find some users!")
# 5-10
print("-----5-10-----")
current_users = ['frank', 'mike', 'john', 'alice', 'helen']
new_users = ['trump', 'Mike', 'Biden', 'ALice', 'Clinton']
for user in new_users:
if user.lower() in [current_user.lower() for current_user in current_users]:
print("{} is used.".format(user))
else:
print("{} can be used.".format(user))
# 5-11
print("-----5-11-----")
numbers = list(range(1,10))
for number in numbers:
if number == 1:
print("{}st".format(number),end="t")
elif number == 2:
print("{}nd".format(number),end="t")
elif number == 3:
print("{}rd".format(number),end="t")
else:
print("{}th".format(number),end="t")
-----5-8-----
-----5-9-----
We need to find some users!
-----5-10-----
trump can be used.
Mike is used.
Biden can be used.
ALice is used.
Clinton can be used.
-----5-11-----
1st 2nd 3rd 4th 5th 6th 7th 8th 9th
5.5 設(shè)置if 語(yǔ)句的格式 本章的每個(gè)示例都展示了良好的格式設(shè)置習(xí)慣。在條件測(cè)試的格式設(shè)置方面,PEP 8提供的唯一建議是,在諸如== 、>= 和<= 等比較運(yùn)算符兩邊各添加一個(gè)空格,例如,if age < 4:
要比if age<4:
好。
這樣的空格不會(huì)影響Python對(duì)代碼的解讀,而只是讓代碼閱讀起來(lái)更容易。
練習(xí):
5-12 設(shè)置if 語(yǔ)句的格式 :審核你在本章編寫的程序,確保正確地設(shè)置了條件測(cè)試的格式。
5-13 自己的想法 :與剛拿起本書時(shí)相比,現(xiàn)在你是一名能力更強(qiáng)的程序員了。鑒于你對(duì)如何在程序中模擬現(xiàn)實(shí)情形有了更深入的認(rèn)識(shí),你可以考慮使用程序來(lái)解決一些問(wèn)題。隨著編程技能不斷提高,你可能想解決一些問(wèn)題,請(qǐng)將這方面的想法記錄下來(lái)。想想你可能想編寫的游戲、想研究的數(shù)據(jù)集以及想創(chuàng)建的Web應(yīng)用程序。
評(píng)論
查看更多