设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 7892|回复: 4
打印 上一主题 下一主题

不输入内容,为什么没有抛出EOFError异常?

[复制链接]

1

主题

0

好友

11

积分

新手上路

Rank: 1

跳转到指定楼层
楼主
发表于 2017-12-5 13:46:46 |只看该作者 |倒序浏览
#!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版本。
回复

使用道具 举报

0

主题

0

好友

114

积分

注册会员

Rank: 2

沙发
发表于 2017-12-5 14:19:23 |只看该作者
因为回车不算EOFError,如果要手动触发这个异常,用ctrl+d才会出现你的第二个输出
回复

使用道具 举报

1

主题

0

好友

11

积分

新手上路

Rank: 1

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

我用的是Spyder,在Ipython中按Ctrl+d也没用
回复

使用道具 举报

0

主题

0

好友

114

积分

注册会员

Rank: 2

地板
发表于 2017-12-5 15:05:44 |只看该作者
canyuetian 发表于 2017-12-5 14:59
我用的是Spyder,在Ipython中按Ctrl+d也没用

python 自带的IDLE总有的咯,你在那里也可以实现我上面说的。
回复

使用道具 举报

1

主题

0

好友

11

积分

新手上路

Rank: 1

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

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-13 14:51 , Processed in 0.025461 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部