这是我的测试代码test.py
:
str = input("IP: ")
print(str)
运行时我收到此错误:
➜ PingScript git:(master) ✗ python test.py
IP: 1.1.1.1
Traceback (most recent call last):
File "test.py", line 1, in <module>
str = input("IP: ")
File "<string>", line 1
1.1.1.1
^
SyntaxError: invalid syntax
只有当我使用1.1.1.1
作为输入时才会发生这种情况,而如果我使用1.1
作为输入则不会发生这种情况,这里发生了什么?我试图用str(str)
解析它,但我仍然得到同样的错误。
答案 0 :(得分:6)
input()
尝试将输入解析为python表达式。请改用raw_input()
。
它与1.1
一起用作输入,因为它是python中的文字浮点值,数字。
可能是您正在关注适用于Python 3的教程,但使用的是Python 2。在Python 3中,raw_input()
函数已重命名为input()
,旧的input()
函数已完全删除。如果是这样,请安装Python 3并从那里继续。
答案 1 :(得分:1)
input()
评估您输入的内容,就好像它是有效的Python代码一样。 raw_input()
,接受输入并将其作为字符串返回。由于1.1.1.1
不是有效的Python代码,因此会出现错误。 1.1
是Python中的一个浮点数,这就是为什么它似乎有效:
>>> input('Enter: ')
Enter: 1+1
2
>>> raw_input('Enter: ')
Enter: 1+1
'1+1'
>>> input('Enter: ')
Enter: 1.1
1.1000000000000001
答案 2 :(得分:0)
str()是Python语言的内置函数,可将其他数据类型转换为字符串。因此str必须是一个关键字,不能用作变量名。请使用其他任何变量名称代替“ str”。