在Python 3输入的字符串(input string in python 3)

2019-09-15 20:00发布

我有字符串变量测试,在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”没有定义

Answer 1:

你跟一个Python解释器2运行你的Python 3代码。 如果你不是,你的print语句会扔了一个SyntaxError之前,它曾经提示您输入。

其结果是,你使用Python 2的input ,它试图eval您的输入(大概sdas ),发现它是无效的Python和死亡。



Answer 2:

我说你需要的代码是:

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

否则,它不应该运行在所有,由于语法错误。 该print功能,需要在Python 3括号我无法重现你的错误,虽然。 你肯定是那些导致该错误行?



Answer 3:

SDAS正被读取作为一个变量。 要输入一个字符串,你需要“”



Answer 4:

我得到了同样的错误。 在终端,当我键入“蟒蛇filename.py”,使用此命令,python2被特林运行python3代码,因为写python3。 当我在终端上键入“python3 filename.py”它正常运行。 我希望这也适用于你。



Answer 5:

在操作系统如Ubuntu蟒蛇预装。 所以默认的版本是Python 2.7版,你可以通过在终端中输入如下命令确认版本

python -V

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

python 2.7

在终端。 我会告诉你如何设置默认的Python版本在Ubuntu。

一个简单安全的方法是使用别名。 把这个到〜/ .bashrc或者〜/ .bash_aliases文件:

alias python=python3

添加上述的文件中之后,运行下面的命令:

source ~/.bash_aliasessource ~/.bashrc

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

如果蟒蛇3.xx版一个,那么错误是在你的语法像使用打印用括号。 将其更改为

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


Answer 6:

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))  )  )


Answer 7:

如果我们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")


文章来源: input string in python 3