1. 程式人生 > >Python程式設計從入門到實踐課後答案:第五章

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')