2012-11-13 87 views
0

这是我的测试代码,test.pyPython字符串解析错误

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)解析它,但我仍然得到相同的错误。

+1

使用的raw_input'()' –

+3

不要将其命名变量'str'。你期望'str(str)'做什么? – geoffspear

回答

6

input()试图将输入解析为python表达式。改为使用raw_input()

它与1.1一起工作,因为这是一个文字浮点值,一个数字,在Python中。

这可能是因为你正在学习Python 3的教程,而是使用Python 2代替。在Python 3中,raw_input()函数被重命名为input(),旧的input()函数被完全删除。如果是这样,请安装Python 3并从那里继续。

+1

他对'print'使用括号。你是否认为他的目标是Python 3,但是使用Python 2? –

+0

@StevenRumbalski:非常好,我认为你是对的。更新。 –

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