大多數程式都旨在解決終端使用者的問題,為此就需要獲取使用者的資訊。假如你要判斷小孩是否需要購買全價票,就需要獲取小孩的身高,這樣才能得出正確的結論。因此這種程式就需要讓使用者輸入其身高,再與規定的身高值進行比較,最後得出結果。
python使用函式input()接受使用者輸入。從此刻開始,我們一起學習怎樣使用函式input()。
1.函式input()的工作原理
函式input()讓程式暫停,等待使用者輸入一些文字。獲取使用者輸入以後,python將其儲存在乙個變數中,以方便使用。
例如,下面的程式讓使用者輸入一些文字,再將這些文字呈現給使用者:
parrot.py
message = input("tell me something, and i will repeat it back to you: ")
print(message)
函式input()首先向使用者展示一系列提示或說明(雙引號內的內容),告訴使用者應該如何去做。python在執行第一行**時,使用者會看到提示tell me something, and i will repeat it back to you:。等使用者輸入並按回車,輸入的內容將被儲存在變數message中。接著列印出使用者的輸入:
1.1 編寫清晰的程式
當你使用函式input()時,應當通過提示語告訴使用者你希望獲得什麼資訊,所以提示語應當清晰明確。比如你要獲取使用者的名字:
greeter.py
name = input("please enter you name: ")
print("hello, " + name + "!")
輸出結果為:
please enter you name: eric
hello, eric!
有時候你的提示可能超過一行,比如你在獲取使用者姓名時告訴他們你這樣做的原因是什麼。這種情況下,你可先將提示存在乙個變數中,再將變數傳遞給函式input()。這樣即便提示有好幾行,仍舊十分清晰。
在這個例項中,第一行將訊息的前半部分儲存在變數prompt中;第二行,運算子 "+=" 在prompt的末尾附加乙個字串。
最終的提示橫跨兩行:
if you tell us who you are, we can personalize the message you see.
what's your name?eric
hello, eric!
1.2 使用int()來獲取數值輸入
使用函式input()時,實際上會將所有的輸入預設為是字串,即使你輸入乙個數字依舊會被python當作字串處理。比如下面這種情況:
上面這種錯誤發生原因在於,input()函式返回的'21'是乙個字串,而程式錯誤的將字串與數值進行比較,因此會使得python不清楚程式的含義是什麼。
這時我們只需使用函式int(),它讓python將輸入視為數值,也就是將數字的字串轉換為數值表示,如下所示:
>>>age = input("how old are you?")
how old are you?21
>>>age = int(age)
>>>age >= 18
true
所以今後編寫程式時,一定要注意某一數字的含義是字串還是數值,如果需要將數字字串轉換為數值,只要使用函式int()就可以。
1.3 求模運算子
處理數值資訊時,求模運算子(%)是乙個很有用的工具,它將兩個數相除並返回餘數:
>>>4%3
>>>5%3
>>>6%3
>>>7%3
因此你也可以使用求模運算子判斷輸入的數值是奇數還是偶數:
偶數可以被2整除,餘數為0,否則即為奇數。最後的輸出結果為:
增強程式可用性 關於程式的使用者錯誤輸入的處理
num int input 請輸入乙個三位數 a num 100 百位 b num 10 10 十位 c num 10 個位 if num pow a,3 pow b,3 pow c,3 print d是水仙花數 num else print d不是水仙花數 num 下面給出兩組輸出樣例 請輸入乙個...
Java中編寫互動程式時, 如何處理使用者輸入錯誤
在編寫互動程式時,有時會需要使用者輸入資訊,如果使用者輸入資料的型別與程式要求輸入的型別不匹配,該如何處理?scanner物件提供了hasnextint hasnextdouble等方法可以告訴你下乙個要讀取的資料是否為int或者double型別。處理使用者資料錯誤 while 使用者輸入的資料型別...
當使用者輸入的內容不是程式設計師期待的內容怎麼辦?
針對這個問題,其實很好處理,但是多多少少也需要使用者的配合,as we all know,任何程式都不可能是絕對完美的,廢話不多說直接上 include stdio.h intmain 你在寫 的時候讓使用者輸入是不是總是這樣子?求爺爺喊奶奶,一旦輸入的數字不合格或者根本不是數字的時候,將會面臨 災...