007 【python 學(xué)習(xí)】分支 if 和 邏輯運(yùn)算

小例子入門了解分支

  • 說明:
    • 如果 條件滿足,才能做某件事情,
    • 如果 條件不滿足,就做另外一件事情,或者什么也不做
  • 小例子


    小例子
  • 偽代碼
if 今天發(fā)工資:
    先還信用卡的錢
    if 有剩余:
        又可以happy了,O(∩_∩)O哈哈~
    else:
        噢,no。。。還得等30天
else:
    盼著發(fā)工資

if 語句

  • 格式:
if 要判斷的條件:
    條件成立時(shí),要做的事情
    ……
  • 圖解:


    if 圖解
  • 練習(xí):

    • 需求:
      • 定義一個(gè)整數(shù)變量記錄年齡
      • 判斷是否滿 18 歲 (>=)
      • 如果滿 18 歲,允許進(jìn)網(wǎng)吧嗨皮
    • 代碼實(shí)現(xiàn):
# 1. 定義年齡變量
age = 18

# 2. 判斷是否滿 18 歲
# if 語句以及縮進(jìn)部分的代碼是一個(gè)完整的代碼塊
if age >= 18:
   print("可以進(jìn)網(wǎng)吧嗨皮……")

# 3. 思考!- 無論條件是否滿足都會(huì)執(zhí)行
print("這句代碼什么時(shí)候執(zhí)行?")

使用 else 處理?xiàng)l件不滿足的情況:

  • 格式
if 要判斷的條件:
    條件成立時(shí),要做的事情
    ……
else:
    條件不成立時(shí),要做的事情
    ……
  • 圖解:


    if-else 語句
  • 練習(xí):

    • 需求:
      • 輸入用戶年齡
      • 判斷是否滿 18 歲 (>=)
      • 如果滿 18 歲,允許進(jìn)網(wǎng)吧嗨皮
      • 如果未滿 18 歲,提示回家寫作業(yè)
    • 代碼實(shí)現(xiàn):
    # 1. 輸入用戶年齡
    age = int(input("今年多大了?"))
    
    # 2. 判斷是否滿 18 歲
    # if 語句以及縮進(jìn)部分的代碼是一個(gè)完整的語法塊
    if age >= 18:
        print("可以進(jìn)網(wǎng)吧嗨皮……")
    else:
        print("你還沒長(zhǎng)大,應(yīng)該回家寫作業(yè)!")
    
    # 3. 思考!- 無論條件是否滿足都會(huì)執(zhí)行
    print("這句代碼什么時(shí)候執(zhí)行?")
    

邏輯運(yùn)算

  • 邏輯和 and 【條件同時(shí)滿足結(jié)果才為真】

    • 格式: 條件1 and 條件2
    • 不同條件情況對(duì)應(yīng)的結(jié)果
    條件 1 條件 2 結(jié)果
    成立 成立 成立
    成立 不成立 不成立
    不成立 成立 不成立
    不成立 不成立 不成立
  • 邏輯或 or 【有一個(gè)條件為真結(jié)果就為真】

    • 格式:條件1 or 條件2
    • 不同條件情況對(duì)應(yīng)的結(jié)果
    條件 1 條件 2 結(jié)果
    成立 成立 成立
    成立 不成立 成立
    不成立 成立 成立
    不成立 不成立 不成立
  • 邏輯非 nor 【取相反的結(jié)果】

    • 格式:nor 條件1
    • 不同條件情況對(duì)應(yīng)的結(jié)果
    條件 結(jié)果
    成立 不成立
    不成立 成立

總練習(xí):

  • 練習(xí) 1:
    • 需求:定義一個(gè)整數(shù)變量 age,編寫代碼判斷年齡是否正確,要求人的年齡在 0-120 之間
    • 代碼實(shí)現(xiàn):
    age = 100
    
    # 要求人的年齡在 0-120 之間
    if age >= 0 and age <= 120:
        print("年齡正確")
    else:
        print("年齡不正確")
    
  • 練習(xí) 2:
    • 需求:定義兩個(gè)整數(shù)變量 python_score、c_score,編寫代碼判斷成績(jī),要求只要有一門成績(jī) > 60 分就算合格
    • 代碼實(shí)現(xiàn):
    python_score = 50
    c_score = 50
    
    # 要求只要有一門成績(jī) > 60 分就算合格
    if python_score > 60 or c_score > 60:
        print("考試通過")
    else:
        print("再接再厲!")
    
  • 練習(xí) 3:
    • 需求:定義一個(gè)布爾型變量 is_employee,編寫代碼判斷是否是本公司員工,如果不是提示不允許入內(nèi)
    • 代碼實(shí)現(xiàn)
    # 練習(xí)3: 定義一個(gè)布爾型變量 `is_employee`,編寫代碼判斷是否是本公司員工
    is_employee = True
    
    # 如果不是提示不允許入內(nèi)
    if not is_employee:
        print("非公勿內(nèi)")
    

if 進(jìn)階

  • elif
    • 使用情況:有多個(gè)不同的條件對(duì)應(yīng)不同的結(jié)果
    • 格式:
    if 條件1:
        條件1滿足執(zhí)行的代碼
        ……
    elif 條件2:
        條件2滿足時(shí),執(zhí)行的代碼
        ……
    elif 條件3:
        條件3滿足時(shí),執(zhí)行的代碼
        ……
    else:
        以上條件都不滿足時(shí),執(zhí)行的代碼
        ……
    
    • 注意事項(xiàng):
      • elif 和 else 都必須和 if 聯(lián)合使用,而不能單獨(dú)使用
      • 可以將 if、elif 和 else 以及各自縮進(jìn)的代碼,看成一個(gè) 完整的代碼塊
    • 小練習(xí)
      • 需求:
        • 定義 holiday_name 字符串變量記錄節(jié)日名稱
        • 如果是 情人節(jié) 應(yīng)該 買玫瑰/看電影
        • 如果是 平安夜 應(yīng)該 買蘋果/吃大餐
        • 如果是 生日 應(yīng)該 買蛋糕
        • 其他的日子每天都是節(jié)日啊……
      • 代碼實(shí)現(xiàn)
      holiday_name = "平安夜"
      
      if holiday_name == "情人節(jié)":
          print("買玫瑰")
          print("看電影")
      elif holiday_name == "平安夜":
          print("買蘋果")
          print("吃大餐")
      elif holiday_name == "生日":
         print("買蛋糕")
      else:
          print("每天都是節(jié)日啊……")
      
  • if 嵌套
    • 使用情況:有多重條件
    • 格式
    if 條件 1:
        條件 1 滿足執(zhí)行的代碼
        ……
      
        if 條件 1 基礎(chǔ)上的條件 2:
            條件 2 滿足時(shí),執(zhí)行的代碼
            ……    
          
        # 條件 2 不滿足的處理
        else:
            條件 2 不滿足時(shí),執(zhí)行的代碼
          
    # 條件 1 不滿足的處理
    else:
        條件1 不滿足時(shí),執(zhí)行的代碼
        ……
    
    • 小練習(xí):
      • 需求:

        • 定義布爾型變量 has_ticket 表示是否有車票
        • 定義整型變量 knife_length 表示刀的長(zhǎng)度,單位:厘米
        • 首先檢查是否有車票,如果有,才允許進(jìn)行 安檢
        • 安檢時(shí),需要檢查刀的長(zhǎng)度,判斷是否超過 20 厘米
          • 如果超過 20 厘米,提示刀的長(zhǎng)度,不允許上車
          • 如果不超過 20 厘米,安檢通過
        • 如果沒有車票,不允許進(jìn)門
      • 代碼實(shí)現(xiàn):

      # 定義布爾型變量 has_ticket 表示是否有車票
      has_ticket = True
      
      # 定義整數(shù)型變量 knife_length 表示刀的長(zhǎng)度,單位:厘米
      knife_length = 20
      
      # 首先檢查是否有車票,如果有,才允許進(jìn)行 安檢
      if has_ticket:
          print("有車票,可以開始安檢...")
      
      # 安檢時(shí),需要檢查刀的長(zhǎng)度,判斷是否超過 20 厘米
      # 如果超過 20 厘米,提示刀的長(zhǎng)度,不允許上車
      if knife_length >= 20:
          print("不允許攜帶 %d 厘米長(zhǎng)的刀上車" % knife_length)
      # 如果不超過 20 厘米,安檢通過
      else:
          print("安檢通過,祝您旅途愉快……")
      
      # 如果沒有車票,不允許進(jìn)門
      else:
          print("大哥,您要先買票啊")
      

隨機(jī)數(shù)的處理

  • 說明:計(jì)算機(jī)可以隨機(jī)生成一個(gè)數(shù)字
  • 模塊:random
    import random
    
  • 函數(shù)說明:random.randint(a, b) ,返回 [a, b] 之間的整數(shù),包含 a 和 b
    • 實(shí)例:
    random.randint(12, 20)  # 生成的隨機(jī)數(shù)n: 12 <= n <= 20   
    random.randint(20, 20)  # 結(jié)果永遠(yuǎn)是 20   
    random.randint(20, 10)  # 該語句是錯(cuò)誤的,下限必須小于上限
    

綜合練習(xí)

  • 需求:

    • 從控制臺(tái)輸入要出的拳 —— 石頭(1)/剪刀(2)/布(3)
    • 電腦 隨機(jī) 出拳 —— 先假定電腦只會(huì)出石頭,完成整體代碼功能
    • 比較勝負(fù)
  • 規(guī)則:

    序號(hào) 規(guī)則
    1 石頭 勝 剪刀
    2 剪刀 勝 布
    3 布 勝 石頭
  • 代碼實(shí)現(xiàn):

# 從控制臺(tái)輸入要出的拳 —— 石頭(1)/剪刀(2)/布(3)
player = int(input("請(qǐng)出拳 石頭(1)/剪刀(2)/布(3):"))

# 電腦 隨機(jī) 出拳 - 假定電腦永遠(yuǎn)出石頭
computer = 1

# 比較勝負(fù)
# 如果條件判斷的內(nèi)容太長(zhǎng),可以在最外側(cè)的條件增加一對(duì)大括號(hào)
# 再在每一個(gè)條件之間,使用回車,PyCharm 可以自動(dòng)增加 8 個(gè)空格
if ((player == 1 and computer == 2) or
        (player == 2 and computer == 3) or
        (player == 3 and computer == 1)):

    print("噢耶?。?!電腦弱爆了?。?!")
elif player == computer:
    print("心有靈犀,再來一盤!")
else:
    print("不行,我要和你決戰(zhàn)到天亮!")

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容