if判斷實際上是在模擬人作判斷。就是說若是這樣幹什麼,若是那樣幹什麼。對於ATM系統而言,則須要判斷你的帳號密碼的正確性。code
if 條件: 代碼1 代碼2 代碼3 ... # 代碼塊(同一縮進級別的代碼,例如代碼一、代碼2和代碼3是相同縮進的代碼,這三個代碼組合在一塊兒就是一個代碼塊,相同縮進的代碼會自上而下的運行)
例如:輸入姑娘的年齡後,進行如下判斷:索引
若是姑娘大於18歲小於25歲,打印「表白」遊戲
若是姑娘大於25歲小於45歲,打印「阿姨好」input
若是姑娘大於45歲,打印「奶奶好」數學
while 1: age=input('請輸入女孩的年齡') age=int(age) if age >=45: print('奶奶好') if age >=25 and age<45: print('阿姨好') if age >=18 and age<25: print('表白') if age <18: print('未成年')
if...else表示if成立代碼成立會幹什麼,else不成立會幹什麼。it
if...elif...else表示if條件1成立幹什麼,elif條件2成立幹什麼,elif條件3成立幹什麼,elif...不然幹什麼。for循環
例如:成績評判class
若是 成績>=90,打印"優秀"import
其餘狀況:打印"差"
# 成績評判 score = input("your score: ") score = int(score) if score >= 90: print('優秀') # elif score >= 80 and score < 90: elif score >= 80: print('良好') # elif score >= 70 and score < 80: elif score >= 70: print('普通') else: print('差')
循環就是一個重複的過程,咱們人須要重複幹一個活,那麼計算機也須要重複幹一個活。ATM驗證失敗,那麼計算機會讓咱們再一次輸入密碼。這個時候就得說出咱們的wile循環,while循環又稱爲條件循環。
while+break
循環的目的是爲了讓計算機和人同樣工做,循環處理事情.
break的意思是終止掉當前層的循環,執行其餘代碼。
例如:
while True: user_db = 'nick' pwd_db = '123' inp_user = input('username: ') inp_pwd = input('password: ') if inp_user == user_db and pwd_db == inp_pwd: print('login successful') break else: print('username or password error') print('退出了while循環')
username: nick
password: 123
login successful
退出了while循環
while+continue
continue的意思是終止本次循環,直接進入下一次循環。
continue不能加在循環體的最後一步執行的代碼,由於代碼加上去毫無心義,以下所示的continue所在的位置就是毫無心義的。
ps:注意是最後一步執行的代碼,而不是最後一行。
while循環的嵌套
ATM密碼輸入成功還須要進行一系列的命令操做,好比取款,好比轉帳。而且在執行功能結束後會退出命令操做的功能,即在功能出執行輸入q會退出輸出功能的while循環而且退出ATM程序。
==例如:猜年齡遊戲升級版,有如下三點要求:==
容許用戶最多嘗試3次
每嘗試3次後,若是還沒猜對,就問用戶是否還想繼續玩,若是回答Y或y, 就繼續讓其猜3次,以此往復,若是回答N或n,就退出程序
若是猜對了,就直接退出
n=0 age=20 while n<4: guess_age=int(input(f'請輸入年齡,你還有{3-n}次機會哦:')) if guess_age==age: print('猜對了,退出程序') break else: print('猜錯了') n=n+1 if n==3: a=input('你已經輸錯了3次,如想繼續玩,請輸入y或者Y;' '不繼續請輸入n或者N:') while 1: if a=="n"or a=="N": print('不猜了,退出程序') n=4 break elif a=='y'or a=='Y': n=0 break
字典也有取多個值的需求,字典可能有while循環沒法使用了,這個時候可使用咱們的for循環。
for循環的循環次數受限於容器類型的長度,而while循環的循環次數須要本身控制。for循環也能夠按照索引取值。
例如:打印1-100之間的偶數:
for i in range(1,101): if i%2!=1: print(i)
for+continue
for循環調出本次循環,進入下一次循環
for+break
for循環調出本層循環。
for循環嵌套
外層循環循環一次,內層循環循環全部的
==例如:打印以下所示9*9乘法表:==
''' 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 '''
for i in range(1,10): for j in range(1,i+1): print(f'{i}','*',f'{j}','=',i*j,end=' ') print()
for+else
for循環沒有break的時候觸發else內部代碼塊。
for循環實現loading
import time print('Loading', end='') for i in range(6): print(".", end='') time.sleep(0.2)
loading......
==例如:打印以下所示金字塔:==
''' # max_level=5 * # current_level=1,空格數=4,*號數=1 *** # current_level=2,空格數=3,*號數=3 ***** # current_level=3,空格數=2,*號數=5 ******* # current_level=4,空格數=1,*號數=7 ********* # current_level=5,空格數=0,*號數=9 # 數學表達式 空格數 = max_level-current_level *號數 = 2*current_level-1 '''
max_level=5 for i in range(1,6): current_level=i a=5-i b=2*i-1 print(' '*a,'*'*b)