windows+python2.7在IDLE中执行sys.exit()出现的问题及解决方案

《简明Python教程》中第13章讲述“异常”时,有这样的一个实例


 

import sys,os
def readfile(filename):
   '''''Print a file to the standard output.''' 
   f=file(filename)
   while True:
      line=f.readline()
      if len(line)==0:
        break
      print line,
   f.close()
if len(sys.argv)<2:
   print 'No action specified'
   sys.exit()
if sys.argv[1].startswith('--'):
   option=sys.argv[1][2:]
   if option=='version':
      print 'Version 1.2'
   elif option=='help':
      print '''''\
This program prints files to the standard output.
Any number of files can be specified.
Options include:
   --version : Prints the version number
   --help    : Display this help'''
   else:
      print 'Unknown option.'
   sys.exit()
else:
   for filename in sys.argv[1:]:
      readfile(filename)  
      

在windows环境中,使用IDLE环境执行上面的代码,在显示“Enter something -->”时按“Ctrl+Z”组合键时,程序显示Done。而在显示“Enter something -->”时按“Ctrl+D”组合键时,程序执行到sys.exe()时报错,错误代码如下:

 

 

No action specified

Traceback (most recent call last):
  File "E:\python27\test\test.py", line 13, in <module>
    sys.exit()
SystemExit
>>> 

 

 

 

这里解释一下发生错误的原因

出现上述错误是正常现象,这是因为在IDLE环境中不允许exit退出。

理由是:sys.exit()是退出python解释器回到上级shell,而IDEL最高级别就是python解释器,所以没法退到上级。

如果通过windows的cmd进入,执行上面提到的教程中的例子,是没有错误的。在这举例:在cmd环境下,输入python,进入python环境,然后执行以下代码

 


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值