Python手把手教程之使用者輸入input函式

2021-10-12 12:51:44 字數 4504 閱讀 3938

函式input()讓程式暫停執行,等待使用者輸入一些文字。獲取使用者輸入後,python將其儲存在乙個變數中,以方便你使用。 例如,下面的程式讓使用者輸入一些文字,再將這些文字呈現給使用者:

message = input("tell me something, and i will repeat it back to you: ")

print(message)

複製**

函式input()接受乙個引數:即要向使用者顯示的提示或說明,讓使用者知道該如何做。在這個示例中,使用者將看到提示tell me something, and i will repeat it back to you:。程式等待使用者輸入,並在使用者按回車鍵後繼續執行。 輸入儲存在變數message中,接下來的print(message)將輸入呈現給使用者:

tell me something, and i will repeat it back to you: this is fulade!

this is fulade!

複製**

每當你使用函式input()時,都應指定清晰而易於明白的提示,準確地指出你希望使用者提供什麼樣的資訊——指出使用者該輸入任何資訊的提示都行,如下所示:

name = input("please enter your name: ")

print("hello, " + name + "!")

複製**

通過在提示末尾(這裡是冒號後面)包含乙個空格,可將提示與使用者輸入分開,讓使用者清楚地知道其輸入始於何處,如下所示:

please enter your name: fulade

hello, fulade!

複製**

int()函式

使用函式input()時,python將使用者輸入解讀為字串。請看下面讓使用者輸入其年齡的直譯器會話

>>> age = input("how old are you? ")

how old are you? 21

>>> age

'21'

複製**

使用者輸入的是數字21,但我們請求python提供變數age的值時,它返回的是'21'——使用者輸入 的數值的字串表示。我們怎麼知道python將輸入解讀成了字串呢?因為這個數字用引號括起 了。

如果我們只想列印輸入,這一點問題都沒有;但如果你試圖將輸入作為數字使用,就會引發錯誤:

>>> age = input("how old are you? ")

how old are you? 21

>>> age >= 18

traceback (most recent call last):

file "", line 1, in typeerror: unorderable types: str() >= int()

複製**

你試圖將輸入用於數值比較時,python會引發錯誤,因為它無法將字串和整數進 行比較:不能將儲存在age中的字串'21'與數值18進行比較。

為解決這個問題,可使用函式int(),它讓python將輸入視為數值。函式int()將數字的字元 串表示轉換為數值表示,如下所示:

>>> age = input("how old are you? ")

how old are you? 21

>>> age = int(age)

>>> age >= 18

true

複製**

在這個示例中,我們在提示時輸入21後,python將這個數字解讀為字串,但隨後int()將這個字串轉換成了數值表示。

這樣python就能執行條件測試了:將變數age(它現在包含數值21)同18進行比較,看它是否大於或等於18。測試結果為true。 如何在實際程式中使用函式int()呢?請看下面的程式,它判斷乙個人是否滿足坐過山車的身高要求:

height = input("how tall are you, in inches? ")

height = int(height)

if height >= 36:

print("\nyou're tall enough to ride!")

else:

print("\nyou'll be able to ride when you're a little older.")

複製**

在這個程式中,為何可以將height同36進行比較呢?因為在比較前,height = int(height) 將輸入轉換成了數值表示。如果輸入的數字大於或等於36,我們就告訴使用者他滿足身高條件:

how tall are you, in inches? 71

you're tall enough to ride!

複製**

將數值輸入用於計算和比較前,務必將其轉換為數值表示。

使用while推出

可使用while迴圈讓程式在使用者願意時不斷地執行,我們在其中定義了乙個退出值,只要使用者輸入的不是這個值,程式就可以接著執行:

prompt = "\ntell me something, and i will repeat it back to you:"

prompt += "\nenter 'quit' to end the program. "

message = ""

while message != 'quit':

message = input(prompt)

print(message)

複製**

我們定義了一條提示訊息,告訴使用者他有兩個選擇:要麼輸入一條訊息,要麼輸 入退出值(這裡為'quit')。

接下來,我們建立了乙個變數——message,用於儲存使用者 輸入的值。我們將變數message的初始值設定為空字串"",讓python首次執行while**行時有可供檢查的東西。

python首次執行while語句時,需要將message的值與'quit'進行比較,但此時使用者還沒有輸入。如果沒有可供比較的東西,python將無法繼續執行程式。

為解決這個問題,我們必須給變數message指定乙個初始值。雖然這個初始值只是乙個空字串,但符合要求,讓python能夠執行while迴圈所需的比較。只要message的值不是'quit',這個循就會不斷執行。

首次遇到這個迴圈時,message是乙個空字串,因此python進入這個迴圈。執行到**行message = input(prompt)時,python顯示提示訊息,並等待使用者輸入。

不管使用者輸入是什麼,都 將儲存到變數message中並列印出來;接下來,python重新檢查while語句中的條件。只要使用者輸入的不是單詞quit,python就會再次顯示提示訊息並等待使用者輸入。

等到使用者終於輸入quit後,python停止執行while迴圈,而整個程式也到此結束:

tell me something, and i will repeat it back to you:

enter 'quit' to end the program. hello everyone!

hello everyone!

tell me something, and i will repeat it back to you:

enter 'quit' to end the program. hello again.

hello again.

tell me something, and i will repeat it back to you:

enter 'quit' to end the program. quit

quit

複製**

這個程式很好,唯一美中不足的是,它將單詞quit也作為一條訊息列印了出來。為修復這種問題,只需使用乙個簡單的if判斷:

prompt = "\ntell me something, and i will repeat it back to you:"

prompt += "\nenter 'quit' to end the program. "

message = ""

while message != 'quit':

message = input(prompt)

if message != 'quit':

print(message)

複製**

現在,程式在顯示訊息前將做簡單的檢查,僅在訊息不是退出值時才列印它。

刷機入門 手把手教程

在了解了各個版本以後就可以開始刷機了。首先要做的第一步就是。深呼吸三次。把這句話默念一遍 我知道刷機是有風險滴,但是為了更好的使用手機,我願意刷機。堅持不懈,不怕變磚。只要緊跟教程,一定能成功。yes,we can.5.11說明 不好意思,由於此帖沒有隨潮流實時更新所以有很多漏洞的地方 在這裡我要做...

教程 手把手教你使用Git

前言 公司從17年漸漸從svn 轉向git 版本控制系統,以下是平時使用過程中的總結。一,git 是什麼?git 是目前世界上最先進的的分布式版本控制系統。二,svn 和git 的最主要的區別 svn是集中式版本控制系統,版本庫是集中放在 伺服器的,而幹活的時候,用的都是自己的電腦,所以首先要從 伺...

刷機入門 手把手教程

在了解了各個版本以後就可以開始刷機了。首先要做的第一步就是。深呼吸三次。把這句話默念一遍 我知道刷機是有風險滴,但是為了更好的使用手機,我願意刷機。堅持不懈,不怕變磚。只要緊跟教程,一定能成功。yes,we can.5.11說明 不好意思,由於此帖沒有隨潮流實時更新所以有很多漏洞的地方 在這裡我要做...