ElinaElizabeth 发表于 2020-8-16 20:59:38

请帮我看一下这段代码有什么问题谢谢

import random

secret = random.randint(1,10)
print('------------------我爱鱼C工作室------------------')
temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
try:
    guess = int(temp)
except (ValueError, EOFError, KeyboardInterrupt):
    print('输入错误!')
    guess = secret
while guess != secret:
    temp = input("哎呀,猜错了,请重新输入吧:")
    guess = int(temp)
    if guess == secret:
      print("我草,你是小甲鱼心里的蛔虫吗?!")
      print("哼,猜中了也没有奖励!")
    else:
      if guess > secret:
            print("哥,大了大了~~~")
      else:
            print("嘿,小了,小了~~~")
print("游戏结束,不玩啦^_^")

当用户输入Ctrl+C时,系统没有输出“输入错误!游戏结束,不玩啦”,而是直接红字报错,为什么呢?

紫癜聪 发表于 2020-8-16 21:16:07

我也看不出

Twilight6 发表于 2020-8-16 21:28:00


改成这样就好,因为你 try 捕获没有把 input 输入时候捕获,所以不会出现错误

把 input 也放入 try 即可捕获 KeyboardInterrupt :

import random

secret = random.randint(1,10)
print('------------------我爱鱼C工作室------------------')
try:
    temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
    guess = int(temp)
except (ValueError, EOFError, KeyboardInterrupt):
    print('输入错误!')
    guess = secret
while guess != secret:
    temp = input("哎呀,猜错了,请重新输入吧:")
    guess = int(temp)
    if guess == secret:
      print("我草,你是小甲鱼心里的蛔虫吗?!")
      print("哼,猜中了也没有奖励!")
    else:
      if guess > secret:
            print("哥,大了大了~~~")
      else:
            print("嘿,小了,小了~~~")
print("游戏结束,不玩啦^_^")

小甲鱼的铁粉 发表于 2020-8-16 22:46:40

Twilight6 发表于 2020-8-16 21:28
改成这样就好,因为你 try 捕获没有把 input 输入时候捕获,所以不会出现错误

把 input 也放入 try 即 ...

我去,1950了,好快啊{:10_257:}
页: [1]
查看完整版本: 请帮我看一下这段代码有什么问题谢谢