MyPython-->基礎篇-->輸入與while循環


我們需要用戶傳入值,並使用這個值。我們就可以使用input()這個函數,可以打印input()括號內的內容,並等待用戶輸入,並在用戶輸入回車后繼續運行。

當我們使用input()函數時,我們都應指定清晰而易明白的提示,准確指出希望用戶的輸入

name = input('please enter  you name \n')
print('welcome %s'%name)
age = input('please enter your age:')
print('%s 年齡 %s'%(name,age))

 當input()內的字符串過長超過一行時為了方便代碼閱讀,我們可以將字符串定義到變量內。

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后面的表達式,都執行循環內的代碼,不滿足結束

讓用戶選擇合適退出

message = input('enter q exit')
while message !='q':
    message = input('enter q exit')

先讓用戶輸入,並提示輸入q結束。當輸入q的時候不走循環,輸入其他的時候進入循環,直到輸入q

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 內判斷列表是否空,每次都刪除列表第一個值,刪完結束打印第二個列表

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM