1. 程式人生 > 其它 >運算子&流程控制

運算子&流程控制

目錄

  • 邏輯運算子

  • 成員運算子

  • 身份運算子

  • 流程控制

邏輯運算子

關鍵字:and, or, not

print(2 > 1 and 1 == 1 and True and 3 > 2)  # 連線符必須都要是and
print(2 > 13 or 1 != 1 or True or 3 > 2)  # 連線符必須都要是or
print(not True)

'''
    如果and, or, not 混用的話,是有優先順序的
    not > and > or
    要想改變優先順序,只需要加括號改變就行
'''

 

成員運算子

# 判斷某個個體在不在某個群體內
關鍵字:in(在)  not in(不在)
    name_list = ['aaa, 'bbb', 'ccc', 'ddd']
    name = input('請輸入您要查詢的學生姓名>>>:')
    print(name in name_list)
    print(name not in name_list)

    print('a' in 'aaa b b b c d d ')
    print('aaa' in {'username': 'aaa', 'age': 18})  # False
    	字典預設暴露給外界的只有K
    print('username' in {'username': 'aaa', 'age': 18})

身份運算子

# 判斷兩個資料 值和記憶體地址是否相等
符號: ==(只判斷值)  is(判斷記憶體地址)
    s1 = ['aaa', 'bbb', 'ccc', 'ddd']
    s2 = ['aaa', 'bbb', 'ccc, 'ddd']
    print(s1 == s2)  # True
    # print(id(s1),id(s2))
    print(s1 is s2)  # False
"""
值相等記憶體地址不一定相等
記憶體地址相等值一定相等
"""

  

流程控制

流程控制即控制事物的執行流程
任何使用執行流程只有三種情況
1.順序結構
自上而下依次執行
2.分支結構
在執行過程中根據條件的不同可能會執行不同的流程
3.迴圈結構
在執行過程中有些程式碼需要反覆執行

分支結構

1. python利用縮排來表示程式碼的從屬關係
2. 並不是所有的程式碼都可以擁有字程式碼
3. 屬於同一個關鍵字的子程式碼必須保持相同的縮排量(推薦縮排量為四個空格)
(冒號後面需要縮排)
  1. 單分支結構
    if
    if + 條件:
    條件成立需要執行的程式碼

       age_of_girl = 44
       if 24 > age_of_girl > 18:
           print('小姐姐')
    

      

  2. 雙分枝結構
    if +條件:
    條件成立後執行的子程式碼塊
    else:
    條件不成立的時候執行的子程式碼塊
    age_of_girl = 44
    if 24 > age_of_girl > 18:
        print('小姐姐')
    else:
        print('阿姨你好') 
    
  3. if、elif、else 連用

    if 條件1:
    條件1成立之後執行的子程式碼塊
    elif 條件2:
    條件1不成立條件2成立執行的子程式碼塊
    ...
    else:
    條件不成立執行的子程式碼塊



if語句的巢狀

age = 22
height = 165
weight = 90
is_beautiful = True
is_success = True
if age < 24 and height > 160 and weight < 100 and is_beautiful:
    print('小姐姐加個微信?')
    if is_success:
        print('吃飯,看電影......')
    else:
        print('撒喲娜拉')

else:
    print('撒喲娜拉')

  

#  1.登入功能,使用者名稱是:bes, 密碼:123
# 登入成功之後,列印:登入成功,否則,登入失敗
# 


# 1. 接收使用者輸入的使用者名稱
username = input('請輸入使用者名稱:')
password = input('請輸入密碼:')
# 補充
password = int(password)
if username == 'bes' and password == 123:
    print('登入成功')
else:
    print('登入失敗')

# 如果使用者輸入的是bes,就列印管理員,jason財務, tom保安,否則,其他人員
# 2. 先讓使用者輸入使用者名稱
username = input('請輸入使用者名稱:')
if username == 'bes':
    print('管理員')
elif username == 'jason':
    print('財務')
elif username == 'tom':
    print('保安')
else:
    print('其他人員')

  

while迴圈

while + 條件:

條件成立後迴圈執行的子程式碼塊

while True:
    username = input('請輸入使用者名稱:')
    password = input('請輸入密碼:')
    # 補充
    if username == 'bes' and password == '123':
        print('登入成功')
        break  # 結束本層迴圈
    else:
        print('登入失敗')
print(123) #不參與迴圈

  

# 驗證break跳出的是本層迴圈
while True:
    username = input('請輸入使用者名稱:')
    password = input('請輸入密碼:')
    # 補充
    if username == 'bes' and password == '123':
        print('登入成功')
        # 結束本層迴圈
        while True:
            cmd = input('請輸入你的指令:')
            print('正在執行你的指令:%s' % cmd)
            if cmd == 'q':
                break
        break
    else:
        print('登入失敗')

  

標誌位的使用

# 標誌位的使用
flag = True
while flag:
    username = input('請輸入使用者名稱:')
    password = input('請輸入密碼:')
    # 補充
    if username == 'bes' and password == '123':
        print('登入成功')
        # 結束本層迴圈
        while flag:
            cmd = input('請輸入你的指令:')
            print('正在執行你的指令:%s' % cmd)
            if cmd == 'q':
                flag = False
    else:
        print('登入失敗')

練習:

猜年齡的遊戲:
如果猜對了,就直接結束
如果猜錯了:
普通要求:在次猜,給三次機會
進階要求:如果三次都輸錯了,要再次詢問使用者是否還要猜,如果使用者輸入的是y,繼續猜,否則結束

age = 18  # 設定年齡
count = 0  # 設定計數器
while count < 3:
    num = input('輸入年齡:')
    num1 = int(num)
    if age == int(num):
        print('恭喜您猜對了')
        break
    else:
        print('很遺憾您猜錯了')
        count += 1
        if count == 3:
            cmd = input("您已連續錯誤三次,是否繼續:")
            if cmd == 'y':
                count = 0
            else:
                print('遊戲結束')