python 3中的输入字符串

问题描述 投票:11回答:7

我有字符串变量测试,在Python 2.7中这很好用。

test = raw_input("enter the test") 
print test

但是在Python 3.3中。我用

test = input("enter the test") 
print test

使用输入字符串sdas,我收到一条错误消息

Traceback(最近一次调用最后一次):

文件“/home/ananiev/PycharmProjects/PigLatin/main.py”,

第5行,在test = input(“输入测试”)

NameError中的文件“”,第1行:名称'sdas'未定义

python string python-3.x input
7个回答
13
投票

您正在使用Python 2解释器运行Python 3代码。如果你不是,你的print声明会在它提示你输入之前抛出一个SyntaxError

结果是你正在使用Python 2的input,它试图eval你的输入(大概是sdas),发现它是无效的Python,并且死了。


6
投票

我要说你需要的代码是:

test = input("enter the test")
print(test)

否则,由于语法错误,它根本不应该运行。 print函数需要在python 3中使用括号。但是我无法重现您的错误。你确定是那些导致错误的行吗?


0
投票

sdas被读作变量。要输入字符串,您需要“”


0
投票

我得到了同样的错误。在我键入“python filename.py”的终端中,使用此命令,python2正在运行python3代码,因为它是写成python3的。当我在终端中输入“python3 filename.py”时它正确运行。我希望这也适合你。


0
投票

在像Ubuntu这样的操作系统中预装了python。因此默认版本是python 2.7,您可以通过在终端中键入以下命令来确认版本

python -V

如果你安装了它但没有设置默认版本,你会看到

python 2.7

在终端。我将告诉你如何在Ubuntu中设置默认的python版本。

一种简单安全的方法是使用别名。将其放入〜/ .bashrc或〜/ .bash_aliases文件中:

alias python=python3

在文件中添加上述内容后,运行以下命令:

source ~/.bash_aliasessource ~/.bashrc

现在使用python -V再次检查python版本

如果python版本3.x.x之一,那么错误就在你的语法中,比如使用带括号的print。改为

test = input("enter the test")
print(test)

0
投票

好问题很简单,我不知道为什么人们会这么回答。

解:

如果使用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")

0
投票
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))  )  )
© www.soinside.com 2019 - 2024. All rights reserved.