您好,登錄后才能下訂單哦!
這篇文章主要介紹了Python中input()和raw_input()有哪些區(qū)別,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
兩者均是python的內(nèi)置函數(shù),通過(guò)讀取控制臺(tái)的輸入與用戶實(shí)現(xiàn)交互。
raw_input:將所有輸入作為字符串看待,不管用戶輸入什么類型的都會(huì)轉(zhuǎn)變成字符串。
raw的含義就是: 生的;未加工的。
>>> s1=raw_input() abc >>> s1 'abc' >>> s2=raw_input() 'abc' >>> s2 "'abc'" >>> s3=raw_input() 100 >>> s3 '100' >>> s4=raw_input() 1+2 >>> s4 '1+2'
當(dāng)希望通過(guò)raw_input獲取一個(gè)整型或者浮點(diǎn)數(shù)時(shí),必須在生成后對(duì)其使用int或float進(jìn)行轉(zhuǎn)換。
>>> x1=int(raw_input()) 34 >>> x1 34 >>> x2=float(raw_input()) 1.25 >>> x2 1.25
input():當(dāng)輸入一個(gè)字符串的時(shí)候必須使用引號(hào)將其括起來(lái),否則他將會(huì)引發(fā)一個(gè)SyntaxError的問(wèn)題。
>>> help(input) Help on built-in function input in module __builtin__: input(...) input([prompt]) -> value Equivalent to eval(raw_input(prompt)).
從上述說(shuō)明中,可以發(fā)現(xiàn)其實(shí)input()的實(shí)現(xiàn)是調(diào)用raw_input()函數(shù)的,然后再進(jìn)行了一次eval()。
實(shí)現(xiàn)如下:
def input(prompt): return (eval(raw_input(prompt))) #input()相當(dāng)于eval(raw_input())
eval()在python中的實(shí)現(xiàn)如下:
eval(str[,globals[,locals]])函數(shù)將字符串str當(dāng)成有效Python表達(dá)式來(lái)求值,并返回計(jì)算結(jié)果。
因此就不難發(fā)現(xiàn)為什么input()能夠檢測(cè)表達(dá)式了。
eval()函數(shù)十分強(qiáng)大,它和int(將一個(gè)字符串轉(zhuǎn)化成整數(shù))還是有很大區(qū)別,這里暫不詳述。
綜上所述:除非對(duì)input有特別需要,否則一般情況下我們都是推薦使用raw_input來(lái)與用戶交互。
補(bǔ)充:在Python 3.x之后已經(jīng)用input()替代raw_input了,用法功能卻跟Python2.x中的raw_input()一樣。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享Python中input()和raw_input()有哪些區(qū)別內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,遇到問(wèn)題就找億速云,詳細(xì)的解決方法等著你來(lái)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。