raw input和input的區別

2021-06-26 01:21:32 字數 1932 閱讀 2302

說明:本文** 

這兩個均是 python 的內建函式,通過讀取控制台的輸入與使用者實現互動。但他們的功能不盡相同。舉兩個小例子。

1

>>>

raw_input_a

=raw_input(

"raw_input: ")

2raw_input: abc

3>>>

input_a

=input(

"input: ")

4input: abc56

traceback (most recent call last):

7file ""

, line 1,

in<

module

>

8input_a

=input(

"input: ")

9file ""

, line 1,

in<

module

>

10nameerror: name

'abc'is

notdefined

11>>>

input_a

=input(

"input: ")

12input:

"abc"13

>>>

1

>>>

raw_input_b

=raw_input(

"raw_input: ")

2raw_input:

1233

>>>

type(raw_input_b)

4<

type

'str

'>

5>>>

input_b

=input(

"input: ")

6input:

1237

>>>

type(input_b)

8<

type

'int

'>

9>>>

例子 1 可以看到:

這兩個函式均能接收 字串 ,但 raw_input() 直接讀取控制台的輸入(任何型別的輸入它都可以接收)。而對於 input() ,它希望能夠讀取乙個合法的 python 表示式,即你輸入字串的時候必須使用引號將它括起來,否則它會引發乙個 syntaxerror 。

例子 2 可以看到:raw_input() 將所有輸入作為字串看待,返回字串型別。而 input() 在對待純數字輸入時具有自己的特性,它返回所輸入的數字的型別( int, float );同時在例子 1 知道,input() 可接受合法的 python 表示式,舉例:input( 1 + 3 ) 會返回 int 型的 4 。

檢視 built-in functions ,得知:

input([prompt])

equivalent to eval(raw_input(prompt)) 

input() 本質上還是使用 raw_input() 來實現的,只是呼叫完 raw_input() 之後再呼叫 eval() 函式,所以,你甚至可以將表示式作為 input() 的引數,並且它會計算表示式的值並返回它。

不過在 built-in functions 裡有一句話是這樣寫的:consider using the raw_input() function for general input from users.

除非對 input() 有特別需要,否則一般情況下我們都是推薦使用 raw_input() 來與使用者互動。

-------

今天參加某公司的筆試的時候,俺使用了 raw_input() 接受整數(返回的是字串)並再用一行語句返回整型資料。杯具,當時不大確定能用 input() 這個函式!特此記錄。

raw input和input的區別

raw input和input的區別 分類 python學習總結 這兩個均是 python 的內建函式,通過讀取控制台的輸入與使用者實現互動。但他們的功能不盡相同。下面對它們逐一介紹 1 raw input函式 語法 raw input prompt 如果prompt不存在,也就是raw input...

input和raw input的區別

input會假設使用者輸入的是合法的python表示式 raw input會把所有的輸入當作原始資料,然後將其放入字串中。在最新的版本之中,input可以直接使用,替代了raw input.在2.7的版本中 input enter you age enter you age kebiinput假設你...

raw input與input的區別

raw input python2版本 input python3版本 就是raw input 隨便輸都是字串,而input 必須按照python的規則來 name raw input 輸入姓名 age raw input 輸入年齡 我們輸入漢字的姓名和數字的年齡 輸入姓名 許嵩 輸入年齡 31 許...