1. 程式人生 > 其它 >七、if 條件語句

七、if 條件語句

■ if 條件語句

目標

  • 條件語句作用
  • if語法
  • if...else...
  • 多重判斷
  • if巢狀

一. 瞭解條件語句

假設一個場景:

  • 同學們這個年齡去過網咖嗎?
  • 去網咖進門要上網必須做的一件事是做什麼?(考慮終點)
  • 為什麼要把身份證給工作人員?
  • 是不是就是為了判斷是否成年?
  • 是不是如果成年可以上網?如果不成年則不允許上網?
    其實這裡所謂的判斷就是條件語句,即條件成立執行某些程式碼,條件不成立則不執行這些程式碼。

二. if 語法

2.1 語法

if 條件:
    條件成立執行的程式碼1
    條件成立執行的程式碼2
    ......

2.2 快速體驗

if True:
    print('條件成立執行的程式碼1')
    print('條件成立執行的程式碼2')
    
# 下方的程式碼沒有縮排到if語句塊,所以和if條件無關
print('這個程式碼執行嗎?')

執行結果如下:

三.例項:上網

需求分析:如果使用者年齡大於等於18歲,即成年,輸出“已經成年,可以上網”。

3.1 簡單版

age = 20
if age >= 18:
    print('已經成年,可以上網')
    
print('系統關閉')

3.2 進階版

新增需求:使用者可以輸入自己的年齡,然後系統進行判斷是否成年,成年則輸出“您的年齡是'使用者輸入的年齡',已經成年,可以上網”。

# input接收使用者輸入的資料是字串型別,條件age和整型18做判斷,所以這裡要int轉換資料型別
age = int(input('請輸入您的年齡:'))
if age >= 18:
    print(f'您的年齡是{age},已經成年,可以上網。')
    
print('系統關閉')

四. if...else...

作用:條件成立執行if下方的程式碼;條件不成立執行else下方的程式碼。

思考:網咖上網的例項,如果成年,允許上網,如果未成年呢?是不是應該回複用戶不能上網?

4.1 語法

if 條件:
    條件成立執行的程式碼1
    條件成立執行的程式碼2
    ......
else:
    條件不成立執行的程式碼1
    條件不成立執行的程式碼2

4.2 實用版:網咖上網

age = int(input('請輸入您的年齡:'))  # 注意:input接收到的都是str型別,必須用int進行型別轉換
if age >= 18:
    print(f'您輸入的年齡是{age},已經成年,可以上網。')
else:
    print(f'您輸入的年齡是{age},還未成年,不能上網。')
    print('系統關閉')

注意:如果某些條件成立執行了相關的程式碼,那麼其他的情況的程式碼直譯器根本不會執行。

五. 多重判斷

思考:中國合法工作年齡為18-60週歲,即如果年齡小於18的情況為童工,不合法;如果年齡在18-60歲之間為合法工作年齡;大於60歲為法定退休年齡。

5.1 語法

if 條件1:
    條件1成立執行的程式碼1
    條件1成立執行的程式碼2
    ......
elif 條件2:
    條件2成立執行的程式碼1
    條件2成立執行的程式碼2
    ......
......
else:
    以上條件都不成立執行的程式碼

多重判斷也可以和else配合使用。一般else放到整個if語句的最後,表示以上條件都不成立的時候執行的程式碼。

5.2 例項:工齡判斷

age = int(input('請輸入您的年齡:'))
if age < 18:
    print(f'您輸入的年齡是{age},童工。')
elif age >= 18 and age <= 60:
    print(f'您輸入的年齡是{age},為合法工作年齡。')
else:
    print(f'您輸入的年齡是{age},您已經到退休年齡。')

拓展:age >= 18 and age <= 60 可以簡寫成 18 <= age <= 60

六. if 巢狀

思考:坐公交:如果有錢可以上車,沒錢不能上車;上車後入股有空座,則可以坐下;如果沒空座,就要站著。怎麼書寫程式?

6.1 語法

if 條件1:
    條件1成立執行的程式碼1
    條件1成立執行的程式碼2
    
    if 條件2:
        條件2成立執行的程式碼1
        條件2成立執行的程式碼2

注意:條件2的if也是出於條件1的縮排關係內部。

6.2 例項:坐公交

money = 1
seat = 1

# 判斷是否有錢
if money == 1:
    print('土豪,請上車。')
    # 判斷是否可以坐下
    if seat == 1:
        print('有空座,可以坐下。')
    else:
        print('真不巧,沒空座,只能站著了。')
else:
    print('朋友,沒帶錢,跟著跑,跑快點。')

七. 應用:猜拳遊戲

需求分析:

  • 參與遊戲的角色

    • 玩家
      • 手動出拳
    • 電腦
      • 隨機出拳
  • 判斷輸贏

    • 玩家獲勝
    玩家 電腦
    石頭 剪刀
    剪刀
    石頭
    • 平局
      • 玩家出拳 和 電腦出拳 相同
    • 電腦獲勝
      隨機做法:
  1. 匯入random模組
import 模組名
  1. 使用random模組中的隨機整數功能
random.randint(開始,結束)

八. 三目運算子

三目運算子也叫三元運算子或三元表示式。
語法如下:

條件成立執行的表示式 if 條件 else 條件不成立執行的表示式

快速體驗:

a = 1
b = 2
c = a if a > b else b
print(c)