1. 程式人生 > 其它 >Python(3)條件語句與迴圈語句

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連用 兩者的子程式碼永遠只會執行一個

graph TD A[第一步] --> B{if條件} B --> |條件成立|C[執行if下的子程式碼] B --> |條件不成立|D[執行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:
​ 上述條件都不成立 執行的子程式碼塊

graph TD A[第一步] -->B{if條件1} B -->|條件1不成立|C{elif條件2} B -->|條件1成立|D(執行條件1後的子程式碼塊) C -->|條件1和條件2都不成立|E{elif條件3} C -->|條件2成立|F[執行條件2下的子程式碼塊] E -->|上述條件都不成立|G[執行else下的子程式碼塊] E -->|條件3成立|H[執行條件3下的子程式碼塊]
# 根據成績評判分類
    # 大於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:小技巧 上一行程式碼的結尾如果是冒號 那麼下一行程式碼必縮排