1 # -*- coding:utf-8 -*- 2 # 作者:IT小学生蔡坨坨 3 # 时间:2020/12/9 23:02 4 5 # 猜数字游戏: 6 # 代码中生成一个随机整数. 7 # 然后用户输入数字后, 8 # 程序提示用户的输入是高了还是低了, 9 # 直到用户猜中这个数字, 游戏结束. 10 # 提示, random模块的randint函数能够帮助我们生成随机整数。 11 12 from random import randint 13 14 correct_num = randint(1, 20) # 随机生成一个大于等于1,小于等于20的整数 15 is_quit = 'n' # 设置变量is_quit,用于判断是否退出游戏 16 print('请输入一个1-20的整数(输入q/Q/666可直接退出游戏):') 17 while is_quit != 'y': 18 try: 19 guess_num = input() # 用于获取用户输入的值 20 21 if guess_num.upper() == 'Q': # upper(),用户若输入q,则自动转换成Q 22 guess_num = 666 # 设置一个随机字符串,作为退出循环的条件 23 guess_num = int(guess_num) # 若用户输入的值为整数,则转换为int类型 24 25 if guess_num == correct_num: 26 print('恭喜你,猜对了,你真棒呀呀呀!') 27 is_quit = input('您要退出游戏吗? y/n :') 28 while is_quit != 'y' and is_quit != 'n': 29 is_quit = input('只能输入 y/n ,请重新输入:') 30 if is_quit == 'n': 31 correct_num = randint(1, 20) 32 print('请输入一个1-20的整数(输入q/Q/666可直接退出游戏):') 33 elif 1 <= guess_num < correct_num: 34 print('猜小了,哈哈哈,请重新输入:') 35 elif correct_num < guess_num <= 20: 36 print('猜大了,哈哈哈,请重新输入:') 37 elif guess_num == 666: 38 is_quit = 'y' # 用于退出循环,结束游戏 39 else: 40 # 若输入整数不在1-20范围内,则提示用户重新输入 41 print('您输入的整数不在1-20范围内,请重新输入:') 42 except ValueError: # 若输入非整数类型,捕获异常 43 print('您输入的不是一个整数,请重新输入:') 44 45 print('游戏结束!')