1. 程式人生 > >Python 使用者輸入和while迴圈

Python 使用者輸入和while迴圈

一、函式input()工作原理

函式input()接受一個引數:即要向用戶顯示的提示和說明。

Sublime Text不能執行提示使用者輸入的程式。可以用Sublime Text編寫提示使用者輸入的程式,但必須從終端執行它們。

使用int()來獲取數值輸入:由於使用函式input()時,Python將使用者輸入解讀為字串。所以在需要使用數值的情況下,用int()進行型別轉換。

在python2.7中使用raw_input()來獲取使用者輸入。

二、while迴圈簡介

1、使用while迴圈

for迴圈用於針對集合中的每個元素的一個程式碼塊。而while迴圈不斷地執行,直到指定條件不滿足為止。

2、讓使用者選擇何時退出

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)

3、使用標誌

在更復雜的程式環境中,很多不同事件都會導致程式停止執行。此時,可定義一個變數,用來判斷程式是否處於活動狀態。這個變數被稱為標誌。

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)

4、使用break退出迴圈

要立即退出while迴圈,不再執行迴圈中餘下的程式碼,也不管條件測試的結果如何,可使用break語句。

在任何Python迴圈中都可使用break語句。例如,可使用break語句退出遍歷列表或字典的for迴圈。

prompt = '\nPlease enter a name of a city you have visited: '
prompt += "\n(enter 'quit' when you are finished.)"
while True:
    city = input(prompt)
    if city == 'quit':
        break
    else:
        print("I'd love to go to " + city.title() + '!')

5、在迴圈中使用continue

要返回到迴圈開頭,並根據條件測試結果決定是否繼續執行迴圈,可使用continue語句。

current_number = 0 
while current_number < 10:
    current_number += 1
    if current_number % 2 == 0:
        continue
    else:
        print(current_number)

注:如果程式陷入無限迴圈,按Ctrl+C停止,也可直接關閉終端視窗。

三、使用while迴圈處理列表和字典

要在遍歷列表的同時對其進行修改,可使用while迴圈。

1、在列表之間移動元素

假設有一個列表其中包含新註冊但還未驗證的網站使用者;驗證這些使用者後,就需要將他們移到另一個已驗證使用者列表中。

unconfirmed_users = ['alice','brian','candace']
confirmed_users = []
while unconfirmed_users:
    current_user = unconfirmed_users.pop()
    print('Verifying user: ' + current_user.title())
    confirmed_users.append(current_user)
        
print('\nThe following users have been confirmed: ')
for confirmed_user in confirmed_users:
    print(confirmed_user.title())

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

通過在while中使用方法remove()刪除列表中包含特定值的所有元素。

3、使用使用者輸入來填充字典

使用while迴圈提示使用者輸入任意數量的資訊。

responses = {}
polling_active = True
while polling_active:
    name = input('\nWhat is your name? ')
    response = input('Which mountain would you like to climb someday? ')
    responses[name] = response
    repeat = input("Would you like to let another person response?"+
    "(yes/no)")
    if repeat == 'no':
        polling_active = False
print('\n-------------Poll Result----------')
for name,response in responses.items():
    print(name + ' would like to climb ' + response + '.')