第七章 用戶輸入和while循環

7.1 函數input()的工作原理

讓程序暫停,等待客戶輸入文本,并存儲在變量中;

一般情況下,()中輸入提示文字,若提示超過一行:

prompt = 'blabla'

prompt += '\nblabla' #注意這里的語法和換行符

name = input(prompt)

7.1.1 數值輸入

age = input('how old are you?')

默認輸入的是字符串,

age = int(age) #將變量用數值表示

age = str(age) #將變量用字符串表示

7.1.2 求模運算符%

>>>10 % 3

1

>>>7 % 2

1

7.2 ?while循環

for循環針對集合的每個元素;

while循環不斷運行,直到條件不滿足

7.2.1 使用while循環

current_number = 1

while current_number <= 120:

? ? print(current_number)

? ? current_number += 1 #表示current_number = current_number + 1

7.2.2 讓用戶選擇何時退出

prompt = '\nTell me something and I will repeat for you.'

prompt += "\nEnter 'quit' to end this program."

message = '' #讓python首次執行while代碼時有可供檢查的東西

while message != 'quit':

? ? message = input(prompt)

? ? print(message)

7.2.3 使用標志

定義一個變量,用于判斷整個程序是否處于活動狀態,這個變量稱為標志

prompt = '\nTell me something and I will repeat for you.'

prompt += "\nEnter 'quit' to end this program."

active = True?

while active: #只要變量為True,循環就會執行

? ? message = input(prompt)

? ? if message == 'quit':

? ? ? ? active = False

? ? else:

? ? ? ? print(message)

7.2.4 使用break退出循環

break用于控制程序流程,可使用它來控制哪些代碼將執行

在任何python循環中都可使用break循環,例如遍歷列表或字典的for循環

prompt = '\nPlease enter the city name you have visted.'

prompt += "\n Enter 'quit' when you are finished."

while True:

? ? city = input(prompt)

? ? if city == 'quit':

? ? ? ? break

? ? else:

? ? ? ? print("I'd like to visit " + city.title() + '!')

7.2.5 循環中使用continue

current_number = 0

while current_number < 10:

? ? current_number += 1

? ? if current_number % 2 == 0:

? ? ? ? continue #忽略下面的代碼,返回到循環的開頭

? ? print(current_number)

7.2.6 避免無限循環

每個while循環都必須有停止運行的途徑

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

for循環中不應修改列表;while循環可以在遍歷同時對其進行修改

7.3.1 在列表之間移動元素

# -*- coding: utf-8 -*-

#分別創建一個待驗證列表和已驗證用戶的列表

unconfirmed_users = ['alice', 'einstein', 'damon', 'maria']

confirmed_users = []

#驗證每個用戶,直到未驗證客戶列表為空

#將每個驗證的列表都移動到已驗證用戶列表中

while unconfirmed_users: #該列表不為空就會執行循環

? ? current_user = unconfirmed_users.pop()

? ? confirmed_users.append(current_user)

print(confirmed_users)

print(unconfirmed_users) #輸出為空

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

pets = ['cat', 'monkey', 'cat', 'bull', 'tiger', 'rabbit', 'dragon']

while 'cat' in pets:

? ? pets.remove('cat')

print(pets)

7.3.3 使用用戶輸入來填充字典

# -*- coding: utf-8 -*-

vacation_land = {} #先定義一個空字典

active = True #設置標志

while active:

? ? name = input('what is your name?')

? ? place = input('\where would you like to go?')

? ? vacation_land[name] = place

? ? repeat = input('is there anyone else to travel with?yes/ no')

? ? if repeat == 'no':

? ? ? ? active = False

print('\nThe search results is all below:')

for name, place in vacation_land.items():

print(name.title() + ' would like to visit ' + place.title() + #太長換行

' during the holiday!')

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容