淺談python3中input輸入的使用
今天談一下關(guān)于python中input的一些基本用法(寫給新手入門之用,故只談比較實(shí)用的部分)。
首先,我們可以看一下官方文檔給我們的解釋(在python的shell中輸入命令即可):
上面的英文說的是什么呢?大家有興趣的可以自己在網(wǎng)上翻譯一下,大致說的就是input這個函數(shù),第一個參數(shù)是提示語,它默認(rèn)是空的。在我們使用input的時候,會從標(biāo)準(zhǔn)輸入中讀取一個string,即字符串(請注意,這里很重要,下面我們會繼續(xù)說),對于用戶輸入的換行是不會讀入的,因?yàn)槲覀兌贾纈nput是以換行作為輸入結(jié)束的標(biāo)志的。
下面就以例子的形式來展示input的“內(nèi)涵”:
(1)從下圖可以看出,input從標(biāo)準(zhǔn)輸入中為我們拿到的值是一個字符串,那么也就是說,無論我們的初衷是得到一個整數(shù)、小數(shù)或者其他的值,input都會在我們的輸入的值的左右兩邊加上一個引號(“”),也就是說對于我們拿到的東西,我們使用做后期的加工的。
(2)我們來得到一個整數(shù),很簡單,只需要使用強(qiáng)制類型轉(zhuǎn)換就可以了:
(3)剛剛在(1)中說到了對于我們的輸入,無論我們的初衷是什么,都會被加上一對引號,所以你想到了什么呢?那當(dāng)然是把引號去掉了,這樣的話我們是不是就會得到原來的東西了呢?請注意,這里我會通過兩個例子展示(eval請參考另一篇文章點(diǎn)擊打開鏈接)。
上面的這個例子中,我們想得到的是一個整數(shù),yes,這個時候你用eval出去input“添加”的引號是完全正確的。其實(shí),當(dāng)我們輸入的時候,eval幫我們?nèi)コ艘柡?,就相?dāng)于執(zhí)行了a=234,顯然這是整數(shù)賦值。而如果沒有加eval,只是單純的a=input("請輸入:"),顯然,我們得到的是a="234"。
這個例子,我希望展示eval的本質(zhì)給大家看。這個錯誤說的是,“wer”這個名字沒有被定義,那么請注意,這個時候的“wer”被編譯器理解成了什么呢?對于“wer”,編譯器會在自己的系統(tǒng)庫中尋找它,看是否有“wer”的定義,如果沒有找到,那么不好意思,系統(tǒng)只能將它理解為你在使用一個未定義的變量,也就是說,“wer”被理解成了變量的名字。對于上面的234為什么不會報這樣的錯誤呢?那是因?yàn)橄到y(tǒng)在自身的庫中可以知道234是一個整數(shù),那么自然就不會報錯了。下面在給一個例子,進(jìn)一步加深理解。
看到這個例子,我想先讓大家回憶一下我們,使用過的賦值語句:a,b=34,3。對于這個語句,大家在類比到上圖中的eval的輸入,在輸入的時候,我輸入的是“34,3”,那么,在eval會去除input“強(qiáng)加”的引號的時候,是不是等價于“a,b=34,3”這個賦值語句!所以,在這里我想通過這兩個例子展現(xiàn)一下eval的本質(zhì),那就是"單純"的替我們?nèi)コ鲆?,大家可以?dāng)做eval執(zhí)行后將引號里面的內(nèi)容原原本本地寫回了代碼的原來位置,那么這一切是不是就可以看得很明白了。
請參考上面提到的eval的文章,與此處進(jìn)行結(jié)合,進(jìn)行互補(bǔ)。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python實(shí)現(xiàn)的udp協(xié)議Server和Client代碼實(shí)例
這篇文章主要介紹了python實(shí)現(xiàn)的udp協(xié)議Server和Client代碼實(shí)例,需要的朋友可以參考下2014-06-06python3中類的重點(diǎn)與難點(diǎn):類屬性和實(shí)例屬性的區(qū)別說明
這篇文章主要介紹了python3中類的重點(diǎn)與難點(diǎn):類屬性和實(shí)例屬性的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06selenium 安裝與chromedriver安裝的方法步驟
這篇文章主要介紹了selenium 安裝與chromedriver安裝的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-06-06python實(shí)現(xiàn)簡單坦克大戰(zhàn)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡單坦克大戰(zhàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-03-03基于pygame實(shí)現(xiàn)童年掌機(jī)打磚塊游戲
這篇文章主要為大家詳細(xì)介紹了基于pygame實(shí)現(xiàn)童年掌機(jī)打磚塊游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-02-02Python實(shí)現(xiàn)常見的幾種加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)
這篇文章主要介紹了Python實(shí)現(xiàn)常見的幾種加密算法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05