Python簡單程序結構練習題


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語句對用戶的提示。

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM