我有字符串变量测试,在Python 2.7这工作得很好。
test = raw_input("enter the test")
print test
但是在Python 3.3。 我用
test = input("enter the test")
print test
与输入字符串sdas
,我得到一个错误信息
回溯(最近通话最后一个):
文件“/home/ananiev/PycharmProjects/PigLatin/main.py”
线5,在测试输入=(“进入测试”)
文件“”,1号线,在NameError:名字“SDAS”没有定义
你跟一个Python解释器2运行你的Python 3代码。 如果你不是,你的print
语句会扔了一个SyntaxError
之前,它曾经提示您输入。
其结果是,你使用Python 2的input
,它试图eval
您的输入(大概sdas
),发现它是无效的Python和死亡。
我说你需要的代码是:
test = input("enter the test")
print(test)
否则,它不应该运行在所有,由于语法错误。 该print
功能,需要在Python 3括号我无法重现你的错误,虽然。 你肯定是那些导致该错误行?
SDAS正被读取作为一个变量。 要输入一个字符串,你需要“”
我得到了同样的错误。 在终端,当我键入“蟒蛇filename.py”,使用此命令,python2被特林运行python3代码,因为写python3。 当我在终端上键入“python3 filename.py”它正常运行。 我希望这也适用于你。
在操作系统如Ubuntu蟒蛇预装。 所以默认的版本是Python 2.7版,你可以通过在终端中输入如下命令确认版本
python -V
如果你安装了它,但没有设置默认版本,你会看到
python 2.7
在终端。 我会告诉你如何设置默认的Python版本在Ubuntu。
一个简单安全的方法是使用别名。 把这个到〜/ .bashrc或者〜/ .bash_aliases文件:
alias python=python3
添加上述的文件中之后,运行下面的命令:
source ~/.bash_aliases
或source ~/.bashrc
现在再次使用检查Python版本python -V
如果蟒蛇3.xx版一个,那么错误是在你的语法像使用打印用括号。 将其更改为
test = input("enter the test")
print(test)
temperature = input("What's the current temperature in your city? (please use the format ??C or ???F) >>> ")
### warning... the result from input will <str> on Python 3.x only
### in the case of Python 2.x, the result from input is the variable type <int>
### for the <str> type as the result for Python 2.x it's neccessary to use the another: raw_input()
temp_int = int(temperature[:-1]) # 25 <int> (as example)
temp_str = temperature[-1:] # "C" <str> (as example)
if temp_str.lower() == 'c':
print("Your temperature in Fahrenheit is: {}".format( (9/5 * temp_int) + 32 ) )
elif temp_str.lower() == 'f':
print("Your temperature in Celsius is: {}".format( ((5/9) * (temp_int - 32)) ) )
如果我们setaside打印的语法错误,那么要在多个场景中输入的方式是 -
如果使用Python 2.x的:
then for evaluated input use "input"
example: number = input("enter a number")
and for string use "raw_input"
example: name = raw_input("enter your name")
如果使用Python 3.X:
then for evaluated result use "eval" and "input"
example: number = eval(input("enter a number"))
for string use "input"
example: name = input("enter your name")