python3.x中raw_input()
和input()
和有什麼不一樣?python3.x中raw_input()和input()之間的區別是什麼?
回答
區別在於Python 3.x中不存在raw_input()
,而input()
則不存在。實際上,舊的raw_input()
已重命名爲input()
,而舊的input()
已不存在,但可以通過使用eval(input())
輕鬆進行模擬。 (請記住,eval()
是邪惡的,所以如果嘗試使用解析您的輸入可能的話最安全的方法。)
「raw_input」...有什麼區別?「 - 「不同的是,沒有`raw_input`。」 ...相當大的差異,我會說! – 2015-02-10 21:03:05
在Python ,raw_input()
返回一個字符串,並input()
嘗試運行輸入作爲Python表達式。
由於得到一個字符串幾乎總是你想要的,所以Python 3用input()
這樣做。正如斯文所說,如果你想要老行爲,eval(input())
的作品。
的Python 2:
raw_input()
將用戶輸入的到底是什麼,並將其回爲一個字符串。input()
先取raw_input()
,然後再對其執行eval()
。
的主要區別在於input()
預計語法正確的蟒蛇聲明,其中raw_input()
沒有。
的Python 3:
raw_input()
更名爲input()
所以現在input()
返回精確的字符串。- 舊的
input()
已被刪除。
如果你想使用舊input()
,這意味着你需要評估用戶輸入作爲一個python語句,你必須使用eval(input())
做手工。
我想補充一點細節給大家提供的解釋爲python 2用戶。 raw_input()
,到目前爲止,您知道該函數將用戶輸入的數據作爲字符串進行評估。這意味着python不會嘗試再次理解輸入的數據。所有它會考慮的是輸入的數據將是字符串,無論它是否是實際的字符串或int或任何東西。
另一方面input()
試圖瞭解用戶輸入的數據。所以像helloworld
這樣的輸入甚至會將錯誤顯示爲'helloworld is undefined
'。
總之,對於python 2,要輸入一個字符串,您需要輸入它,如'helloworld
',這是python使用字符串時常用的結構。
在Python 3中,raw_input()
不存在,這已經被Sven提及。
在Python 2中,input()
函數會評估您的輸入。
實施例:
name = input("what is your name ?")
what is your name ?harsha
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
name = input("what is your name ?")
File "<string>", line 1, in <module>
NameError: name 'harsha' is not defined
在上面的例如,Python 2.x的正試圖評估戒作爲變量而不是字符串。爲了避免這種情況,我們可以使用雙引號來我們的輸入,如「戒」:
>>> name = input("what is your name?")
what is your name?"harsha"
>>> print(name)
harsha
的raw_input()
的raw_input的()`函數不評估,它只會讀不管你輸入。
實施例:
name = raw_input("what is your name ?")
what is your name ?harsha
>>> name
'harsha'
實施例:
name = eval(raw_input("what is your name?"))
what is your name?harsha
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
name = eval(raw_input("what is your name?"))
File "<string>", line 1, in <module>
NameError: name 'harsha' is not defined
在以上示例中,我只是想評估與eval
功能的用戶輸入。
- 1. C中「* x = 1」和「x = 1」之間的區別是什麼?
- 2. python3有什麼區別? <x>和python3。 <x> m
- 3. Rails 1.X和2.X之間的主要區別是什麼
- 4. * x = i和x =&i之間的區別是什麼
- 5. Angular 1.X和2.X之間的區別是什麼
- 6. python2和python3的區別 - int()和input()
- 7. $(())和expr之間的區別是什麼?
- 8. $和$ .fn之間的區別是什麼?
- 9. ++和:haskell之間的區別是什麼?
- 10. $(「」)和$ .find(「」)之間的區別是什麼?
- 11. 「\」和「\。」之間的區別是什麼?
- 12. 「$ | ++」和「$ | = 1」之間的區別是什麼
- 13. $(...)和`...`之間的區別是什麼
- 14. .equals()和==之間的區別是什麼?
- 15. [undefined]和[,]之間的區別是什麼?
- 16. 如果X是類,「const X a」和「X const a」之間的區別是什麼
- 17. x [1,1]和x.item(1,1)之間的區別是什麼?
- 18. X.509證書和WTLS證書之間的區別是什麼
- 19. kohana 3.0.x和3.1.0之間的主要區別是什麼?
- 20. x.pow(n)和pow(x,n)之間的區別是什麼?
- 21. Angular2中的裝飾器@Input()和@Attribute()之間的主要區別是什麼?
- 22. $('x> y'),$('y','x')和$('x y')之間有什麼區別?
- 23. pip3和python3之間的區別-m pip
- 24. <input type =「button」/>和<button>之間有什麼區別?
- 25. 成本函數,sum(x)和ones(1,length(x))* x之間的區別是什麼?
- 26. 什麼之間的區別〜^和Git中
- 27. Talend中thashoutput/input和tbufferoutput/input之間的區別
- 28. 過濾器(| x |)和過濾器(|&x |)之間有什麼區別?
- 29. 在python 2.7「x!= y」和「not x == y」之間有什麼區別?
- 30. C++:int * x [5]和int(* x)[5]之間有什麼區別?
如何製作兼容Python 2和Python 3的輸入程序? – 2016-05-04 12:08:31
爲此,您嘗試將`input`設置爲`raw_input`並忽略名稱錯誤。 – 2016-05-04 14:38:52
查看'six'庫以獲取Python 2和3的兼容性。 – 2017-11-02 21:37:05