主頁(yè) > 知識(shí)庫(kù) > Python 用戶輸入和while循環(huán)的操作

Python 用戶輸入和while循環(huán)的操作

熱門標(biāo)簽:沈陽(yáng)外呼系統(tǒng)呼叫系統(tǒng) 江西省地圖標(biāo)注 沈陽(yáng)人工外呼系統(tǒng)價(jià)格 武漢外呼系統(tǒng)平臺(tái) 沈陽(yáng)防封電銷卡品牌 富錦商家地圖標(biāo)注 池州外呼調(diào)研線路 外呼系統(tǒng)哪些好辦 如何申請(qǐng)400電話費(fèi)用

函數(shù)input()的工作原理

函數(shù)input()讓程序暫停運(yùn)行,等待用戶輸入一些文本。獲取用戶輸入后,Python將其存儲(chǔ)在一個(gè)變量中,以方便使用。

prompt="if you tell us who you are , we can personlize the message you see."
prompt+="\nWhat is your first name?"
name=input(prompt)
print("\nHello, "+name+"!")

if you tell us who you are , we can personlize the message you see.
What is your first name?Eric

Hello, Eric!

這個(gè)示例演示了一種創(chuàng)建多行字符串的方式。第1行將消息的前半部分存儲(chǔ)在變量prompt中;在第2行中,運(yùn)算符+=在存儲(chǔ)在prompt中的字符串末尾附加一個(gè)字符串。

While循環(huán)簡(jiǎn)介

for循環(huán)用于針對(duì)集合中的每一個(gè)元素都一個(gè)代碼塊,而while循環(huán)不斷的運(yùn)行,直到指定的條件不滿足為止。

使用while循環(huán)

current_number=1
while current_number=5:
    print(current_number)
    current_number+=1

1
2
3
4
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è)程序。

讓用戶選擇何時(shí)退出

可用while循環(huán)讓程序在用戶愿意時(shí)不斷地運(yùn)行。

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)

Tell me something,and I will repeat it back to you:
Enter 'quit' to end the program.hi
hi

Tell me something,and I will repeat it back to you:
Enter 'quit' to end the program.quit

我們定義了一條提示消息,告訴用戶他有兩個(gè)選擇:要么輸入一條消息,要么輸入退出值。接下來(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ú)法運(yùn)行程序。為解決這個(gè)問(wèn)題,我們必須給變量message指定一個(gè)初始值。雖然這個(gè)初始值只是一個(gè)空字符串,但符合要求,讓Python能夠執(zhí)行循環(huán)while所需的東西。只要循環(huán)不是‘quit',這個(gè)循環(huán)就會(huì)不斷運(yùn)行。

使用標(biāo)志

在前一個(gè)示例中,我們讓程序在滿足指定條件時(shí)就執(zhí)行特定的任務(wù)。但在更復(fù)雜的程序中,很多不同的事件都會(huì)導(dǎo)致程序停止運(yùn)行;在這種情況下,該怎么辦呢?

在要求很多條件都滿足才繼續(xù)運(yùn)行的程序中,可定義一個(gè)變量,用于判斷整個(gè)程序是否處于活動(dòng)狀態(tài)。這個(gè)變量被稱為標(biāo)志,充當(dāng)了程序的交通信號(hào)燈。你可讓程序在標(biāo)志為true時(shí)繼續(xù)運(yùn)行,并在任何事件導(dǎo)致標(biāo)志的值為False時(shí)讓程序停止運(yùn)行。這樣,在while語(yǔ)句中,就只需檢查一個(gè)條件——標(biāo)志的當(dāng)前值是否為true,并將所有測(cè)試都放在其它地方,從而讓程序變得更簡(jiǎn)潔。

prompt="\nTell me something,and I will repeat it back to you:"
prompt+="\nEnter 'quit' to end the program."

active=True
while active:
    message=input(prompt)

    if message=='quit':
        active=False
    else:
        print(message)

Tell me something,and I will repeat it back to you:
Enter 'quit' to end the program.yes
yes

Tell me something,and I will repeat it back to you:
Enter 'quit' to end the program.quit

我們將變量設(shè)置為true,讓程序處于活躍狀態(tài)。這樣簡(jiǎn)化了while語(yǔ)句,因?yàn)椴恍枰谄渲凶鋈魏伪容^——相關(guān)的邏輯由程序的其他部分處理。只要變量active為true,循環(huán)就繼續(xù)這樣運(yùn)行。

在while循環(huán)中,我們?cè)谟脩糨斎牒笫褂靡粭lif語(yǔ)句來(lái)檢查變量message的值。如果用戶輸入的是‘quit',我們就將變量active設(shè)置為False,這將導(dǎo)致while循環(huán)不再繼續(xù)下去。如果用戶輸入的不是‘quit',我們就輸入作為一條消息打印出來(lái)。

使用break退出循環(huán)

要立即退出循環(huán),不再運(yùn)行循環(huán)中余下的代碼,也不管測(cè)試條件如何,可是用break語(yǔ)句。

prompt="\nTell me something,and I will repeat it back to you:"
prompt+="\nEnter 'quit' to end the program."

while True:
    message=input(prompt)

    if message=='quit':
        break
    else:
        print(message)

在循環(huán)中使用continue

要返回到循環(huán)開(kāi)頭,并根據(jù)測(cè)試條件測(cè)試結(jié)果決定是否繼續(xù)執(zhí)行循環(huán),可使用continue語(yǔ)句,它不像break語(yǔ)句那樣不在執(zhí)行余下的代碼并退出整個(gè)循環(huán)。

current_number=0
while current_number10:
    current_number+=1
    if current_number %2==0:
        continue
    print(current_number)

1
3
5
7
9

我們首先將current_number設(shè)置成了0,由于它小于10,Python進(jìn)入while循環(huán)。進(jìn)入循環(huán)后,以步長(zhǎng)為1的方式往上數(shù),因此current_number為1。接下來(lái),if語(yǔ)句檢查current_number與2的求模運(yùn)算結(jié)果。結(jié)果為0,就執(zhí)行continue語(yǔ)句,讓Python忽略余下的代碼,并返回循環(huán)的開(kāi)頭。如果當(dāng)前的數(shù)字不能被2整除,就執(zhí)行循環(huán)中余下的代碼,Python將這個(gè)數(shù)字打印出來(lái)。

在列表之間移動(dòng)元素

假設(shè)有一個(gè)列表,其中包含新注冊(cè)但還未驗(yàn)證的網(wǎng)站用戶;驗(yàn)證這些用戶后,如何將他們移動(dòng)到另一個(gè)已驗(yàn)證的用戶列表中呢?一種辦法是使用一個(gè)while循環(huán),在驗(yàn)證用戶的同時(shí)將其從未驗(yàn)證用戶列表中提取出來(lái),再將其加入到另一個(gè)已驗(yàn)證用戶列表中。代碼可能類似于下面這樣:

# 首先,創(chuàng)建一個(gè)待驗(yàn)證用戶列表
#和一個(gè)用于存儲(chǔ)已驗(yàn)證用戶的空列表
unconfirmed_users=['alice','brian','candace']
confirmed_users=[]

#驗(yàn)證每個(gè)用戶,知道沒(méi)有未驗(yàn)證用戶為止
#將每個(gè)經(jīng)過(guò)驗(yàn)證的列表都移到已驗(yàn)證用戶列表中
while unconfirmed_users:
    current_user=unconfirmed_users.pop()

    print("Verifying user: "+current_user.title())
    confirmed_users.append(current_user)

#顯示所有已驗(yàn)證的用戶
print("\nThe following users have been confirmed:")
for confirmed_user in confirmed_users:
    print(confirmed_user.title())

Verifying user: Candace
Verifying user: Brian
Verifying user: Alice

The following users have been confirmed:
Candace
Brian
Alice

我們首先創(chuàng)建了一個(gè)未驗(yàn)證用戶列表,其中包含Alice、Brain、和Candace,還創(chuàng)建了一個(gè)空列表,用于存儲(chǔ)以驗(yàn)證的用戶。While循環(huán)不斷的運(yùn)行,直到列表unconfirmed_users變成空的。在這個(gè)循環(huán)中,函數(shù)pop()以每次一個(gè)的方式從列表unconfirmed_user末尾刪除未驗(yàn)證的用戶。由于Candace位于列表unconfirmed_users末尾,因此名字將首先被刪除、存儲(chǔ)到變量current_user中并加入到列表confirmed_users中。

為模擬用戶驗(yàn)證過(guò)程,我們打印一條驗(yàn)證消息并將用戶加入到已驗(yàn)證用戶列表中。未驗(yàn)證用戶列表越來(lái)越短,已驗(yàn)證用戶列表越來(lái)越長(zhǎng)。未驗(yàn)證列表為空后結(jié)束循環(huán),再打印已驗(yàn)證列表。

刪除包含特定值的所有列表元素

前面我們使用remove()來(lái)刪除列表中的特定元素,這之所以可行,是因?yàn)橐獎(jiǎng)h除的值在列表中只出現(xiàn)了一次。如果要?jiǎng)h除列表中所有包含特定值的元素,該怎么辦呢?

假設(shè)你有一個(gè)寵物列表,其中包含多個(gè)值為‘cat'的元素。要?jiǎng)h除所有這些元素,可不斷運(yùn)行一個(gè)while循環(huán),直到列表中不再包含值‘cat'.

pets=['dog','cat','dog','goldfish','cat','rabbit','cat']
print(pets)
while 'cat' in pets:
    pets.remove('cat')
print(pets)

['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat']
['dog', 'dog', 'goldfish', 'rabbit']

使用用戶輸入來(lái)填充字典

可使用while循環(huán)提示用戶輸入任意數(shù)量的信息。

responses={}
#設(shè)置一個(gè)標(biāo)志,指出調(diào)查是否繼續(xù)
polling_active=True

while polling_active:
    #提示輸入被調(diào)查者的名字和回答
    name=input("\nWhat is your name?")
    response=input("which mountain would you like to climb someday?")

    #將答案存儲(chǔ)在字典中
    responses[name]=response

    #看看是否還有人要參與調(diào)查
    repeat=input("Would you like to let another person respond?(yes/no)")
    if repeat=='no':
        polling_active=False

    #調(diào)查結(jié)束,顯示結(jié)果
        print("\n---Poll Results---")
        for name,response in responses.items():
            print(name+" would like to climb "+response+".")

What is your name?hi
which mountain would you like to climb someday?ko
Would you like to let another person respond?(yes/no)yes

What is your name?ji
which mountain would you like to climb someday?kp
Would you like to let another person respond?(yes/no)no

---Poll Results---
hi would like to climb ko.
ji would like to climb kp.

這個(gè)程序首先定義了一個(gè)空字典,并設(shè)置了一個(gè)標(biāo)志,用于指出調(diào)查是否繼續(xù)。只要polling_active為True,Python就運(yùn)行while循環(huán)中的代碼。

在這個(gè)循環(huán)中,提示用戶輸入其用戶名及其爬那座山。將這些信息存儲(chǔ)在字典response中,然后詢問(wèn)用戶調(diào)查是否繼續(xù)。如果用戶輸入yes,程序?qū)⒃俅芜M(jìn)入while循環(huán);如果用戶輸入no,標(biāo)志polling_active將被設(shè)置為False,而while循環(huán)就此結(jié)束。

補(bǔ)充:python學(xué)習(xí)筆記——循環(huán)退出的幾種方式

在這里主要討論的是while循環(huán),for循環(huán)通過(guò)迭代對(duì)象退出。

由于while循環(huán)通常不知道循環(huán)的次數(shù),所以對(duì)于while循環(huán),它的幾種應(yīng)用場(chǎng)景導(dǎo)致退出條件設(shè)置的不同。

一、讓用戶選擇何時(shí)退出:定義退出變量

可使用while循環(huán)讓程序在用戶在愿意的時(shí)不斷運(yùn)行,在其中定義一個(gè)退出值,只要用戶輸入的不是這個(gè),程序就接著運(yùn)行。

我們小時(shí)候玩游戲的經(jīng)常會(huì)遇到,當(dāng)人物死亡的時(shí)候,界面會(huì)跳出 重新開(kāi)始游戲or結(jié)束游戲,結(jié)束游戲就相當(dāng)于我們?cè)O(shè)置的退出值。

形式如下:

active = True 
while active:
    message = input()
    if message =="quit":
        active = False
    else:
        print(message)

1、active是我們開(kāi)始就定義的一個(gè)while觸發(fā)器

2、message定義用戶輸入字符

3、quit是退出條件,若用戶輸入quit,則active轉(zhuǎn)換屬性,下次循環(huán)退出。

二、用break退出:當(dāng)明確遇到某些條件即退出時(shí)使用

當(dāng)程序執(zhí)行到break,不管后面直接退出循環(huán)(而不是if-else模塊)。

break主要用于控制if-else語(yǔ)句,可使用ta來(lái)控制哪些代碼將執(zhí)行,哪些代碼不執(zhí)行。

prompt = "請(qǐng)輸入你曾去過(guò)的城市名字(當(dāng)你不想玩的時(shí)候輸入'quit'退出程序)"
while True:
    if city == 'quit':
        break
    else:
        print("i'd love to go to"+'city.title()')

三、在循環(huán)中使用continue:當(dāng)循環(huán)中需要跳過(guò)一些值時(shí)使用

當(dāng)程序執(zhí)行到continue,直接跳出本次循環(huán),進(jìn)入下一次循環(huán)。

例:從1到10,如果是奇數(shù)則輸出,偶數(shù)則跳過(guò)

chuzhi = 0
while chuzhi !=10:
    chuzhi += 1
    if chuzhi%2 ==0:
        continue
    else:
        print(chuzhi)

在遇到continue的時(shí)候后面的else不看直接進(jìn)入下一次while。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • python入門while循環(huán)語(yǔ)句理解學(xué)習(xí)
  • python基礎(chǔ)之while循環(huán)語(yǔ)句的使用
  • Python基礎(chǔ)之python循環(huán)控制語(yǔ)句break/continue詳解
  • python break和continue用法對(duì)比
  • Python跳出循環(huán)語(yǔ)句continue與break的區(qū)別
  • Python循環(huán)語(yǔ)句之break與continue的用法
  • Python基礎(chǔ) while循環(huán)與break、continue關(guān)鍵字

標(biāo)簽:常德 通遼 黑龍江 株洲 潛江 阿里 銅川 呂梁

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python 用戶輸入和while循環(huán)的操作》,本文關(guān)鍵詞  Python,用戶,輸入,和,while,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python 用戶輸入和while循環(huán)的操作》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Python 用戶輸入和while循環(huán)的操作的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章