实例解析:猜数字游戏
【例】编写一个“猜数字游戏”的程序,在1到1000之间随机产生一个数,然后请用户循环猜测这个数字,对于每个答案只回答“猜大了”或“猜小了”,直到猜测准确为止,输出用户的猜测次数。
为了产生随机数,需要使用Python语言的随机数标准库random。如下表中是9个random库中的函数。

使用:
1 2 | import random target = random.randint(1,1000) |
根据程序需求,需要考虑不断地让用户循环输入猜测值,并根据猜测值和目标值之间的比较决定程序逻辑。
1 2 3 4 5 6 7 8 9 10 11 12 13 | import random target = random.randint(1,1000) count = 0 while True: guess = eval(input('请输入一个猜测的整数(1至1000):')) count = count + 1 if guess > target: print('猜大了') elif guess < target: print('猜小了') else: print('猜对了') break print("此轮的猜测次数是:", count) | ||
由于使用了eval(input())方式获得用户输入,如果用户输入非数字产生运行错误,程序将会退出。为了增加程序鲁棒性,增加异常处理机制。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | import random target = random.randint(1,1000) count = 0 while True: try: guess = eval(input('请输入一个猜测的整数(1至1000):')) except: print('输入有误,请重试,不计入猜测次数哦!') continue count = count + 1 if guess > target: print('猜大了') elif guess < target: print('猜小了') else: print('猜对了') break print("此轮的猜测次数是:", count) | ||
运行:
>>> 请输入一个猜测的整数(1至1000):500 猜大了 请输入一个猜测的整数(1至1000):Python 输入有误,请重试,不计入猜测次数哦! 请输入一个猜测的整数(1至1000):260 猜小了 请输入一个猜测的整数(1至1000):380 猜大了 请输入一个猜测的整数(1至1000):300 猜小了 请输入一个猜测的整数(1至1000):340 猜小了 请输入一个猜测的整数(1至1000):360 猜小了 请输入一个猜测的整数(1至1000):370 猜对了 此轮的猜测次数是: 7 |

