Python(3)條件語句與迴圈語句
成員運算
判斷某個個體在不在某個群體之內
關鍵字:in(在) not in (不在)
輸出結果為 True 或 False
name_list = ['tony', 'jason', 'jay', 'jake'] print('jake' in name_list) # 輸出結果為True #在字典中只能通過查詢K來訪問V,所以如果直接問V是否在其中,大都是False personal_information = { 'name': 'tony', 'age': 19, 'job': 'idol' } print('tony' in personal_information) #輸出結果為False
身份運算
判斷兩個資料值和地址是否相等
1.判斷值是否相等:用 ==
print([11, 22, 33, 444, 555] == [11, 22, 33, 444, 555]) # 輸出結果為 True
2.判斷地址是否相等:用 is
print([11, 22, 33, 444, 555] is [11, 22, 33, 444, 555]) # 輸出結果為 False
流程控制
流程控制即控制事物的執行流程,分為三種結構
1.順序結構
自上而下依次執行
graph TD A[第一步] -->B(第二步) B --> C(第三步)2.分支結構
在執行過程中根據條件的不同可能會執行不同的流程
關鍵字:if
2.1 單 if 分支結構
if 條件:條件成立之後執行的子程式碼塊
graph TD A[第一步] -->B{if條件} B --> |條件成立|C[結果]age = 17
if age < 18: # 條件語句後必須要加冒號
print('未成年')
2.2 if與else連用
語法:
if 條件:
條件成立後執行的子程式碼塊
else:
條件不成立的情況下執行的子程式碼塊
注 : if與else連用 兩者的子程式碼永遠只會執行一個
age = 19
if age < 18:
print('未成年')
else:
print('成年')
2.3 if elif else三者連用
語法:
if 條件1:
條件1成立之後執行的子程式碼塊
elif條件2:
條件1不成立 條件2成立之後執行的子程式碼塊
elif條件3:
條件1和2都不成立 條件3成立之後執行的子程式碼塊
. . . . . .
else:
上述條件都不成立 執行的子程式碼塊
# 根據成績評判分類
# 大於90優秀 大於80良好 大於70一般 大於60及格 其他掛科
score = 79
if score > 90:
print('優秀')
elif score > 80:
print('良好')
elif score > 70:
print('一般')
elif score 78> 60:
print('及格')
else:
print('掛科重修')
3.迴圈結構
while迴圈
while 條件:
條件成立之後迴圈執行的子程式碼塊
例:
while True:
# 1.獲取使用者輸入的使用者名稱和密碼
username = input('username:')
pw = input('password:')
# 2.判斷使用者名稱和密碼是否正確
if username == 'tony' and password == '111':
print('login succeed')
else:
print('login failed')
上列程式碼執行的流程圖:
st=>start: 開始
op=>operation: 輸入使用者名稱和密碼
cond=>condition: 判斷框(是否一致?)
io=>inputoutput: 輸出login succeed
ic=>inputoutput: 輸出login failed
st->op->cond
cond(yes)->io->op
cond(no)->ic->op
while + break
# break結束本層迴圈
while True:
# 1.獲取使用者輸入的使用者名稱和密碼
username = input('username>>>:')
password = input('password>>>:')
# 2.判斷使用者名稱和密碼是否正確
if username == 'jason' and password == '123':
print('login succeed')
# 直接結束本層迴圈
break
else:
print('login failed')
上列程式碼執行的流程圖:
st=>start: 開始
op=>operation: 輸入使用者名稱和密碼
cond=>condition: 判斷是否正確
io=>inputoutput: 輸出login succeed
ic=>inputoutput: 輸出login failed
e=>end: 結束
st->op->cond
cond(yes)->io->e
cond(no)->ic->op
break跳出本層迴圈的含義及while巢狀
# while巢狀
while True:
# 1.獲取使用者輸入的使用者名稱和密碼
username = input('username>>>:')
password = input('password>>>:')
# 2.判斷使用者名稱和密碼是否正確
if username == 'jason' and password == '123':
print('login succeed')
while True:
cmd = input('請輸入您的指令>>>:')
# 判斷使用者是否想退出
if cmd == 'q':
break
print('正在執行您的指令:%s' % cmd)
break
else:
print('login failed')
上述程式碼的流程圖如下:
st=>start: 開始
op=>operation: 輸入使用者名稱和密碼
co=>condition: 判斷是否正確(是或否)?
sub=>inputoutput: 正在執行您的指令
io1=>inputoutput: login succeed
io2=>inputoutput: login failed
op1=>subroutine: 請輸入您的指令
co1=>condition: 判斷是否為q(是或否)?
e=>end: 退出
st->op->co
co(yes)->io1->op1->co1
co1(yes)->e
co1(no)->sub->op1
co(no)->io2->op
全域性標誌位
# 標誌位的使用
flag = True
while flag:
# 1.獲取使用者輸入的使用者名稱和密碼
username = input('username>>>:')
password = input('password>>>:')
# 2.判斷使用者名稱和密碼是否正確
if username == 'jason' and password == '123':
print('login succeed')
while flag:
cmd = input('請輸入您的指令>>>:')
# 判斷使用者是否想退出
if cmd == 'q':
flag = False
print('正在執行您的指令:%s' % cmd)
else:
print('login failed')
重點補充
1.條件都會轉成布林值 從而決定子程式碼是否執行
2.在python中 使用縮排來表示程式碼的從屬關係
3.並不是所有的程式碼都可以擁有子程式碼
4.同屬於某個程式碼的多行子程式碼 必須要保持相同的縮排量
在python中推薦使用四個空格來縮排
ps:小技巧 上一行程式碼的結尾如果是冒號 那麼下一行程式碼必縮排