杨东明 发表于 2021-6-28 16:25:17

input()另外两种异常是咋触发得??

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("游戏结束,不玩啦^_^")

阿奇_o 发表于 2021-6-28 16:25:18

Google了一下,
EOFError不是什么技术错误,偶尔发生在 在线IDE,End of File等情景下,导致用户的输入未能正确获取,而产生异常。
KeyboardInterrupt,就很简单了,就是用户取消输入(如按下 Ctrl+C)

ps: 初学,没必要深究。

杨东明 发表于 2021-6-28 16:26:50

题目是:1. input() 函数有可能产生两类异常:EOFError(文件末尾endoffile,当用户按下组合键 Ctrl+d 产生)和 KeyboardInterrupt(取消输入,当用户按下组合键 Ctrl+c 产生),再次修改上边代码,捕获处理 input() 的两类异常,提高用户体验。];7uhw

这个 文件末尾endoffile是什么意思。。。我在代码运行后input那儿敲ctrl +d+c也没反应。。。{:9_224:}

qiuyouzhi 发表于 2021-6-28 19:18:06

杨东明 发表于 2021-6-28 16:26
题目是:1. input() 函数有可能产生两类异常:EOFError(文件末尾endoffile,当用户按下组合键 Ctrl+d 产生 ...

?我这里没有问题啊
Ctrl + D, Ctrl + C都行

hrpzcf 发表于 2021-6-28 20:05:50

有些终端是不支持这些组合键的,换终端再试,比如cmd窗口,比如IDLE shell,比如pycharm自带终端等等

杨东明 发表于 2021-6-28 20:21:13

hrpzcf 发表于 2021-6-28 20:05
有些终端是不支持这些组合键的,换终端再试,比如cmd窗口,比如IDLE shell,比如pycharm自带终端等等

谢谢谢谢{:9_231:}

杨东明 发表于 2021-6-28 20:21:47

阿奇_o 发表于 2021-6-28 16:25
Google了一下,
EOFError不是什么技术错误,偶尔发生在 在线IDE,End of File等情景下,导致用户的输入未 ...

感谢感谢{:9_231:}
页: [1]
查看完整版本: input()另外两种异常是咋触发得??