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("你還沒長大逼泣,應(yīng)該回家寫作業(yè)趴泌!")
    
    # 3. 思考!- 無論條件是否滿足都會(huì)執(zhí)行
    print("這句代碼什么時(shí)候執(zhí)行?")
    

邏輯運(yùn)算

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

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

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

    • 格式:nor 條件1
    • 不同條件情況對應(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氏仗,編寫代碼判斷成績吉捶,要求只要有一門成績 > 60 分就算合格
    • 代碼實(shí)現(xiàn):
    python_score = 50
    c_score = 50
    
    # 要求只要有一門成績 > 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è)不同的條件對應(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 表示刀的長度影兽,單位:厘米
        • 首先檢查是否有車票,如果有莱革,才允許進(jìn)行 安檢
        • 安檢時(shí)峻堰,需要檢查刀的長度,判斷是否超過 20 厘米
          • 如果超過 20 厘米盅视,提示刀的長度捐名,不允許上車
          • 如果不超過 20 厘米,安檢通過
        • 如果沒有車票闹击,不允許進(jìn)門
      • 代碼實(shí)現(xiàn):

      # 定義布爾型變量 has_ticket 表示是否有車票
      has_ticket = True
      
      # 定義整數(shù)型變量 knife_length 表示刀的長度镶蹋,單位:厘米
      knife_length = 20
      
      # 首先檢查是否有車票,如果有,才允許進(jìn)行 安檢
      if has_ticket:
          print("有車票贺归,可以開始安檢...")
      
      # 安檢時(shí)淆两,需要檢查刀的長度,判斷是否超過 20 厘米
      # 如果超過 20 厘米拂酣,提示刀的長度秋冰,不允許上車
      if knife_length >= 20:
          print("不允許攜帶 %d 厘米長的刀上車" % 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ī)則:

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

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

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

# 比較勝負(fù)
# 如果條件判斷的內(nèi)容太長洲赵,可以在最外側(cè)的條件增加一對大括號
# 再在每一個(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("噢耶5肌!绪商!電腦弱爆了?凉取!格郁!")
elif player == computer:
    print("心有靈犀腹殿,再來一盤!")
else:
    print("不行锣尉,我要和你決戰(zhàn)到天亮!")

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末自沧,一起剝皮案震驚了整個(gè)濱河市树瞭,隨后出現(xiàn)的幾起案子拇厢,更是在濱河造成了極大的恐慌,老刑警劉巖晒喷,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異凉敲,居然都是意外死亡寺旺,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進(jìn)店門势决,熙熙樓的掌柜王于貴愁眉苦臉地迎上來迅涮,“玉大人,你說我怎么就攤上這事徽龟。” “怎么了传透?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵极颓,是天一觀的道長。 經(jīng)常有香客問我菠隆,道長,這世上最難降的妖魔是什么骇径? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮清女,結(jié)果婚禮上晰筛,老公的妹妹穿的比我還像新娘。我一直安慰自己读第,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布父泳。 她就那樣靜靜地躺著盼砍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪浇坐。 梳的紋絲不亂的頭發(fā)上黔宛,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天,我揣著相機(jī)與錄音觉渴,去河邊找鬼。 笑死案淋,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的踢京。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼黔帕,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蹈丸?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤奋岁,失蹤者是張志新(化名)和其女友劉穎荸百,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體管搪,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年霎箍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了澡为。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,577評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡顶别,死狀恐怖拒啰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情谋旦,我是刑警寧澤屈尼,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布拴孤,位于F島的核電站,受9級特大地震影響演熟,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜兄纺,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一是辕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧获三,春花似錦、人聲如沸疙教。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽裸弦。三九已至,卻和暖如春理疙,著一層夾襖步出監(jiān)牢的瞬間晕城,已是汗流浹背窖贤。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留滤蝠,地道東北人授嘀。 一個(gè)月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像粤攒,于是被迫代替她去往敵國和親囱持。 傳聞我的和親對象是個(gè)殘疾皇子焕济,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評論 2 348