镜子中的你
2019-11-09 08:20
采纳率: 100%
浏览 964

用python编写猜数字游戏,遇到一个问题总解决不了,求助!

希望能在游戏过程中添加一个按“q”就能退出游戏的功能,
但是又和程序中只能输入数字的代码冲突,
就是希望,在游戏开始后,任何时候想退出游戏,按“q”就可以退出游戏,
但又不会和游戏中的try-except代码想冲突。
本人初学者,怎么想也解决不了,希望能有前辈指导。

import random

name = input("你好! 你的名字是什么?\n");
print("欢迎来到猜数字游戏 " + name.title())
print("我有一个数字在1到100之间, 你能在7次内猜到它吗?")

random_num = random.randint(1, 100)
time = 0
while time <= 7:
    try:
        num = int(input("输入一个数字:\n"))
    except ValueError as e:
        print("请输入有效数字")
        continue
    if num == random_num:
        break
    elif num < random_num:
        print("你的数字小了!")
    else:
        print("你的数字大了!")
    time += 1
if time <= 7:
    print("恭喜你,你赢了^_^.")
else:
    print("别灰心,再来一次你可以的^_^")
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 毕小宝 2019-11-09 09:59
    已采纳

    那也挺好处理的,在转 int 之前,先判断输入的是否是 q 字符,如果是的话,直接 break ;不是的话再尝试 int 转换,基本操作参考:

           try:
                  receive=input("输入一个数字,如果想退出,按 q 字符:\n")
                    if receive == "q":
                          break
                    elif:
                        num = int(receive)
            except ValueError as e:
            print("请输入有效数字")
            continue
    

    思路没问题,字符串比较是否相等我在 python 2 环境下没测通。

    点赞 评论
  • 代码的灵魂是bug! 2019-11-09 10:01
    import random
    import os,sys
    name = input("你好! 你的名字是什么?\n");
    print("欢迎来到猜数字游戏 " + name.title())
    print("我有一个数字在1到100之间, 你能在7次内猜到它吗?")
    
    random_num = random.randint(1, 100)
    time = 0
    while time <= 7:
        num = input("输入一个数字:\n")
        if time <= 7:
            if num == 'q' or num == 'Q':
                print('欢迎下次再来!')
                sys.exit(0)
            elif not num.isdigit():
                print("请输入有效数字")
                continue
        else:
            print('满7次了哦')
        if int(num) == random_num:
            break
        elif int(num) < random_num:
            print("你的数字小了!")
        else:
            print("你的数字大了!")
        time += 1
    if time <= 7:
        print("恭喜你,你赢了^_^.")
    else:
        print("别灰心,再来一次你可以的^_^")
    
    
    点赞 评论

相关推荐 更多相似问题