Python手把手教程之用戶輸入input函數

函數input()

函數 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) 將輸入呈現給用戶:ide

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將用戶輸入解讀爲字符串。請看下面讓用戶輸入其年齡的解釋器會話ui

>>> age = input("How old are you? ")
How old are you? 21
>>> age
'21' 
複製代碼

用戶輸入的是數字21,但咱們請求Python提供變量 age 的值時,它返回的是'21'——用戶輸入 的數值的字符串表示。咱們怎麼知道Python將輸入解讀成了字符串呢?由於這個數字用引號括起 了。code

若是咱們只想打印輸入,這一點問題都沒有;但若是你試圖將輸入做爲數字使用,就會引起錯誤:圖片

>>> age = input("How old are you? ")
How old are you? 21
>>> age >= 18
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
TypeError: unorderable types: str() >= int()
複製代碼

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

爲解決這個問題,可以使用函數 int() ,它讓Python將輸入視爲數值。函數 int() 將數字的字符 串表示轉換爲數值表示,以下所示:input

>>> 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) 
複製代碼

如今,程序在顯示消息前將作簡單的檢查,僅在消息不是退出值時纔打印它。

本文的文字及圖片來源於網絡,僅供學習、交流使用,不具備任何商業用途,若有問題請及時聯繫咱們以做處理

想要獲取更多Python學習資料能夠加QQ:2955637827私聊或加Q羣630390733你們一塊兒來學習討論吧!

相關文章
相關標籤/搜索