鱼C论坛

 找回密码
 立即注册
查看: 3258|回复: 7

[已解决]运行python程序为什么一按enter就退出了?

[复制链接]
发表于 2022-3-4 14:18:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
运行python程序为什么一按enter就退出了?
最佳答案
2022-3-4 15:17:05
本帖最后由 isdkz 于 2022-3-4 15:23 编辑
王老大脱发季 发表于 2022-3-4 15:13
在IDLE里面可以正常运行,但是点开桌面的程序输入数字后按enter就直接退出了。请问这是怎么回事呢?


这是因为程序运行结束了,你在 idle 里面运行只要 idle 没关闭就还有个主线程(idle作为主线程)在,

所以就不会关闭,

但是你直接运行的话,你的程序运行结束主线程(你的程序作为主线程)就结束了,

你想要在桌面点开运行不关闭的话,在程序末尾加上 input() 阻塞一下。

故对你的代码修改如下:
temp = input("不妨猜一下我心里想的是哪一个数字: ")
guess = int(temp)

if guess == 7:
    print("猜对啦")
else:
    print("猜错啦!我现在想的是7哦!")

print("game over")
input('请按任意键关闭程序!')            # 加个 input 阻塞程序
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-4 14:25:27 | 显示全部楼层
本帖最后由 isdkz 于 2022-3-4 14:28 编辑

建议把代码放上来,

执行完了退出是很正常的,

要是因为出错退出你又不给代码又不给报错信息,

别人也不知道你什么问题呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-4 14:35:05 | 显示全部楼层
        Python 是脚本语言,运行 Python 程序的时候,操作系统会为这个程序开辟一个 console(就是一个 CMD 窗口),供程序与用户之间进行交互,一旦程序运行结束,操作系统便会立即击毁这个 console 窗口,因为它本来就是操作系统额外创建的,运行完代码,理应恢复之前的状态。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-4 15:05:08 | 显示全部楼层
temp = input("不妨猜一下我心里想的是哪一个数字: ")
guess = int(temp)

if guess == 7:
    print("猜对啦")
else:
    print("猜错啦!我现在想的是7哦!")

print("game over")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-4 15:06:39 | 显示全部楼层
本帖最后由 王老大脱发季 于 2022-3-4 15:08 编辑
isdkz 发表于 2022-3-4 14:25
建议把代码放上来,

执行完了退出是很正常的,


在IDLE里面可以正常运行,但是点开桌面的程序输入数字后按enter就直接退出了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-4 15:13:33 | 显示全部楼层
jackz007 发表于 2022-3-4 14:35
Python 是脚本语言,运行 Python 程序的时候,操作系统会为这个程序开辟一个 console(就是一个 CMD ...

在IDLE里面可以正常运行,但是点开桌面的程序输入数字后按enter就直接退出了。请问这是怎么回事呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-4 15:17:05 | 显示全部楼层    本楼为最佳答案   
本帖最后由 isdkz 于 2022-3-4 15:23 编辑
王老大脱发季 发表于 2022-3-4 15:13
在IDLE里面可以正常运行,但是点开桌面的程序输入数字后按enter就直接退出了。请问这是怎么回事呢?


这是因为程序运行结束了,你在 idle 里面运行只要 idle 没关闭就还有个主线程(idle作为主线程)在,

所以就不会关闭,

但是你直接运行的话,你的程序运行结束主线程(你的程序作为主线程)就结束了,

你想要在桌面点开运行不关闭的话,在程序末尾加上 input() 阻塞一下。

故对你的代码修改如下:
temp = input("不妨猜一下我心里想的是哪一个数字: ")
guess = int(temp)

if guess == 7:
    print("猜对啦")
else:
    print("猜错啦!我现在想的是7哦!")

print("game over")
input('请按任意键关闭程序!')            # 加个 input 阻塞程序
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2022-3-4 15:44:54 | 显示全部楼层
isdkz 发表于 2022-3-4 15:17
这是因为程序运行结束了,你在 idle 里面运行只要 idle 没关闭就还有个主线程(idle作为主线程)在,
...

索嘎,谢谢啦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 06:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表