十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
這篇文章主要介紹了Python中input()和raw_input()有哪些區(qū)別,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
兩者均是python的內(nèi)置函數(shù),通過讀取控制臺(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)希望通過raw_input獲取一個(gè)整型或者浮點(diǎn)數(shù)時(shí),必須在生成后對其使用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)將其括起來,否則他將會(huì)引發(fā)一個(gè)SyntaxError的問題。
>>> help(input) Help on built-in function input in module __builtin__: input(...) input([prompt]) -> value Equivalent to eval(raw_input(prompt)).
從上述說明中,可以發(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á)式來求值,并返回計(jì)算結(jié)果。
因此就不難發(fā)現(xiàn)為什么input()能夠檢測表達(dá)式了。
eval()函數(shù)十分強(qiáng)大,它和int(將一個(gè)字符串轉(zhuǎn)化成整數(shù))還是有很大區(qū)別,這里暫不詳述。
綜上所述:除非對input有特別需要,否則一般情況下我們都是推薦使用raw_input來與用戶交互。
補(bǔ)充:在Python 3.x之后已經(jīng)用input()替代raw_input了,用法功能卻跟Python2.x中的raw_input()一樣。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享Python中input()和raw_input()有哪些區(qū)別內(nèi)容對大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來學(xué)習(xí)!