2012-11-13 92 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