用户输入和while循环
學(xué)習(xí)如何接受用戶輸入,例如:假設(shè)有人要判斷自己是否到了投票的年齡,要編寫回答這個(gè)問(wèn)題的程序,就需要知道用戶的年齡,這樣才能給出答案。因此,這種程序需要讓用戶輸入年齡,再將其與投票年齡進(jìn)行比較,以判斷用戶是否到了投票的年齡,再給出答案。為此,我們需要使用函數(shù)input()。
1、函數(shù)input()的工作原理
函數(shù)input()讓程序暫停運(yùn)行,等待用戶輸入一些文本。獲取用戶輸入后,Python將其存儲(chǔ)在一個(gè)變量中,以方便我們使用。
? 例如,下面的程序讓用戶輸入一些文本,再將這些文本呈現(xiàn)給用戶:
函數(shù)input()接受一個(gè)參數(shù):即要向用戶顯示的提示或說(shuō)明,讓用戶知道該如何做。在這個(gè)示例中,Python運(yùn)行第一行代碼時(shí),用戶將看到提示 Tell me something ,and I will repeat it back to you:。程序等待用戶輸入,并在用戶按回車鍵后繼續(xù)運(yùn)行。輸入存儲(chǔ)在變量message中,接下來(lái)的print(message)將輸入呈現(xiàn)給用戶:
- 編寫清晰的程序
? 每當(dāng)我們使用函數(shù)input()時(shí),都應(yīng)指定清晰而易于明白的提示,準(zhǔn)確地指出我們希望用戶提供什么樣的信息,指出用戶輸入任何信息的提示都行,如下所示:
? 有時(shí)候,提示可能超過(guò)一行,例如,我們可能需要指出獲取特定輸入的原因。在這種情況下,可能提示存儲(chǔ)在一個(gè)變量中,再將該變量傳遞給函數(shù)input()。這樣,即便提示超過(guò)一行,input()語(yǔ)句也非常清晰。
此例創(chuàng)建了一種多行字符串的方式。第一行將消息的前半部分存儲(chǔ)在變量prompt中,在第二行中,運(yùn)算符+=在存儲(chǔ)在prompt中的字符串末尾附加一個(gè)字符串。
- ?使用int()來(lái)獲取數(shù)值輸入
? 使用函數(shù)input()時(shí),Python將用戶輸入解讀為字符串。
用戶輸入的是數(shù)字21,但我們請(qǐng)求Python提供變量age的值時(shí),它返回的是‘21’,即用戶輸入的數(shù)值的字符串表示。如果我們只想打印輸入,這沒(méi)有問(wèn)題,但如果我們?cè)噲D將輸入作為數(shù)字使用,就會(huì)引發(fā)錯(cuò)誤:
因?yàn)樗鼰o(wú)法將字符串和整數(shù)進(jìn)行比較,即不能將存儲(chǔ)在age中的字符串‘21’與數(shù)值18進(jìn)行比較。為了解決這個(gè)問(wèn)題,可以使用函數(shù)int(),他讓Python將輸入視為數(shù)值。函數(shù)int()將數(shù)字的字符串表示轉(zhuǎn)換為數(shù)值表示,如下:
- 求模運(yùn)算符
? 處理數(shù)值信息時(shí),求模運(yùn)算符(%)是一個(gè)很有用的工具,它將兩個(gè)數(shù)相除并返回余數(shù):
求模運(yùn)算符不會(huì)指出一個(gè)數(shù)是另一個(gè)數(shù)的多少倍,而只能指出余數(shù)是多少。
? 如果一個(gè)數(shù)可被另一個(gè)數(shù)整除,余數(shù)就為0,因此求模運(yùn)算符將返回0。我們可以利用這一點(diǎn)來(lái)判斷一個(gè)數(shù)是奇數(shù)還是偶數(shù):
2、while循環(huán)簡(jiǎn)介
? for循環(huán)用于針對(duì)集合中的每個(gè)元素的一個(gè)代碼塊,而while循環(huán)不斷地運(yùn)行,直到指定的條件不滿足為止。
- 使用while循環(huán)
我們可以使用while循環(huán)來(lái)數(shù)數(shù),例如,下面的while循環(huán)從1數(shù)到5:
在第一行,我們將current_number設(shè)置為1,從而指定從1開(kāi)始數(shù)。接下來(lái)的while循環(huán)被設(shè)置為:只要current_number小于或等于5,就接著運(yùn)行這個(gè)循環(huán)。循環(huán)中的代碼打印current_number的值,再使用代碼current_number+=1(代碼current_number=current_number+1)將其值加1。
只要滿足條件current_number<=5,Python就接著運(yùn)行這個(gè)循環(huán)。由于1小于5,因此Python打印1,并將current_number加1,使其為2;由于2小于5,因此Python打印2,并將current_number加1,使其為3,以此類推。一旦current_number大于5,循環(huán)就將停止。整個(gè)程序也將到此結(jié)束。
? 我們每天使用的程序很可能就包含while循環(huán)。例如,游戲使用while循環(huán),確保在玩家想玩時(shí)不斷運(yùn)行,并在玩家想退出時(shí)停止運(yùn)行。
- ?讓用戶選擇何時(shí)退出
? 可使用while循環(huán)讓程序在用戶愿意時(shí)不斷地運(yùn)行,如下面的程序所示。我們?cè)谄渲卸x了一個(gè)退出值,只要用戶輸入的不是這個(gè)值,程序就接著運(yùn)行。
首先,我們定義了一條提示信息,告訴用戶他有兩個(gè)選擇:要么輸入一條消息,要么輸入退出值(這里為quit)。接下來(lái),我們創(chuàng)建了一個(gè)變量message,用于存儲(chǔ)用戶輸入的值。我們將變量message的初始值設(shè)置為空字符串‘’,讓Python首次執(zhí)行while代碼行時(shí)有可供檢查的東西。Python首次執(zhí)行while語(yǔ)句時(shí),需要將message的值與‘quit’進(jìn)行比較,但此時(shí)用戶還沒(méi)有輸入。如果沒(méi)有可供比較的東西,Python將無(wú)法繼續(xù)運(yùn)行程序。為解決這個(gè)問(wèn)題,我們必須給變量message指定一個(gè)初始值。雖然這個(gè)初始值只是一個(gè)空字符串,但符合要求,讓Python能夠執(zhí)行while循環(huán)所需的比較。只要message的值不是‘quit’,這個(gè)循環(huán)就會(huì)不斷運(yùn)行。
首次遇到這個(gè)循環(huán)時(shí),message是一個(gè)空字符串,因此Python進(jìn)入這個(gè)循環(huán),執(zhí)行到代碼行message=input(prompt)時(shí),Python顯示提示消息,并等待用戶的輸入。不管用戶輸入是什么
?
轉(zhuǎn)載于:https://www.cnblogs.com/haohanTL/p/10939267.html
總結(jié)
以上是生活随笔為你收集整理的用户输入和while循环的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Java的新项目学成在线笔记-day12
- 下一篇: 面向切面编程-日志切面应用