2024-10-20|閱讀時間 ‧ 約 0 分鐘

Python 100天-從新手到大師學習筆記Day03:分支結構


  • if語句的使用

在Python中,要構造分支結構可以使用ifelifelse關鍵字。

"""
使用者身份驗證
Version: Day03
Author: SQA yang
"""
username = input('請輸入使用者名稱: ')
password = input('請輸入口令: ')
# 使用者名稱是admin且密碼是123456則身份驗證成功否則身份驗證失敗
if username == 'admin' and password == '123456':
print('身份驗證成功!')
else:
print('身份驗證失敗!')

執行 if - else的各別結果


  • 分支結構:

如果要構造出更多的分支,可以使用if...elif...else...結構或者巢狀的if...else...結構,可以使用以下:

"""
分段函式求值

3x - 5  (x > 1)
f(x) = x + 2   (-1 <= x <= 1)
    5x + 3  (x < -1)

Version: Day03
Author: SQA yang
"""
x = float(input('x = '))
if x > 1:
y = 3 * x - 5
elif x >= -1:
y = x + 2
else:
y = 5 * x + 3
print('f(%.2f) = %.2f' % (x, y))

使用if-elif-else結構



關於最後一行print('f(%.2f) = %.2f' % (x, y))有不明白的地方,我向GPT求救了。

也請看不懂的朋友們可以參考看看。


print('f(%.2f) = %.2f' % (x, y))參考GPT解說


  • 巢狀分支結構:

根據實際開發的需要,分支結構是可以巢狀的。

需要在if的內部構造出一個新的分支結構,同理elifelse中也可以再構造新的分支,我們稱之為巢狀的分支結構。

以下改寫上述的程式碼為巢狀結構。

"""
分段函式求值
3x - 5  (x > 1)
f(x) = x + 2   (-1 <= x <= 1)
5x + 3  (x < -1)
Version: Day03
Author: SQA yang
"""
x = float(input('x = '))
if x > 1:
y = 3 * x - 5
else:
if x >= -1:
y = x + 2
else:
y = 5 * x + 3
print('f(%.2f) = %.2f' % (x, y))

巢狀結構在if-else裡又多了內層的if -else


  • 補充:

Python之禪中有提倡程式碼“扁平化”是因為巢狀結構的巢狀層次多了之後會嚴重的影響程式碼的可讀性,所以能使用扁平化的結構時就不要使用巢狀。


  • 練習作業:百分制成績轉換為等級製成績。需求:輸入的成績在90分以上(含90分)輸出A;80分-90分(不含90分)輸出B;70分-80分(不含80分)輸出C;60分-70分(不含70分)輸出D;60分以下輸出E。
"""
百分制成績轉換為等級製成績
Version: Day03
Author: SQA yang
"""
score = float(input('請輸入成績: '))
if score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
elif score >= 70:
grade = 'C'
elif score >= 60:
grade = 'D'
else:
grade = 'E'
print('對應的等級是:', grade)

百分制成績轉換為等級制


以上為Python100天從新手到大師的Day03學習筆記。

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.