Python小白入門:第六講|


Python小白入門:第六講||用戶輸入和while循環

大多數程序都旨在解決用戶的問題,因此需要從用戶那裡獲取一些信息。而在Python中,函數input()可以解決這個問題。如果你需要用戶輸入的信息不止一個,可以用while循環不斷獲取用戶輸入的信息。while循環讓程序不斷地運行,直到條件不滿足時停止。
在Python2.7中,使用raw_input()來獲取輸入

在這一講中,你將學習:

  • 如何在程序中使用input()來讓用戶提供信息;
  • 如何處理文本和數字輸入,以及如何使用while 循環讓程序按用戶的要求不斷地運行;
  • 多種控制while循環流程的方式:設置活動標誌、使用break 語句以及使用continue語句;
  • 如何使用while循環在列表之間移動元素
  • 如何從列表中刪除所有包含特定值的元素;
  • 如何 結合使用while 循環和字典。

6.1函數input的工作原理

函數input()讓程序暫停運行,等待用戶輸入一些文本。獲取用戶輸入之後,將其存儲在一個變量中。

<code>num = input("please enter a number:")
print(num)/<code>

函數input()接受一個參數:向用戶展示的提示或說明(Please enter a number:)讓用戶知道接下來應該幹什麼(輸入一個數字)。程序等待用戶輸入,然後代碼print(num)將輸入的值打印出來

6.1.1使用int()來獲取數值輸入

首先來看一個例子

Python小白入門:第六講||用戶輸入和while循環

我們向用戶提問他的年齡,用戶輸入21存入到變量age中,當我們輸出age時卻發現輸出的不是一個數字而是一個字符串。當我們嘗試將age與另一個數值比較時,卻發現報錯了。

這是因為Python將21解讀為字符串,無法將字符串與整數進行比較。

如何解決這個問題呢?可以用函數int(),它讓Python將輸入視為數值。

Python小白入門:第六講||用戶輸入和while循環

這時候發現問題已經完美解決


6.1.2求模運算符

求模運算符將兩個數相除,並返回餘數。

Python小白入門:第六講||用戶輸入和while循環

不難發現,可以使用求模運算符來判斷一個數是奇數還是偶數。

6.2while循環

for循環用於針對集合中的每個元素的一個代碼塊,而while循環不斷地運行,直到指定的條件不滿足時。

<code>num = 1
while num <= 5:
print(num)
num = num + 1/<code>

首先給變量num賦初值1,然後執行while循環,只要條件滿足num<=5,循環將一直執行下去:打印num的值,每次給前一次num的值加一。直到條件不滿足時,循環結束。

6.2.1使用標誌

在要求很多條件都滿足才繼續運行的程序中,可定義一個變量,用於判斷整個程序是否處於活動狀態。這個變量被稱為標誌

首先定義了一個變量active,用於判斷程序是否繼續運行。當用戶輸入quit時,因為active=False,程序將不會繼續運行。

<code>active = True
while active:
message = input()

if message == 'quit':
active = False
else:

print(message)/<code>


6.2.2使用break退出循環

如果要立即退出循環,不再運行循環中的其他代碼,可使用break語句

<code>active = True
while active:
message = input()

if message == 'quit':
break
else:
print(message)/<code>

在任何Python循環中都可以使用break語句


6.2.3在循環中使用continue

要返回到循環開頭,並根據條件測試結果覺得是否繼續執行循環,可使用continue語句。

下面我們看一個例子:從1數到10,打印其中的奇數。

<code>num = 0 
while num < 10:
num = num + 1
if num % 2 == 0

continue
print(num)/<code>

程序執行while循環,當執行到第十一行代碼時,進行條件判斷,如果餘數為零(偶數),就執行continue,返回到循環開始又一次進行條件判斷。並不執行後面的代碼。

在程序中要避免無限循環。如果不小心進入了無限循環,可按Ctrl + C ,也可關閉顯示程序輸出的終端窗口。

6.3使用while循環來處理列表和字典

在此之前,我們都只是處理一項信息:獲取用戶輸入,再將輸入打印出來,繼續執行用戶輸入......

要在程序中記錄大量數據,需要在while循環中使用字典和列表。


6.3.1在列表之間移動元素

<code>users = ['qimu', 'jack', 'tom']
users_0 = []
while users:
user_middle = users.pop()
users_0.append(user_middle)
for user in users_0:
print(user)/<code>

創建兩個列表,users中存儲了三個名字,user_0是一個空列表,該程序的目的是將users中的元素移到users_0中。中間變量user_middle用於存儲刪除的元素,隨後又將其存儲到列表users_0中。因為pop()刪除的是列表末尾的元素,所以列表users_0中第一個元素為‘tom'。


6.3.2可以在刪除列表中特定元素

當一個元素出現多次,而我們想一次性把它刪除時,可以採用while循環執行方法remove()。

<code>users = ['qimu', 'jack', 'tom', 'qimu', 'qimu']
print(users)

while 'qimu' in users:
users.remove('qimu')
print(users)/<code>

輸出

<code>['qimu', 'jack', 'tom', 'qimu', 'qimu']
['jack', 'tom']/<code>


分享到:


相關文章: