我正在开发一个非常简单的python程序,它基本上是一个密码输入屏幕。当我通过Windows上的命令提示符(python login.py)执行时,一切正常,程序正常运行。但是,如果我通过双击它来运行程序,那么我需要输入密码:"输入,只要我输入所需的密码,就会出现此错误:
NameError:name' pass'没有定义。
如何修复此错误?
import time
print("You have ten seconds to enter the password.")
time.sleep(1)
print("Or this computer will shut down.")
password = input("Enter password: ")
while 1:
if password == "pass":
print("Login successful.")
break
else:
password = input("Enter password: ")
答案 0 :(得分:1)
听起来您正在从命令行运行Python 3.X,但是当您点击它时,Python 2.7正在执行您的脚本。发生错误是因为2.7' input
的行为与3.X不同。
您可以尝试重新定义input
,使其在两个版本中的行为相同:
try:
input = raw_input
except NameError:
#we're already in 3.x and don't need to do anything
pass
#rest of code goes here
或者,您可以更改.py文件的默认应用程序。如何做到这一点可能因操作系统而异,但在Windows中它是这样的:右键单击.py文件,选择"打开..."和"选择默认程序",然后浏览到3.X目录中的python可执行文件。