Python字符串解析错误

时间:2012-11-13 12:27:27

标签: python string

这是我的测试代码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)解析它,但我仍然得到同样的错误。

3 个答案:

答案 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”。