Crossin的编程教室

标题: 不输入内容,为什么没有抛出EOFError异常? [打印本页]

作者: canyuetian    时间: 2017-12-5 13:46
标题: 不输入内容,为什么没有抛出EOFError异常?
#!D:\Python
#Filename:try_except.py

import sys

try:
    s = input('Enter something-->')
except EOFError:
    print('\nWhy did you do an EOF on me?')
    sys.exit()#exit the program
except:
    print('\nSome error/exception occurred.')
    #here,we are not exiting the program

print('Done')


以上代码是Python简明教程里面的一段代码,运行程序后没有输入直接回车,为什么没有报出EOFError,而是Done?我用的是Python3.6,windows版本。

作者: braid    时间: 2017-12-5 14:19
因为回车不算EOFError,如果要手动触发这个异常,用ctrl+d才会出现你的第二个输出
作者: canyuetian    时间: 2017-12-5 14:59
braid 发表于 2017-12-5 14:19
因为回车不算EOFError,如果要手动触发这个异常,用ctrl+d才会出现你的第二个输出 ...

我用的是Spyder,在Ipython中按Ctrl+d也没用
作者: braid    时间: 2017-12-5 15:05
canyuetian 发表于 2017-12-5 14:59
我用的是Spyder,在Ipython中按Ctrl+d也没用

python 自带的IDLE总有的咯,你在那里也可以实现我上面说的。
作者: canyuetian    时间: 2017-12-5 15:24
braid 发表于 2017-12-5 15:05
python 自带的IDLE总有的咯,你在那里也可以实现我上面说的。

是的,因为Spyder上面的Ctrl+d被占用了,不支持手动触发。多谢你啦




欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5