python語法入門之流程控制
python語法入門之流程控制
流程控制是指控制流程,具體指控制程式執行的流程。
流程控制分為三種:
1.順序結構 程式從上而下的正常執行(正常執行的程式碼就是順序結構)
2.分支結構 賦予程式人的思維邏輯進行判斷。(用if進行判斷)
3.迴圈結構 讓程式進行重複的判斷。(用while,或者for)
分支結構
分支結構就是根據條件與你定義的引數進行判斷。若滿足條件1則執行程式碼塊1,若不滿足,則與下面條件相對比。。直到語句結束。
if語句用法:
if 條件1: #如果條件1成立,則執行程式碼塊1,若不成立,則執行下一個判斷
程式碼塊1
elif 條件2: # 如果條件2成立,則執行程式碼塊2,若不成立,則執行下一個判斷
程式碼塊2
.........
elif 條件n: # 如果條件n成立,則執行程式碼塊n,若不成立,則執行下一個判斷
程式碼塊n
else: #如果以上的條件都沒成立,則執行程式碼塊n+1
程式碼塊n+1
if語句是從上往下執行的,一但滿足條件,則會執行相應的程式碼塊,並結束這個if語句。
例如:
如果:成績>=90,那麼:優秀
如果成績>=80且<90,那麼:良好
如果成績>=70且<80,那麼:普通
其他情況:很差
score = input('請輸入成績:')
score = int(score) #因為input輸入的無論什麼,都會變成字串型別的。
if score >= 90: #字串型別是沒有辦法和數字進行比較,所以必須先改為int型別
print('優秀')
elif score >= 80:
print('良好')
elif score >= 70
print('普通')
else:
print('很差')
if巢狀的使用
女人的年齡>=18並且<22歲並且身高>170並且體重<100並且是漂亮的
那麼:表白,否則:叫阿姨 如果表白成功,那麼:在一起 否則:列印。。。
age = 18
height = 171
weight = 98
is_beautiful = True
if 22 > age >= 18 and height > 170 and weight < 100 and is_beautiful:
print('I love you', end=' ')
a = input('我想讓你得到我,可以嗎:')
if a == '可以':
print('在一起')
else:
print('什麼愛情不愛情的,愛nmlgb的愛情,愛nmlg啊')
else:
print('阿姨好')
迴圈結構
迴圈結構就是如果滿足條件則會一直迴圈改程式碼塊
因為人類某些時候需要重複做某件事情,所以就衍生出了迴圈結構
while迴圈語法
while 條件:
程式碼塊1
程式碼塊2
程式碼塊3
。。。
執行邏輯為,如果滿足條件,則會執行程式碼塊1,再執行程式碼塊2,程式碼塊3.。。。程式碼塊執行完之後會重新判斷是否滿足條件,若滿足,則會再次執行程式碼塊。
break:結束本層迴圈,只能結束當前這層迴圈。 重
continue:跳過本層迴圈,直接進行下一次迴圈。 點
案例:進行一個使用者登陸系統,輸入密碼輸錯3次,則鎖定使用者3分鐘。登陸成功則可以輸入命令。輸入exit則退出程式。
import time
from_db_username = 'white'
from_db_password = '123'
count = 0
while count < 3:
username = input('請輸入您的使用者名稱:')
password = input('請輸入您的密碼:')
if from_db_username == username and from_db_password == password:
print('登陸成功')
while True:
cmd = input('>>>:')
if cmd == 'exit':
break
else:
print(f'執行命令{cmd}')
break
else:
print('登陸失敗3次,鎖定使用者3分鐘')
count += 1
if count == 3:
print('鎖定使用者3分鐘')
time.sleep(180)
案例: 列印1到10之間,除7以外的所有數字 。
count = 0
while count < 10:
count += 1
if count == 7:
continue
else:
print(count)
for迴圈
for迴圈語法
迴圈結構的第二種實現方式是for迴圈,for迴圈可以做的事情while迴圈都可以實現,之所以用for迴圈是因為在迴圈取值(即遍歷值)時for迴圈比while迴圈的使用更為簡潔 。
for 變數名 in 可迭代物件:
程式碼塊1
程式碼塊2
程式碼塊3
........
案例
for迴圈巢狀: 請用for迴圈巢狀的方式列印如下圖形
*****
*****
*****
for i in range(3):
for j in range(5):
print('*', end='')
print()
列印九九乘法表
for i in range(1, 10): #先取出1到9的數字
for j in range(1, i+1): #定義一個j取1到i的數字
print(f'{j}*{i}={i*j}', end=' ') #進行格式話輸出輸出格式為 1*1=1 同時將換行符換
if i * j < 10: #為空格
print(end=' ') #i*j小於10的話則多輸出一個空格
print() #當j執行結束後將換行符取消掉,再進行i的下一輪迴圈
&n