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
猜对了

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