我的Python脚本接受整数而不是字符串为什么?

时间:2018-03-29 07:14:26

标签: python python-3.x

脚本:

#!/usr/bin/python
for i in range(5):
    value = input ("Enter the value : ")
    print value

字符串作为输入:

$ ./fun+for.py 
Enter the value : John
Traceback (most recent call last):
  File "./fun+for.py", line 13, in <module>
    value = input ("Enter the value : ")
  File "<string>", line 1, in <module>
NameError: name 'John' is not defined

整数输入:

$ ./fun+for.py 
Enter the value : 4
4
Enter the value : 5
5
Enter the value : 6
6
Enter the value : 7
7
Enter the value : 7
7

2 个答案:

答案 0 :(得分:2)

因为在Python2中,您输入的字符串实际上是通过eval(),因此它会将John作为变量名称进行搜索(尝试输入2+1)。使用raw_input()代替input()(在python3中,input()不再这样做。)

答案 1 :(得分:-2)

这是因为它是python 2;如果你在python 3中复制并粘贴这段代码,它会工作 - 我认为它更好。您将能够输入字符串,整数和双精度而不会收到错误。

for i in range(5):
    value = input ("Enter the value : ")
    print (value)
  • 当您为python3打印值时,需要括号

..希望这会有所帮助。