Python猜數程序

5.1 問題
編寫guess.py腳本,實現以下目標:

系統隨機生成100以內的數字
要求用戶猜生成的數字是多少
最多猜5次,猜對結束程序
如果5次全部猜錯,則輸出正確結果
5.2 方案
引用random模塊生成1-100的隨機數,用while循環語句讓猜數字次數大於0,提示並獲取用戶輸入整數值,在進行猜數字對錯判斷前先用if嵌套判斷方式確定輸入值是否合法,如果合法進行猜數字對錯判斷,判斷結束後猜數字次數需減1,如果不合法重新進入循環,此時循環次數不減少

此程序需要注意的部分在於:

每局對錯判斷之後,猜數字次數一定要減1,這樣猜數字次數等於0的時候,循環就結束了

5.3 步驟
實現此案例需要按照如下步驟進行。

步驟一:編寫腳本

 [root@localhost day02]# vim guess.py
#!/usr/bin/env python3
import random
secret = random.randint(1,100)        #生成隨機數  
time = 5        #猜數字的次數  
print("---------歡迎來到猜數字的地方,請開始---------")  
while time > 0:  
    guess = int(input("*數字區間0-100,請輸入你猜的數字:"))  
    print("你輸入數字是:",guess) 
    if 0 <= guess < 100: 
        if guess == secret:  
            print("猜對了,真厲害")  
        else:  
            print("太遺憾了,你猜錯了,你還有",time-1,"次機會")  
        time -= 1
    else:
        print("輸入非法,請重新輸入")  
print("遊戲結束,正確的結果是:",secret) 

步驟二:測試腳本執行

[root@localhost day02]# python3 guess.py
---------歡迎來到猜數字的地方,請開始---------
*數字區間0-100,請輸入你猜的數字:100
你輸入數字是: 100
輸入非法,請重新輸入
*數字區間0-100,請輸入你猜的數字:0
你輸入數字是: 0
太遺憾了,你猜錯了,你還有 4 次機會
*數字區間0-100,請輸入你猜的數字:-1
你輸入數字是: -1
輸入非法,請重新輸入
*數字區間0-100,請輸入你猜的數字:12
你輸入數字是: 12
太遺憾了,你猜錯了,你還有 3 次機會
*數字區間0-100,請輸入你猜的數字:34
你輸入數字是: 34
太遺憾了,你猜錯了,你還有 2 次機會
*數字區間0-100,請輸入你猜的數字:56
你輸入數字是: 56
太遺憾了,你猜錯了,你還有 1 次機會
*數字區間0-100,請輸入你猜的數字:89
你輸入數字是: 89
太遺憾了,你猜錯了,你還有 0 次機會
遊戲結束,正確的結果是: 47
步驟三:改進腳本

import random
num = random.randint(1, 100)
counter = 0
while counter < 5:
    answer = int(input('guess the number: '))
    if answer > num:
        print('猜大了')
    elif answer < num:
        print('猜小了')
    else:
        print('猜對了')
        break
    counter += 1
else:  # 循環被break就不執行了,沒有被break才執行
    print('the number is:', num)

測試腳本執行:

[root@localhost day02]# python3 guess2.py
猜大了
guess the number: 30
猜小了
guess the number: 50
猜小了
guess the number: 70
猜小了
guess the number: 78
猜小了
the number is: 88
[root@localhost day02]# python3 guess2.py
guess the number: 16
猜小了
guess the number: 90
猜大了
guess the number: 50
猜大了
guess the number: 30
猜對了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章