第五章作業
5-1 條件測試 : 編寫一系列條件測試; 將每個測試以及你對其結果的預測和實際結果都打印出來。 你編寫的代碼應類似於下面這樣:
car = ' subaru'
print("Is car == ' subaru' ? I predict True. ")
print(car == ' subaru' )
print("\nIs car == ' audi' ? I predict False. ")
print(car == ' audi' )
詳細研究實際結果, 直到你明白了它為何為True 或Fal
詳細研究實際結果, 直到你明白了它為何為True 或False 。
創建至少10個測試, 且其中結果分別為True 和False 的測試都至少有5個。
5-2 更多的條件測試 : 你並非只能創建10個測試。 如果你想嘗試做更多的比較, 可再編寫一些測試, 並將它們加入到conditional_tests.py中。 對於下面列出的各種測
試, 至少編寫一個結果為True 和False 的測試。
檢查兩個字符串相等和不等。
使用函數lower( ) 的測試。
檢查兩個數字相等、 不等、 大於、 小於、 大於等於和小於等於。
使用關鍵字and 和or 的測試。
測試特定的值是否包含在列表中。
測試特定的值是否未包含在列表中。
答:
car = ' subaru' print("Is car == ' subaru' ? I predict True. ") print(car == ' subaru' ) print("\nIs car == ' audi' ? I predict False. ") print(car == ' audi' ) 輸出: Is car == ' subaru' ? I predict True. True Is car == ' audi' ? I predict False. False
5-2 略
5-3 外星人顏色#1 : 假設在游戲中剛射殺了一個外星人, 請創建一個名為alien_color 的變量, 並將其設置為' green' 、 ' yellow' 或' red' 。
編寫一條if 語句, 檢查外星人是否是綠色的; 如果是, 就打印一條消息, 指出玩家獲得了5個點。
編寫這個程序的兩個版本, 在一個版本中上述測試通過了, 而在另一個版本中未通過(未通過測試時沒有輸出) 。
5-4 外星人顏色#2 : 像練習 5-3那樣設置外星人的顏色, 並編寫一個if-else 結構。
如果外星人是綠色的, 就打印一條消息, 指出玩家因射殺該外星人獲得了5個點。
如果外星人不是綠色的, 就打印一條消息, 指出玩家獲得了10個點。
編寫這個程序的兩個版本, 在一個版本中執行if 代碼塊, 而在另一個版本中執行else 代碼塊。
5-5 外星人顏色#3 : 將練習 5-4中的if-else 結構改為if-elif-else 結構。
如果外星人是綠色的, 就打印一條消息, 指出玩家獲得了5個點。
如果外星人是黃色的, 就打印一條消息, 指出玩家獲得了10個點。
如果外星人是紅色的, 就打印一條消息, 指出玩家獲得了15個點。
編寫這個程序的三個版本, 它們分別在外星人為綠色、 黃色和紅色時打印一條消息。
5-6人生的不同階段 : 設置變量age 的值, 再編寫一個if-elif-else 結構, 根據age 的值判斷處於人生的哪個階段。
如果一個人的年齡小於2歲, 就打印一條消息, 指出他是嬰兒。
如果一個人的年齡為2(含) ~4歲, 就打印一條消息, 指出他正蹣跚學步。
如果一個人的年齡為4(含) ~13歲, 就打印一條消息, 指出他是兒童。
如果一個人的年齡為13(含) ~20歲, 就打印一條消息, 指出他是青少年。
如果一個人的年齡為20(含) ~65歲, 就打印一條消息, 指出他是成年人。
如果一個人的年齡超過65(含) 歲, 就打印一條消息, 指出他是老年人。
5-7 喜歡的水果 : 創建一個列表, 其中包含你喜歡的水果, 再編寫一系列獨立的if 語句, 檢查列表中是否包含特定的水果。
將該列表命名為favorite_fruits , 並在其中包含三種水果。
編寫5條if 語句, 每條都檢查某種水果是否包含在列表中, 如果包含在列表中, 就打印一條消息, 如“You really like bananas!”。
答:5-3
alien_color = ['green'] if 'green' in alien_color:#這個green必須要有''啊 print('The player gets 5 points.')
版本2 alien_color = ['red'] if 'green' in alien_color: print('The player gets 5 points.')
5-4
alien_color = ['green'] if 'green' in alien_color:#這個green必須要有''啊 print('The player gets 5 points.') else: print('The player gets 10 points.') #版本2 alien_color = ['red'] if 'green' in alien_color: print('The player gets 5 points.') else: print('The player gets 10 points.')
5-5
alien_color = ['green']#其他兩個版本就是將green改一下 if 'green' in alien_color: print('The player gets 5 points.') elif 'yellow' in alien_color: print('The player gets 10 points.') elif 'red' in alien_color: print('The player gets 15 points.')
5-6
age = 25 if age <2: print('他是嬰兒。') elif age <4: print('他正蹣跚學步。') elif age < 13: print('他是兒童。') elif age < 20: print('他是青少年。') elif age < 65: print('他是成年人。') else: print('他是老年人。')
5-7略
5-8 以特殊方式跟管理員打招呼 : 創建一個至少包含5個用戶名的列表, 且其中一個用戶名為' admin' 。 想象你要編寫代碼, 在每位用戶登錄網站后都打印一條問
候消息。 遍歷用戶名列表, 並向每位用戶打印一條問候消息。
如果用戶名為' admin' , 就打印一條特殊的問候消息, 如“Hello admin, would you like to see a status report?”。
否則, 打印一條普通的問候消息, 如“Hello Eric, thank you for logging in again”。
5-9 處理沒有用戶的情形 : 在為完成練習 5-8編寫的程序中, 添加一條if 語句, 檢查用戶名列表是否為空。
如果為空, 就打印消息“We need to find some users!”。
刪除列表中的所有用戶名, 確定將打印正確的消息。
5-10 檢查用戶名 : 按下面的說明編寫一個程序, 模擬網站確保每位用戶的用戶名都獨一無二的方式。
創建一個至少包含5個用戶名的列表, 並將其命名為current_users 。
再創建一個包含5個用戶名的列表, 將其命名為new_users , 並確保其中有一兩個用戶名也包含在列表current_users 中。
遍歷列表new_users , 對於其中的每個用戶名, 都檢查它是否已被使用。 如果是這樣, 就打印一條消息, 指出需要輸入別的用戶名; 否則, 打印一條消息, 指
出這個用戶名未被使用。
確保比較時不區分大消息; 換句話說, 如果用戶名' John' 已被使用, 應拒絕用戶名' JOHN' 。
5-11 序數 : 序數表示位置, 如1st和2nd。 大多數序數都以th結尾, 只有1、 2和3例外。
在一個列表中存儲數字1~9。
遍歷這個列表。
在循環中使用一個if-elif-else 結構, 以打印每個數字對應的序數。 輸出內容應為1st 、 2 nd 、 3rd 、 4 th 、 5th 、 6th 、 7 th 、 8th 和9th , 但每個序
數都獨占一行。
答;5-8
users = ['admin','liming','zhangsan','lisi','wangshi'] for user in users: if user == 'admin':#這里忘了用引號,因為admin是個單字符 print('Hello ' + user + ',would you like to see a status report?') else:#注意else的縮進要和if的一樣 print('Hello ' + user +',thank you for logging in again')
5-9
users = [] if users:#此處我們進行了簡單檢查, 而不是直接執行for 循環 for user in users: print('Hello ' + user + ',would you like to see a status report?') else:#注意else的縮進要和if的一樣 print('Hello ' + user +',thank you for logging in again') else: print('“We need to find some users!”') 輸出; “We need to find some users!”
范的錯誤的
users = [] if user in users: print('Hello ' + user + ',would you like to see a status report?') else:#注意else的縮進要和if的一樣 print('Hello ' + user +',thank you for logging in again') else:#此處都標紅了 print('“We need to find some users!”')
5-10
current_users = ['admin','liming','zhangsan','lisi','wangshi','douyu','jiangyin','maoanying'] new_users = ['ergou','lisi','shitou','admin','erya'] for new_user in new_users: if new_user in current_users: print(new_user + '已被使用,請需要輸入其他用戶名!') else: print(new_user + '未被使用') #用沒有再print都無所謂啊 輸出: ergou未被使用 lisi已被使用,請需要輸入其他用戶名! shitou未被使用 admin已被使用,請需要輸入其他用戶名! erya未被使用
5-11
錯誤的寫法;
numbers = list(range(1,10)) print(numbers) if numbers < 2: print(numbers + 'st') if numbers < 4: print(numbers + 'rd') if numbers <10: print(numbers + 'th') 輸出: File "C:/Python36/day10/ss.py", line 3, in <module>不支持“列表”和“int”的實例。 if numbers < 2: TypeError: '<' not supported between instances of 'list' and 'int'
正確的
numbers = list(range(1,10)) print (numbers) for number in numbers: if number == 1: print('\n' + str(number)+'st')#必須用str不然沒法比較啊, elif number == 2: print('\n' + str(number)+'nd') elif number == 3: print('\n' + str(number)+'rd') else: print('\n' + str(number)+'th') 輸出;略
5-12 設置if 語句的格式 : 審核你在本章編寫的程序, 確保正確地設置了條件測試的格式。
5-13 自 己的想法 : 與剛拿起本書時相比, 現在你是一名能力更強的程序員了。 鑒於你對如何在程序中模擬現實情形有了更深入的認識, 你可以考慮使用程序來解決一
些問題。 隨着編程技能不斷提高, 你可能想解決一些問題, 請將這方面的想法記錄下來。 想想你可能想編寫的游戲、 想研究的數據集以及想創建的Web應用程序。
5-12 略
5-13 想編寫坦克大戰啊
