Python程式設計從入門到實踐課後答案:第五章
5-3 外星人顏色#1 :假設在遊戲中剛射殺了一個外星人,請建立一個名為alien_color 的變數,並將其設定為’green’ 、‘yellow’ 或’red’ 。
編寫一條if 語句,檢查外星人是否是綠色的;如果是,就列印一條訊息,指出玩家獲得了5個點。
編寫這個程式的兩個版本,在一個版本中上述測試通過了,而在另一個版本中未通過(未通過測試時沒有輸出)。
alien_color = "green" if alien_color == "green": print("You get five points.") alien_color = "yellow" if alien_color == "green": print("No")
5-4 外星人顏色#2 :像練習5-3那樣設定外星人的顏色,並編寫一個if-else 結構。
如果外星人是綠色的,就列印一條訊息,指出玩家因射殺該外星人獲得了5個點。
如果外星人不是綠色的,就列印一條訊息,指出玩家獲得了10個點。
編寫這個程式的兩個版本,在一個版本中執行if 程式碼塊,而在另一個版本中執行else 程式碼塊。
alien_color = "green"
if alien_color == "green":
print("You get five points.")
else:
print("You get ten points.")
5-5 外星人顏色#3 :將練習5-4中的if-else 結構改為if-elif-else 結構。
如果外星人是綠色的,就列印一條訊息,指出玩家獲得了5個點。
如果外星人是黃色的,就列印一條訊息,指出玩家獲得了10個點。
如果外星人是紅色的,就列印一條訊息,指出玩家獲得了15個點。
編寫這個程式的三個版本,它們分別在外星人為綠色、黃色和紅色時列印一條訊息。
if alien_color == "green":
print("You get five points.")
elif alien_color == "red":
print("You get ten points.")
else:
print("You get fifteen points.")
5-6 人生的不同階段 :設定變數age 的值,再編寫一個if-elif-else 結構,根據age 的值判斷處於人生的哪個階段。
如果一個人的年齡小於2歲,就列印一條訊息,指出他是嬰兒。
如果一個人的年齡為2(含)~4歲,就列印一條訊息,指出他正蹣跚學步。
如果一個人的年齡為4(含)~13歲,就列印一條訊息,指出他是兒童。
如果一個人的年齡為13(含)~20歲,就列印一條訊息,指出他是青少年。
如果一個人的年齡為20(含)~65歲,就列印一條訊息,指出他是成年人。
如果一個人的年齡超過65(含)歲,就列印一條訊息,指出他是老年人。
age = int(input("請輸入你的年齡:"))
if age < 2:
print("You are a baby")
elif 2 <= age < 4:
print("He is making a toddler.")
elif 4 <= age < 13:
print("You are a child.")
elif 13 <= age < 20:
print("You are a young man.")
elif 20 <= age < 65:
print("You are an adult.")
else:
print("You are an old man.")
5-7 喜歡的水果 :建立一個列表,其中包含你喜歡的水果,再編寫一系列獨立的if 語句,檢查列表中是否包含特定的水果。
將該列表命名為favorite_fruits ,並在其中包含三種水果。
編寫5條if 語句,每條都檢查某種水果是否包含在列表中,如果包含在列表中,就列印一條訊息,如“You really like bananas!”。
favorite_fruits = ["apple", "banana", "pineapple"]
a = input("請輸入你喜歡吃的水果:")
if a in favorite_fruits:
print("You really like %s!" % a)
5-8 以特殊方式跟管理員打招呼 :建立一個至少包含5個使用者名稱的列表,且其中一個使用者名稱為’admin’ 。想象你要編寫程式碼,在每位使用者登入網站後都列印一條問
候訊息。遍歷使用者名稱列表,並向每位使用者列印一條問候訊息。
如果使用者名稱為’admin’ ,就列印一條特殊的問候訊息,如“Hello admin, would you liketo seeastatus report?”。
否則,列印一條普通的問候訊息,如“Hello Eric, thank you for logging in again”。
name_list = ["bob", "jane", "jack", "admin", "tom"]
for i in name_list:
if i == "admin":
print("Hello %s, would you like to see a status report?" % i)
else:
print("Hello %s, thank you for logging in again" % i)
5-9 處理沒有使用者的情形 :在為完成練習5-8編寫的程式中,新增一條if 語句,檢查使用者名稱列表是否為空。
如果為空,就列印訊息“We need to find some users!”。
刪除列表中的所有使用者名稱,確定將列印正確的訊息。
name_list = []
if len(name_list) == 0:
print("We need to find some users!")
else:
for i in name_list:
if i == "admin":
print("Hello %s, would you like to see a status report?" % i)
else:
print("Hello %s, thank you for logging in again" % i)
5-10 檢查使用者名稱 :按下面的說明編寫一個程式,模擬網站確保每位使用者的使用者名稱都獨一無二的方式。
建立一個至少包含5個使用者名稱的列表,並將其命名為current_users 。
再建立一個包含5個使用者名稱的列表,將其命名為new_users ,並確保其中有一兩個使用者名稱也包含在列表current_users 中。
遍歷列表new_users ,對於其中的每個使用者名稱,都檢查它是否已被使用。如果是這樣,就列印一條訊息,指出需要輸入別的使用者名稱;否則,列印一條訊息,指
出這個使用者名稱未被使用。
確保比較時不區分大訊息;換句話說,如果使用者名稱’John’ 已被使用,應拒絕使用者名稱’JOHN’ 。
current_users = ["bob", "jane", "jack", "admin", "tom"]
new_users = ["Bob", "james", "NIck", "JACK", "name"]
for i in new_users:
if i.lower() in current_users:
print("%s 已經被使用,請更換使用者名稱" % i)
else:
print("%s 沒被註冊,可以使用" % i)
5-11 序數 :序數表示位置,如1st和2nd。大多數序數都以th結尾,只有1、2和3例外。
在一個列表中儲存數字1~9。
遍歷這個列表。
在迴圈中使用一個if-elif-else 結構,以列印每個數字對應的序數。輸出內容應為1st 、2nd 、3rd 、4th 、5th 、6th 、7th 、8th 和9th ,但每個序
數都獨佔一行。
list=[]
for numbers in range(1,10):
list.append(numbers)
print(list)
for number in list:
if number==1:
print(str(number)+'st')
elif number==2:
print(str(number)+'nd')
elif number==3:
print(str(number)+'rd')
else:
print(str(number)+'th')