python:raw_input和input區別

raw_input() 與 input()都是python的內建函數,實現控制檯交互式輸入,但二者有區別

>>> raw_input_A = raw_input("raw_input: ")
raw_input: abc
 >>> input_A = input("Input: ")
Input: abc

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    input_A = input("Input: ")
  File "<string>", line 1, in <module>
NameError: name 'abc' is not defined
 >>> input_A = input("Input: ")
Input: "abc"
 >>>

例子 1 可以看到:這兩個函數均能接收 字符串 ,但 raw_input() 直接讀取控制檯的輸入(int,str等),返回值都是字符串str類型。而對於 input() ,它希望能夠讀取一個變量名,如果輸入一個數字的話,他返回int 或float,直接輸入字符串的話,它會引發一個 SyntaxError 。

>>> raw_input_B = raw_input("raw_input: ")
raw_input: 123
 >>> type(raw_input_B)
 <type 'str'>
>>> input_B = input("input: ")
input: 123
>>> type(input_B)
<type 'int'>
>>>

例子 2 可以看到:raw_input() 將所有輸入作爲字符串看待,返回字符串類型。而 input() 在對待純數字輸入時具有自己的特性,它返回所輸入的數字的類型( int, float );同時在例子 1 知道,input() 可接受合法的 python 表達式,舉例:input( 1 + 3 ) 會返回 int 型的 4 。
綜上所述,爲了保險起見,我們最好一直使用raw_input,除非需要輸入變量名的時候

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章