1.猜數游戲。在程序中預設一個0~9之間的整數,讓用戶通過鍵盤輸入所猜數字,如果大於預設的數,
顯示“遺憾,太大了”;如果小於預設的數,顯示“遺憾,太小了”;如此循環,直至猜到該數,顯示“預
測N次,你猜中了!”,其中N是用戶輸入數字的次數。
1 from random import* 2 x=randint(0,9) 3 4 for i in range(10): 5 y=eval(input("請輸入一個0到九的數:")) 6 7 if x<y: 8 print("遺憾,太大了") 9 elif x>y: 10 print("遺憾,太小了") 11 else: 12 print("預測"+str(i+1)+"次,""你猜中了") 13 break
此題調用了random庫的randint()函數來產生一個隨機整數,用戶在for循環里面輸入數字與隨機數進行比較,
通過提示調整輸入數字的大小,當輸入數字與產生的隨機數相等時,break跳出循環,程序結束。
2.統計不同字符個數。用戶從鍵盤輸入一行字符串,編寫一個程序,統計並輸出其中英文、數字、空格和其他
字符的個數。
1 x=input("輸入你的字符串:") 2 a=b=c=d=0 3 for i in x: 4 if ord('a')<=ord(i)<=ord('z') or ord('A')<=ord(i)<=ord('Z'): 5 a=a+1 6 elif ord('0')<=ord(i)<=ord('9'): 7 b=b+1 8 elif ord(i)==ord(' '): 9 c=c+1 10 else: 11 d=d+1 12 print("這一行字符中字母的數量是:{},數字的數量是:{},空格數量是:{},其他字符的數量是:{}。".format(a,b,c,d)) 13
內置函數order()返回單個字符表示的Unicode編碼值。賦四種字符初始值為0,for循環遍歷輸入的字符串,
通過判斷語句來區分字符類別並對遍歷的字符個數進行遞增。
4.4 猜數游戲。改編程序練習題4.1,讓計算機隨機產生一個預設數字,范圍在0~100之間,其他游戲規則不變。
1 from random import* 2 x=randint(0,100) 3 4 for i in range(100): 5 6 try: 7 y=eval(input("請輸入一個0到100的數:")) 8 if x<y: 9 print("遺憾,太大了") 10 elif x>y: 11 print("遺憾,太小了") 12 else: 13 print("預測"+str(i+1)+"次,""你猜中了") 14 break 15 except NameError: 16 print("輸入格式有誤!") 17 finally: 18 print("執行完畢!")
加入簡單的異常處理,對非數字類型進行處理
4.7 用異常處理改造4.1,使其能接收並處理用戶的任何輸入。
1 from random import* 2 x=randint(0,9) 3 print("{0:*^50}".format("猜數字游戲")) 4 for i in range(10): 5 6 try: 7 y=eval(input("請輸入一個0到9的數:")) 8 if x<y: 9 print("遺憾,太大了") 10 elif x>y: 11 print("遺憾,太小了") 12 else: 13 print("預測"+str(i+1)+"次,""恭喜你,你猜中了!") 14 break 15 except NameError: 16 print("輸入格式有誤!") 17 else: 18 print("沒關系,繼續加油!") 19 finally: 20 print("這是第{}猜".format(i+1)) 21 print("{0:*^30}".format("游戲結束"))
此題是相對題一和題四的優化版,加入了else的補充內容,還有每次循環執行完畢finally語句對用戶的提示。