python程序在pythonshell和terminal中的行为不同
我有一个简单的Python程序,它会询问是或否问题,我会验证输入。 如果我运行这个pythonshell,它运行得很好。如果我输入了无效字符,它将返回while的顶部 但是,如果我在终端窗口中运行此命令并尝试输入无效字符,则会出现如下所示的错误python程序在pythonshell和terminal中的行为不同,python,raspberry-pi,Python,Raspberry Pi,我有一个简单的Python程序,它会询问是或否问题,我会验证输入。 如果我运行这个pythonshell,它运行得很好。如果我输入了无效字符,它将返回while的顶部 但是,如果我在终端窗口中运行此命令并尝试输入无效字符,则会出现如下所示的错误 endProgram = 0 while endProgram != 1: userInput = input("Yes or No? "); userInput = userInput.lower(); while userI
endProgram = 0
while endProgram != 1:
userInput = input("Yes or No? ");
userInput = userInput.lower();
while userInput not in ['yes', 'no']:
print("Try again.")
break
endProgram = userInput == 'no'
我可以清楚地看到您在python 3.2.3(后台)中使用的交互式shell。但是我看不到您正在从命令行(前台)运行的python版本 在raspberrypi上,从shell执行以下命令:
python --version
我希望在这里看到Python2.x,因为Python2和Python3之间的input()
的行为不同,在某种程度上会导致您所看到的行为
您可能需要添加一行,如
#!/usr/bin/env python3
到
.py
文件的顶部,然后在其上单击chmod+x
。之后,您应该能够直接执行它(/guipy01.py
),并且将自动选择正确的python解释器 我可以清楚地看到您在python 3.2.3(后台)中使用的交互式shell。但是我看不到您正在从命令行(前台)运行的python版本
在raspberrypi上,从shell执行以下命令:
python --version
我希望在这里看到Python2.x,因为Python2和Python3之间的input()
的行为不同,在某种程度上会导致您所看到的行为
您可能需要添加一行,如
#!/usr/bin/env python3
到
.py
文件的顶部,然后在其上单击chmod+x
。之后,您应该能够直接执行它(/guipy01.py
),并且将自动选择正确的python解释器 看起来您的RPi正在使用Python 2;input
函数在那里执行eval
。Python3中的
input
相当于Python2中的raw\u input
。(见附件)
理想情况下,您应该将RPi解释器更改为Python 3。否则,您可以使其版本不可知,如下所示:
try:
input = raw_input
except NameError:
pass
看起来您的RPi正在使用Python 2;
input
函数在那里执行eval
。Python3中的
input
相当于Python2中的raw\u input
。(见附件)
理想情况下,您应该将RPi解释器更改为Python 3。否则,您可以使其版本不可知,如下所示:
try:
input = raw_input
except NameError:
pass
您是否在这两个平台上使用相同的Python版本<代码>输入在2和3之间更改行为。您是否在这两个版本上使用相同的Python版本<代码>输入在2和3之间更改行为。