Python脚本在IDLE(Geany)可正常运行,双击打开却中途退出
Windows下双击Python脚本运行后自动退出的原因分析
先看你编写的质数检查脚本:
print('Hi!prime number checker!') user_num = input('Please, enter a number:\n' ) user_num = int(user_num) if user_num == 1: print('prime') if user_num == 2: print('prime') if user_num > 2: for num in range (2, user_num): x = user_num % num if x == 0 : print('not prime') exit() else: print ('prime') exit()
核心原因
Windows系统双击.py文件时,会启动一个临时的CMD命令窗口来执行脚本。一旦脚本执行完毕(不管是正常结束,还是通过exit()强制终止),这个临时CMD窗口会立刻自动关闭,导致你来不及看到输出结果,视觉上就像是程序“中途退出”。
而你在IDLE或Geany里运行脚本时,是在编辑器自带的终端环境中执行,脚本结束后终端窗口不会自动关闭,所以能正常看到输出内容。
结合脚本逻辑的具体场景
- 输入1或2:执行
print('prime')后,脚本没有后续代码,直接结束,CMD窗口随即关闭,你看不到输出。 - 输入大于2的质数:循环遍历完所有数都没找到能整除的,执行
print('prime')和exit()后脚本终止,窗口立刻关闭。 - 输入大于2的合数:循环中找到能整除的数,执行
print('not prime')和exit(),同样窗口瞬间关闭。
本质上脚本没有报错,只是Windows的这种运行机制让你无法留存输出窗口查看结果。
内容的提问来源于stack exchange,提问作者aszx 6309
相关产品推荐
相关产品推荐

