Python中用戶輸入與while循環(huán)詳情
前言:
本文的主要內(nèi)容是介紹Python中用戶輸入與while
循環(huán),包括如何接收用戶輸入并進行處理,在程序滿足一定的條件時讓程序一直運行,通過獲取用戶輸入并學會控制程序在用戶想要結束時退出循環(huán),即可編寫出交互式程序,文中附有代碼以及相應的運行結果輔助理解。
一、用戶輸入
input()
——函數(shù)input()讓程序暫時停止運行并等待用戶輸入內(nèi)容,在獲取到用戶的輸入后,Python會將輸入存儲在一個變量中,以便后續(xù)使用。
1.輸入字符串
先來看一個簡單的用戶輸入例子。
msg = input('Please input a string: ') #引號中的內(nèi)容應當向說明需要用戶提供什么樣的信息 #如果引號中的提示內(nèi)容有多行,可以加入'\n'來換行 print('The message you just input is "' + msg + '".')
運行結果如下圖所示:
程序運行后出現(xiàn)“Please input a string:”提示用戶輸入一個字符串,用戶輸入完字符串后按回車鍵程序繼續(xù)運行,用戶輸入的字符串存儲在變量msg中,通過打印msg即可看到用戶輸入的內(nèi)容。
2.使用函數(shù)int()獲取數(shù)值輸入
有時候我們需要用戶輸入數(shù)值,但是使用函數(shù)input()時,Python將用戶輸入全部解讀為字符串,即使你輸入的是數(shù)值,這時候就需要用到函數(shù)int()了。
int() ——函數(shù)int()的功能是將輸入的數(shù)字字符串轉(zhuǎn)換為數(shù)值。
通過函數(shù)int()處理過的用戶輸入就可以當做數(shù)值來使用了。
下面是使用函數(shù)int()獲取數(shù)值輸入的例子。
age = input('Please input your age: ') age_integer = int(age) ?#將數(shù)字字符串轉(zhuǎn)換為數(shù)值 if age_integer >= 18: ? ? print('Your age is over 18.') else: ? ? print('Your age is under 18.')
運行結果如下圖所示:
3.求模運算符的應用
求模運算符 % 在編程中經(jīng)常使用,它用來返回兩個數(shù)相除的余數(shù),如果余數(shù)為0,即可以整除,通過將用戶輸入的數(shù)與2求模即可判斷用戶輸入的數(shù)是奇數(shù)還是偶數(shù)。
下面是使用求模運算判斷輸入為奇數(shù)還是偶數(shù)的例子
num = input('Please input a number: ') number = int(num) print('The number you just input is ' + num + '.') if number%2 == 0: #可以整除2,是偶數(shù) ? ? print('It is an even number.') else: ?#不可以整除2,是奇數(shù) ? ? print('It is an odd number.')
運行結果如下圖所示:
二、while循環(huán)
之前已經(jīng)介紹過了for
循環(huán),其一般用于集合中的每個元素,而while循環(huán)不斷地運行,直到指定的條件不滿足為止。
1.簡單的while循環(huán)
下面是一個簡單的while循環(huán)的例子:
num = 1 while num <= 5: ? ? print(num) ? ? num += 1 ? #不能使用num ++,一定要有這個條件,否則會進入無限循環(huán)
運行結果如下圖所示:
由上面的輸出結果可知,在條件滿足時,while循環(huán)一直在執(zhí)行,當條件不滿足時,就會退出while循環(huán)。
2.通過用戶輸入退出while循環(huán)
有時候我們需要讓用戶決定何時退出循環(huán),可以設置一個字母或者字符串作為while循環(huán)結束的標志,當用戶輸入這個字母或者字符串時,就退出while循環(huán)。
下面是通過用戶輸入退出while循環(huán)的例子:
msg = '' while msg != 'q': ?#用戶輸入q時就退出循環(huán) ? ? msg = input("Enter 'q' to end the program.\nPlease input a string: ") ? ? if msg != 'q': #用戶輸入非q時打印用戶輸入信息 ? ? ? ? print('The message you just input is "' + msg + '".')
運行結果如下圖所示:
由輸出結果可知,用戶可以控制while循環(huán)何時退出并結束程序。
3.使用標志
在程序運行的過程中,有很多的因素可以導致程序停止運行,導致程序結束的事件有很多時,如果在一條while語句中檢查所有這些條件,將既復雜又困難。
在很多條件都滿足時才繼續(xù)運行的程序中,可定義一個變量用于判斷整個程序是否處于活動狀態(tài),這個變量就被稱為標志,可讓程序在標志為True時繼續(xù)運行,并在任何事件導致標志的值為False時讓程序停止運行,這樣,在while循環(huán)語句中就只需檢查當前的標志是否為True這一個條件,從而讓程序變得更為簡單易讀。
面是使用標志控制while循環(huán)的例子:
sign = True while sign: ?#標志為True時執(zhí)行循環(huán) ? ? msg = input("Enter 'q' to end the program.\nPlease input a string: ") ? ?? ? ? if msg != 'q': #用戶輸入非q時打印用戶輸入信息 ? ? ? ? print('The message you just input is "' + msg + '".') ? ? else: ? #用戶輸入q時修改標志使其退出循環(huán) ? ? ? ? sign = False ?#將標志置為False結束while循環(huán)
運行結果如下圖所示:
這段代碼的功能與通過用戶輸入退出while循環(huán)中的代碼功能相同,雖然這個例子還看不出該段代碼的優(yōu)越性,但是當限制while循環(huán)的條件多起來之后,這段代碼相較于上一段代碼的優(yōu)勢就體現(xiàn)出來了。
4.使用break退出循環(huán)
要立即退出while
循環(huán),不再運行循環(huán)中余下的代碼,也不管條件測試的結果如何,可使用break
語句。break語句用于控制程序流程,可使用它來控制哪些代碼行將執(zhí)行,哪些代碼行不執(zhí)行,從而讓程序按自己的要求執(zhí)行相應的代碼。
下面是使用break退出循環(huán)的例子:
while True: ?#執(zhí)行循環(huán) ? ? msg = input("Enter 'q' to end the program.\nPlease input a string: ") ? ?? ? ? if msg != 'q': #用戶輸入非q時打印用戶輸入信息 ? ? ? ? print('The message you just input is "' + msg + '".') ? ? else: ? ? #用戶輸入q時退出循環(huán) ? ? ? ? break #退出循環(huán)
運行結果如下圖所示:
在本例中,while
循環(huán)一直執(zhí)行,除非遇到break語句才能退出循環(huán)。
5.在循環(huán)中使用continue
continue
語句的作用是忽略本次循環(huán)中continue
后面的代碼并返回到循環(huán)開頭,如果條件滿足則繼續(xù)執(zhí)行循環(huán),否則結束循環(huán)。
下面是在循環(huán)中使用continue的例子:
num = 1 print('1-10之內(nèi)的偶數(shù):') while num <= 10: ? ? num += 1 ? ?? ? ? if num % 2 != 0: ? ? ? ? continue ? #奇數(shù)就跳過打印,偶數(shù)就執(zhí)行打印 ? ? print(num)
運行結果如下圖所示:
三、使用while循環(huán)處理列表和字典
要記錄大量的信息,需要在while循環(huán)中使用列表和字典。for循環(huán)是一種遍歷列表的有效方式,但在for循環(huán)中不應修改列表,否則將導致Python難以跟蹤其中的元素,要在遍歷列表的同時對其進行修改,可使用while循環(huán)。
1.在列表之間移動元素
有時候我們需要將列表中的元素操作一個,然后加入到另一個列表中。
下面是在列表之間移動元素的例子:
list_1 = ['abc', 'def', 'ghi'] list_2 = [] while list_1: #列表非空時一直循環(huán) ? ? element = list_1.pop() ? ? print(element + ' has popped.') ? ?? ? ? list_2.append(element) ? ?? print('與原列表逆序輸出:') for element in list_2: ? ? print(element) ? ?? print('與原列表順序輸出:') length = 1 while length <= len(list_2): ? ? print(list_2[-length]) ? ? length += 1
運行結果如下圖所示:
2.刪除列表中所有的特定元素
使用函數(shù)remove()
即可刪除列表中的特定值,如果列表中的特定值有多個相同的話,就要用到while循環(huán)來刪除了。
下面是刪除列表中所有的特定元素的例子:
fruits = ['grape', 'apple', 'watermelon', 'apple', 'orange', 'apple'] print('Before remove:\nfruits = '+str(fruits)) while 'apple' in fruits: ? ? fruits.remove('apple') ?#刪除列表中所有的'apple'元素 print('After remove:\nfruits = '+str(fruits))
運行結果如下圖所示:
3.使用用戶輸入來填充字典
可以使用while循環(huán)提示用戶輸入任意數(shù)量的信息,根據(jù)這些信息可以創(chuàng)建相應的用戶字典。
下面是使用用戶輸入來填充字典的例子:
user_info = {} ?#創(chuàng)建一個空字典 sign = True ?#標志位置為True while sign: ? ? name = input("Please input your name: ") ? ? favorite_color = input("Please input your favorite color: ") ? ?? ? ? user_info[name] = favorite_color ?#在字典中添加鍵值對 ? ?? ? ? y_or_n = input("Enter 'n' to end, and other keys to continue.") #詢問用戶是否繼續(xù) ? ? if y_or_n == 'n': ? ? ? ? sign = False ?#標志位置為False并退出循環(huán) ? ? ? ?? print('user_info = '+str(user_info)) ?#打印字典 print("Information summary:") ?#信息匯總輸出 for name, favorite_color in user_info.items(): ?#遍歷字典 ? ? print(name + "'s favorite color is " ?+ favorite_color + '.')
運行結果如下圖所示:
總結:
以上就是Python中用戶輸入與while循環(huán)的所有內(nèi)容了,用戶輸入在編程中是非常重要的,因為程序交互性的前提就是獲取用戶輸入并給予響應,此外,while循環(huán)中標志、break以及continue的使用場景也應當熟悉。
到此這篇關于Python中用戶輸入與while循環(huán)詳情的文章就介紹到這了,更多相關Python 輸入與while循環(huán)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Django-xadmin后臺導入json數(shù)據(jù)及后臺顯示信息圖標和主題更改方式
這篇文章主要介紹了Django-xadmin后臺導入json數(shù)據(jù)及后臺顯示信息圖標和主題更改方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03Python對Excel不同的行分別復制不同的次數(shù)
這篇文章主要介紹了如何利用Python實現(xiàn)讀取Excel表格文件數(shù)據(jù),并將其中符合我們特定要求的那一行加以復制指定的次數(shù),感興趣的小伙伴可以學習一下2023-07-07Python+OpenCV實現(xiàn)相機標定的方法詳解
opencv中內(nèi)置了張正友的棋盤格標定法,通過一些姿態(tài)各異的棋盤格圖像,可以標定相機的內(nèi)外參數(shù),本文為大家介紹OpenCV進行相機標定的具體方法,希望對大家有所幫助2023-05-05