Python程序执行后不显示print输出即退出,PyCharm代码问题求助
解决你的PyCharm中Python程序无输出就关闭的问题
嘿,我来帮你搞定这个问题!你的代码里有两个核心问题导致了这个现象,咱们一步步拆解解决:
1. 变量作用域的坑
你在main_program()函数里写的services_array = [user_service]和passwords_array = [user_password],其实是创建了函数内部的局部变量,根本没修改你在函数外定义的全局空列表。所以当你调用show_inputs()时,传入的还是一开始的空列表,自然不会有任何print输出。
这里有两种靠谱的解决方式:
- 方式一:在函数内用
global声明要修改全局变量 - 方式二:让函数返回收集到的内容,再赋值给全局变量(更推荐,避免全局变量滥用)
2. 程序跑完就自动关闭的问题
就算修复了变量问题,程序输出内容后也会立刻关闭窗口,你可能根本来不及看结果。可以在代码最后加一行等待输入的代码,让程序停住等你操作。
修改后的完整代码
services_array = [] passwords_array = [] def main_program(): user_service = input("Il nome del servizio è: ") user_password = input("Inserisci la password: ") # 返回收集到的服务和密码,不再创建局部变量 return [user_service], [user_password] def show_inputs(services_array, passwords_array): for service in services_array: for password in passwords_array: print(f"{service} --------- {password}") # 接收函数返回值,更新全局列表 services_array, passwords_array = main_program() show_inputs(services_array, passwords_array) # 等待用户输入,防止窗口瞬间关闭 input("按任意键退出...")
额外优化小建议
你的嵌套循环其实没必要(毕竟一个服务对应一个密码),用zip()遍历会更简洁:
def show_inputs(services_array, passwords_array): for service, password in zip(services_array, passwords_array): print(f"{service} --------- {password}")
这样修改后,你运行程序就能正常看到输出,窗口也会等你按任意键才关闭啦!
内容的提问来源于stack exchange,提问作者B.Soflau
相关产品推荐
相关产品推荐

