咱們須要用戶傳入值,並使用這個值。咱們就可使用input()這個函數,能夠打印input()括號內的內容,並等待用戶輸入,並在用戶輸入回車後繼續運行。python
當咱們使用input()函數時,咱們都應指定清晰而易明白的提示,準確指出但願用戶的輸入app
name = input('please enter you name \n') print('welcome %s'%name) age = input('please enter your age:') print('%s 年齡 %s'%(name,age))
當input()內的字符串過長超過一行時爲了方便代碼閱讀,咱們能夠將字符串定義到變量內。dom
welcome = ''' 1.for the lichking 2.for the freedom ''' input(welcome)
while 循環簡介函數
for循環用於針對集合中的每一個元素都一個代碼塊,而while循環不斷的運行,直到指定的條件不知足爲止。測試
可使用while循環來數數網站
1 count_num = 1 2 while count_num<6: 3 print(count_num) 4 count_num+=1
只要知足while後面的表達式,都執行循環內的代碼,不知足結束spa
讓用戶選擇合適退出code
message = input('enter q exit') while message !='q': message = input('enter q exit')
先讓用戶輸入,並提示輸入q結束。當輸入q的時候不走循環,輸入其餘的時候進入循環,直到輸入qblog
1 welcome = 'welcome to notjoke,enter q exit:\n' 2 get_str = '' 3 while get_str !='q': 4 get_str = input(welcome) 5 if get_str != 'q': 6 print(get_str)
對代碼進行改進,將用戶輸入的所有輸出出來,直到用戶輸入q,q不會打印遊戲
在咱們日常使用過程當中,有不少狀況致使程序中止運行,怎麼辦呢
好比:遊戲中,生命值沒了,守護的基地沒了都會讓遊戲結束,若是在一個while語句中檢查全部這些條件,將既複雜有困難
所以咱們能夠定義一個變量,用於判斷整個程序是否處於活動狀態。這個變量稱之爲標誌,充當了程序的交通訊號燈。
咱們能夠對以前的代碼進行修改
1 welcome = 'welcome to notjoke,enter q exit:\n' 2 active = 1 3 get_str = '' 4 while active: 5 get_str = input(welcome) 6 if get_str != 'q': 7 print(get_str) 8 else: 9 active = 0
固然這裏也能夠用True和False,這裏須要判斷active的值,默認爲true,直到輸入q後,將active的值變爲0,條件判斷不經過跳出循環
我麼將active設置成了true,讓程序最初處於得到狀態,這樣簡化了while,由於不須要再作任何比較,相關的邏輯由程序其餘部分來執行
break
要當即退出while循環,再也不容許代碼中餘下的代碼,也無論測試結果如何可以使用break語句。break用於控制程序流程,可以使用他來控制哪些代碼將執行,哪些不執行,從而讓程序按你的要求執行代碼。
仍是上個例子咱們可讓用戶輸入q時,break
while 1: message = input('enter q exit') if message =='q': break else: print(message)
死循環直到用戶輸入q時,break會打斷跳出循環,任何循環中均可以使用break,好比可用break來退出遍歷列表或字典
continue
要返回循環開頭,並根據條件測試結果決定是否繼續執行循環,可以使用continue語句 好比
for x in range(1,11): if x%2 == 0: continue print(x) x = 0 while x<11: x+=1 if x%2 == 0: continue print(x)
若是能整除2,跳回循環那,不能的話打印出來
避免無限循環
for循環是一種遍歷列表的有效方式,但在for循環中不該該修改列表不然將致使python難以追蹤其中的元素。要在遍歷列表的同時進行修改,可以使用while循環。經過將while循環同列表和字典結合起來使用,可收集和存儲並組織大量輸入,供之後查看和顯示
假設一個列表,其中包含新註冊但還未驗證的網站用戶。驗證這些用戶後,如何將他們移動到另外一個已驗證用戶列表中呢 ?
1 wyz_list = ['cc','yy','sc'] 2 yz_list = [] 3 while wyz_list: 4 yz_name = wyz_list.pop() 5 print('%s 驗證成功'%yz_name) 6 yz_list.append(yz_name) 7 for x in yz_list: 8 print(x)
經過while循環刪除列表內指定值的所有元素
咱們能夠經過remove()方法刪除指定元素,可是remove()一次只能刪除一個元素,刪除全部的能夠用while對列表判斷直到列表內沒有 指定值
lc = [1,1,2,3,1] while 1 in lc: lc.remove(1) print(lc)
先判斷列表中是否包含指定值,若是包含執行循環內語句,刪除後再檢查是否在列表內,在繼續循環直到列表內沒有指定值的元素
使用用戶輸入來填充字典
1 active = 1 2 responses ={} 3 while active: 4 name = input('enter your name') 5 job = input('enter your job') 6 responses[name] = job 7 choose = input('enter anything input,enter no exit') 8 if choose == 'no': 9 active = 0
active標誌
練習
建立一個名爲sandwich_orders的列表,在其中包含三明治的名字,再建立一個finished_sandwiches。遍歷第一個個列表,並打印 i made your tuna sandwich ,並將它轉移到第二個列表。都作完後將第二個列表打印
1 sandwich_orders = ['ss','nn','aa','kk','ee'] 2 finished_sandwiches =[] 3 while sandwich_orders: 4 sandwich = sandwich_orders.pop(0) 5 finished_sandwiches.append(sandwich) 6 print('%s make over '%sandwich) 7 print(finished_sandwiches)
while 內判斷列表是否空,每次都刪除列表第一個值,刪完結束打印第二個列表