Python程式設計

回顧之一:變數 資料型別 流程控制

Last updated: 2021/9/23

回顧 Review

  • Why Python
  • 開發環境
  • 程式設計基本概念

Why Python

2022最受歡迎程式語言IEEE Spectrum版

2019最受歡迎程式語言

https://cdn-images-1.medium.com/max/2600/1*cWW2X0SCMeft-bmYjWcvMA.jpeg

2022最受歡迎程式語言

指標:網路教學文件多寡

2021最受歡迎程式語言

指標:網路教學文件多寡

2020最受歡迎程式語言

2022最受歡迎程式語言

指標:網路教學文件/ 程式高手 / 協力廠商

2021最受歡迎程式語言

指標:網路教學文件/ 程式高手 / 協力廠商

開發環境

開發環境所需工具

https://fatemasaifee.files.wordpress.com/2014/08/2-2.png?w=676

程式碼

可執行碼

執行環境

編輯器

編譯器

直譯器

虛擬機器

整合開發環境 (IDE)

IDE較為方便!

開發環境

整合開發環境:Anaconda

  • 前置安裝: Python官方實作版
     
  • 編輯器 + 直譯器

    Spyder

    VS Code

    Jupyter Notebook

開發環境下載Python

目前最新版本 3.10.6

找X86-64版本

開發環境安裝python

勾選「加入路徑」

4

開發環境 測試:使用[命令提示字元]

開啟命令提示字元,輸入python

quit(): 退出python環境

開發環境 測試:使用IDLE

或是執行python內建工具: IDLE

工具介紹

VS Code

VS Code安裝與中文化(1/5)

❶中文化

❷切換中文語系

照這篇 https://oranwind.org/vs-code-lang/ 可以切換語系

VS Code 安裝Python模組(2/5)

開啟VS Code,點選下列Python模組連結

VS Code 界面簡介(3/5)

開啟專案

檔案總管

儲存工作區

延伸模組

VS Code 選擇直譯器(4/5)

VS Code 執行Python程式(5/5)

編輯器中按滑鼠右鍵

終端機: 出現執行結果

# coding: utf-8
name = input('姓名?')
print('妳好,', name)
name = 100
print(name)

使用Google Colab

程式設計基本概念之一

  • 程式與演算法
  • 資料型別與變數
  • 流程控制

程式基本概念程式與演算法 (1/6)

Algorithm

發音: Al-go-ri-thm

演算法: 完成一件工作的一系列步驟

Program

發音: Pro-gram

程式: 編程完成的演算法(可執行)

演算法(步驟)

向右移動一格

塗滿空格

向右移動一格

向下移動一格

塗滿空格

有5個程式指令:

上 下 左 右

填滿

程式

填滿

填滿

由星號出發

演算法是解決問題的一系列步驟

Input(), print()是輸出入工具函式

Icons made by Freepik from www.flaticon.com is licensed by CC 3.0 BY
https://marketing-prod.global.ssl.fastly.net/sites/default/files/inline-images/Code_Python_Intro_Mac_Laptop.jpg

輸入方式: 鍵盤格式: 文字

Python程式

輸出方式: 螢幕格式: 文字 圖表

變數 = input('自訂提示訊息')

python鍵盤輸入函式: input()

python螢幕輸出函式: print()

print('印出的內容', 變數, '其他內容')

括弧內參數: 1個以上,逗點分隔

基本資料調查怎麼寫

寫一個程式做「基本資料調查」:

  • 螢幕輸出「請問貴姓大名?」
  • 等使用者輸入姓名後,將姓名在螢幕上。
  • 螢幕輸出「請問年紀?」,
  • 等使用者輸入年紀後,將年紀在螢幕上。
  • 螢幕輸出「請問體重?」
  • 等使用者輸入體重後,將體重在螢幕上。

 

如何用python輸出文字?     使用print() 函式

如何讓使用者輸入姓名等?  使用input() 函式

# coding: utf-8
name = input('請問貴姓大名?')
print('你好,', name)
y = int(input('請問年紀?'))
print('原來你', y, '歲')
w = float(input('請問體重?'))
print('體重為', w)

基本資料調查怎麼寫

重點:

  1. 輸出入函式
  2. 註解: '#'開頭
  3. 轉換函式int(), float()
y = int(input('請問年紀?'))
print('原來你', y, '歲')
str1 = input('請問年紀?') # 字串
y = int(str1) # 字串轉整數
print('原來你', y, '歲') # y自動轉字串

=

善用程式註解,解釋程式的寫法

name = input('請問貴姓大名?')
# ... 省略
name = '小明'   # 重新指定內容
print(name)    # 重複使用變數

註解: 程式說明

  • 幫助他人了解程式
  • 回憶當初程式的寫法與用途

單行註解: 使用#字號

  • #字號後該行的文字即為註解

多行註解: 前後各3個單引號 或 3個雙引號

# 作業一: 在螢幕印出使用者的姓名,年紀,體重
# 作者: 王小明
# 版本與日期: 1.0, 2019/2/2
name = input('請問貴姓大名?')
print('你好,', name)
y = int(input('請問年紀?'))
print('原來你', y, '歲')
w = float(input('請問體重?'))
print('體重為', w)
"""
作業一: 在螢幕印出使用者的姓名,年紀,體重
作者: 王小明
版本與日期: 1.0, 2019/2/2
"""
name = input('請問貴姓大名?')
print('你好,', name)
# .... 略

程式基本概念資料型別與變數(1/9)

Variable

發音: Va-ri-able

變數: 資料內容(可改變) 的存放空間

Data Type

發音: Da-ta Type

資料型別: 資料存放空間的類型

x = 5
y = input('請輸入數值')

指定

半徑 = int(input('輸入:')) // 字串轉整數
面積 = 3.14 * 半徑**2; // 平方, 乘法

運算

半徑字串 = input('輸入:') // 字串
半徑數值 = int(半徑字串)  // 字串轉整數
面積 = 3.14 * 半徑數值**2; // 平方, 乘法
#轉換函式: int(), float(), str(), chr()

型別轉換

關於變數(variable)

什麼是變數(variable?)

  • 有名字的夾鏈袋
  • 只能放一張寫了字的便條紙
  • 目的: 暫存資料,供後續使用

參考來源: code.org CSP '21-22 Unit 4 - Variables, Conditionals, and Functions

zip = 2
woop = "hi"

關於變數(variable)

便條紙有兩類(資料型別):數字(Number)與字串(String)

參考來源: code.org CSP '21-22 Unit 4 - Variables, Conditionals, and Functions

這些便條紙是變數嗎?

關於變數用於運算

參考來源: code.org CSP '21-22 Unit 4 - Variables, Conditionals, and Functions

zip = 2

#如果後續多了這一行,會發生什麼事?
zip = 2 + 3

2+3必須先算出,產生便條紙5

關於變數用於運算

參考來源: code.org CSP '21-22 Unit 4 - Variables, Conditionals, and Functions

zip = 2
zip = 2 + 3

5先算出來

關於變數用於運算

參考來源: code.org CSP '21-22 Unit 4 - Variables, Conditionals, and Functions

zip = 2
zip = 2 + 3

再放入夾鏈袋

關於變數用於運算​

參考來源: code.org CSP '21-22 Unit 4 - Variables, Conditionals, and Functions

另外寫一張便條紙5, 不要從夾鏈袋拿出來

便條紙8會取代夾鏈袋內的便條紙

zip = 2 + 3
zip = 3 + zip

print(zip)

便條紙5 ,8 存在記憶體內

變數用於等號右邊的運算式?

關於變數用於運算​

參考來源: code.org CSP '21-22 Unit 4 - Variables, Conditionals, and Functions

zip = 2 + 3
bop = "hi"

bop = bop + zip  # 錯誤:不同型別
bop = bop + str(zip) # 強制轉換
# bop 會變什麼?

變數相加?

文字與數字相加?

新便條紙"hi5"會取代夾鏈袋內的便條紙

文字與數字相加? 文字串接!

"5"

關於變數用於運算​

參考來源: code.org CSP '21-22 Unit 4 - Variables, Conditionals, and Functions

練習: 根據下圖右側便利貼,寫出正確的Python程式

Python的3種基本資料型別

'王小明'

name ➞

記憶體空間

37

y ➞

2.35

w ➞

變數

資料的[標籤]

字串 string: 一串文字

整數 int: 正負整數

浮點數 float: 正負實數

資料型別

文字類

數字類

變數與資料型別變數命名規則

命名規則

  • 第一個字元: 大小寫英文字母底線中文
  • 其餘:大小寫英文字母、底線、中文、數字
  • 英文字母大小寫:視為不同



     
  • 不得為Python保留字
姓名 = '姓名'
Id = 'AA123456'
_score = 100
7eleven = '超商'
M&M = '巧克力'
Bruce Lee = '李小龍'

變數與資料型別變數

  • 變數必須先出現在「等號左側」一次, 才能使用
name = input('請輸入:')  # 建立變數
print(name)    # 已建立, 故可使用

pi = 3.14      # 建立變數, 設定初值為3.14
area = pi * 3 * 3 # pi已建立, 故可使用

pi

3.14

name

area

28.26

如果從鍵盤輸入hi

# 宣告變數
a = 10  # 整數
b = 3.5  # 浮點數

# 使用四則運算子進行計算
sum_result = a + b  # 加法
diff_result = a - b  # 減法
product_result = a * b  # 乘法
quotient_result = a / b  # 除法

# 印出結果
print("a + b =", sum_result)
print("a - b =", diff_result)
print("a * b =", product_result)
print("a / b =", quotient_result)

範例一:如何使用變數、不同的資料型別(整數和浮點數),基本運算子來進行數學運算。

# 宣告變數
a = 10  # 整數
b = 3.5  # 浮點數

# 使用四則運算子進行計算
sum_result = a + b  # 加法
diff_result = a - b  # 減法
product_result = a * b  # 乘法
quotient_result = a / b  # 除法

# 使用 f-string 印出結果
print(f"a + b = {sum_result}")
print(f"a - b = {diff_result}")
print(f"a * b = {product_result}")
print(f"a / b = {quotient_result}")

同樣的範例,輸出(print)改用f-string寫法

# 字串變數
first_name = "John"
last_name = "Doe"

# 使用加法運算子串接字串
full_name = first_name + " " + last_name

# 使用 len() 函數計算字串長度
name_length = len(full_name)

# 使用 f-string 印出結果
print(f"Full name: {full_name}")
print(f"Name length: {name_length}")

範例 二:字串的操作。使用變數來儲存字串資料,加法運算子進行字串串接。

# 輸入商品價格和數量
price_per_item = float(input("請輸入商品單價:"))  # 轉換輸入為浮點數
quantity = int(input("請輸入購買數量:"))  # 轉換輸入為整數

# 計算總金額
total_amount = price_per_item * quantity

# 使用 f-string 輸出結果
print(f"單價: {price_per_item} 元,數量: {quantity} 件")
print(f"總金額為: {total_amount} 元")

範例 三:購物金額計算器。輸入每個商品的價格和數量,最後程式會計算總金額並輸出。

變數與資料型別:練習

練習

  1. 輸入兩個數值
  2. 輸出兩個數字的和、兩個數字的平方和
    pow(x,y) :可算出x的y次方

輸入函式是?用法?

輸出函式是?用法?

數值的資料型別有哪些?

計算(運算式):加法運算子?平方和怎寫?

  • 求三數的總和平均(實作題)
  • 分別輸入三個數字
  • 接著輸出總和、平均

變數與資料型別練習

輸出入函式

print()與input()

print()的3種格式化輸出

book = "程式設計"
print("書名: %s 價格: %5d" % (book, 350))
print(項目 % (參數列))

1.

2. 字串的format()方法

3. f-string (建議使用)

book = "程式設計"
price = 350
print("書名: {} 價格: {}".format(book, price))
# 書名: 程式設計 價格: 350
print(格式字串.format(參數列))

輸出函式最新輸出方式: f-string

Python 3.6版以後,增加f-string的輸出方式

book = "程式設計"
price = 350
print(f"書名: {book:5s} 價格: {price:8.2f}")

# 書名: 程式設計  價格:   350.00

f後面接著雙引號"",此為輸出字串

{}內直接放變數或數值

若要設定格式,則加冒號後,直接設定

輸出函式基本用法(1/5)

print(項目1, 項目2...., sep=分隔字元, end=結束字元)

# 項目1 後都可省略
# sep: 列印項目後的區隔字元, 預設值為一個空格(空白字元)
# end: 列印完畢後自動加上的字元,預設為換行(\n)
# sep, end都是另外補上的字元
print("學期成績如下:")
print(1, "程式設計成績:", 80)
print(1, "程式設計成績:", 80, sep="%")
print("小考成績", 60, sep="&", end="")
print("期中成績", 80)

學期成績如下:
1 程式設計成績: 80
1%程式設計成績:%80
小考成績&60期中成績 80

輸出函式

輸出函式參數格式化(2/5)

book = "程式設計"
print("書名: %s 價格: %5d" % (book, 350))
  • print()列印項目內,以%可設定格式
參數 作用
%% 在字串內顯示%號
%d 以整數型別輸出
%f 以浮點數輸出
%s 以字串輸出
%e 或 %E 以科學記號方式輸出
print(項目 % (參數列))

項目

運算子

參數列: 變數或數值

輸出函式

輸出函式參數格式化(3/5)

book = "程式設計"
print("書名: %10s 價格: %5d" % (book, 350))  
# 5d: 整數共佔5位, 不足5位前面補空白, 超過則全數印出
# 10s: 字串共佔10位, 不足前面補空白, 超過則全數印出
price = 56.6
print('價格為 %8.2f元' % price) 
# 8.2f:含小數點共8位,小數點後兩位
  • print()列印項目內,以%可設定格式

書名:       程式設計 價格:   350
股價為    56.60元

前有3個空格

前有6個空格

前有2個空格

輸出函式

輸出函式參數格式化(4/5)

  • 字串.format() 函式: 也有相同格式化作用
book = "程式設計"
price = 350
print("書名: {} 價格: {}".format(book, price))

# 書名: 程式設計 價格: 350
print(格式字串.format(參數列))

格式字串

.format()

參數列: 變數或數值

輸出函式

空的{} 依序對應參數列的數值

輸出函式參數格式化(5/5)

  • 字串.format() : 字串內以{}代表參數位置
  • {}內也可以指定對應編號: 從0開始算起
book = "程式設計"
price = 350
print("書名: {0:5s} 價格: {1:8.2f}".format(book, price))

# print("書名: %s 價格: %5d" % (book, price))

0 是 book的編號

:5s 字串格式,佔5個字元

參數列: 編號從0算起

1 是 price的編號

:8.2f 浮點數,8個字元,2位小數

輸出函式

# 宣告變數
item_name = "Laptop"  # 字串
quantity = 3  # 整數
unit_price = 599.99  # 浮點數

# 計算總價
total_price = quantity * unit_price

# 使用 f-string 進行格式化並輸出
# 1. 字串:item_name
# 2. 整數:quantity 格式化為至少兩位數,前面補零
# 3. 浮點數:unit_price 和 total_price 保留兩位小數
print(f"商品: {item_name}")
print(f"數量: {quantity:02d}")  # 數量格式化為至少兩位,若不足補零
print(f"單價: ${unit_price:.2f}")  # 單價保留兩位小數
print(f"總金額: ${total_price:.2f}")  # 總金額保留兩位小數

範例 :使用 f-string 進行參數格式化的範例,涵蓋了整數、浮點數

練習

  • 以f-string的方式列印班級成績單如下

輸出函式

輸入函式基本用法(1/3)

變數 = input(提示字串) # 提示字串可有可無

執行input(), 暫停等待輸入

輸入,按下Enter後,繼續執行

print() 印出輸入的字串

作用: 從「標準輸入」裝置輸入資料標準輸入: 預設為鍵盤

輸入函式

輸入函式基本用法(2/3)

score = input('輸入數學成績:')
print(score + 10)  # 調整分數: 加分10分
# 但 score 為字串,無法與10相加

input() 數入型態為: 字串

score = input('輸入數學成績:')
print(int(score) + 10)  # 調整分數: 加分10分

輸入函式

輸入函式基本用法(3/3)

int():  強制轉型,字串轉整數

score = input('輸入數學成績:')
print(int(score) + 10)  # 調整分數: 加分10分
score = int(input('輸入數學成績:')) # 也可輸入後立即轉換
print(score + 10)  # 調整分數: 加分10分

問: ❶❷兩者有何差別?

輸入函式

練習

  • 問題: 某公司員工的薪水包含三部分-基本薪資、工作獎金、加班費。請設計程式可以輸入各三部分薪資後,計算其總額

輸入函式

運算子

  • 作用: 指定做哪種類型運算
  • 類型: 指定、算術、比較、邏輯...

運算子運算式(1/4)

運算式expression

  • 一個以上的常數(固定不變的值)變數運算子函式組合而成
  • 目的: 計算/解讀出另一個數值
score = input('輸入數學成績:')
print(int(score) + 10) 

變數

函式

運算子

變數

函式

運算子

函式

常數

常數

程式的運算

非僅指四則運算,其他如變數管理邏輯判斷也都屬於運算

運算子

運算子指定運算子(3/4)

  • 等號(=): 指定運算子
  • 處理步驟:
    1. 等號右邊先運算(運算式)
    2. 再將結果指定給左邊的變數
  • 運算式:一個以上的常數(固定不變的值)變數運算子函式組合而成
# 範例 2-5-3 攝氏轉華氏
r = float(input('輸入半徑(浮點數)'))   
area = 3.14 * r * r 
print('面積是 %8.2f' % area)

c = int(input('輸入攝氏溫度(整數)'))
f = c * 1.8 + 32       
print('攝氏%3d度,相當於華氏%3d度' % (c,f))

指定運算子

範例複利計算

算術運算子

m = int(input('請輸入本金?'))
i = float(input('請輸入年利率(%)?'))
y2 = m * (1+ i/100) ** 2   # 使用次方
print('第二年本利和為 %8.2f'% y2)
  • 輸入: 本金與利率
  • 列出2年的本利和
y2 = m * (1 + i/100) * (1 + i/100)

使用連乘

次方運算 **

運算子算術運算子(4/4)

範例問題:金額分攤

  • 使用整數除法 //

算術運算子

程式

執行結果

練習

  • 公里/英哩轉換1英哩=1.609公里
  • 輸入英哩數
  • 轉換後輸出公里數

指定運算子

程式基本概念流程控制(1/11)

Loop

發音: loop

迴圈: 重複做的動作

Conditionals

發音: Con-di-shun-uls

條件判斷: 在某些情況才會執行的動作

for i in range(1,10,2):
    print(i, end=',')
# 印出 2,4,6,8
total = n = 0
while(n < 10):       # 條件式: n < 10
    n += 1           # 自行改變 n值
    total += n     
# 加總1~10

for迴圈

while迴圈

if score<60:
    print('不及格')
elif score<=80:
    print('甲等')
else:
    print('超出範圍')

選擇結構

流程控制選擇結構(2/11)

重複結構

循序結構

選擇結構

依序執行

二選一

多選一, 視情況而定

依序逐行執行

重複執行, 視情況而定

重複執行

流程控制循序結構(3/11)

book = "程式設計"
print(f"書名: {book:10s} 價格: {350:5d}")  

price = 56.6
print(f'價格為 {price:8.2f}元') 
top = float(input('輸入梯形上底:'))
bottom = float(input('輸入梯形下底:'))
height = float(input('輸入梯形高度:'))
area = (top + bottom) * height / 2 # 先乘除後加減
print(f'面積是: {area:10.1f}')

一行一行依序執行

一行一行依序執行

流程控制條件判斷(4/11)

選擇結構分成: 

  • 單向選擇結構



     
  • 雙向選擇結構



     
  • 多向選擇結構
  • 巢狀選擇結構
if(條件判斷):  # 注意結尾的冒號
    程式碼1    # 需縮排
    程式碼2    # 同樣縮排距離:同一區塊
    ....
後續程式碼
if(條件判斷):  # 注意結尾的冒號
    程式區塊1  # 需縮排,區塊可以不止一行
else:
    程式區塊2  # 需縮排,區塊可以不止一行
後續程式碼

後續章節

參考來源: code.org CSP '21-22 Unit 4 - Variables, Conditionals, and Functions

變數名稱

「基本資料型別」: int、float、str、布林值

Python有多種「基本型別」變數(variables) 

goToMovie

True

判斷條件時僅會產生兩個結果: True, False...

條件成立

條件不成立

條件(是非題):點數小於7嗎?

point = int(input('輸入點數?'))
if point<7:
    print('小於7點')
else:
    print('大於等於7點')

判斷條件時產生兩個結果: True, False...

如有需要,也可以用變數儲存

  • 「布林值」(boolean)

goToMovie

Python使用TrueFalse代表成立、不成立(布林值)

True

True, False之外,條件判斷也會運用條件運算

比較運算子

邏輯運算子

(6+9 == 2+13)    # 是否相等? True
not(5 > 3)    # 非 5>3? False

條件運算經常使用下列運算子

參考來源: code.org CSP '21-22 Unit 4 - Variables, Conditionals, and Functions

數值比較...

True

如有運算式,要先算出結果

False

參考來源: code.org CSP '21-22 Unit 4 - Variables, Conditionals, and Functions

小試身手,請算出下列式子的答案

參考來源: code.org CSP '21-22 Unit 4 - Variables, Conditionals, and Functions

小試身手,請算出下列式子的答案

True

True

False

False

參考來源: code.org CSP '21-22 Unit 4 - Variables, Conditionals, and Functions

然而,比較的過程經常遇到變數...

參考來源: code.org CSP '21-22 Unit 4 - Variables, Conditionals, and Functions

然而,比較的過程經常遇到變數...

參考來源: code.org CSP '21-22 Unit 4 - Variables, Conditionals, and Functions

然而,比較的過程經常遇到變數...

False

真正決策的情境...

成立的清況

條件判斷

一種流程

總分 = 0
英文分數 = int(input('輸入英文分數:'))
if(英文分數>=60):
    print(f"英文科:{英文分數:4d}分,等第:{'及格':>10}")  # >10置右對齊佔10格
總分 += 英文分數
# 其他程式碼...

真正決策的情境...

成立的清況

不成立的清況

二種流程

條件判斷

money_str = input('銀行餘額:')  # 輸入字串
money = int(money_str)        # 轉成整數
gotomovie = money >= 1000    # True or False
if gotomovie:
  print(f"銀行餘額{money:6d}大於等於1000,可以去看電影!")
else:
  print(f"銀行餘額{money:6d},不足1000,不能看電影!")

真正決策的情境...

條件判斷

成立的清況

繼續縮小條件判斷

縮小條件成立的清況

縮小條件不成立的清況

三種以上流程

成績 = int(input('輸入成績:'))
等第 = ""      # 預設等第
if 成績>=80:
    等第="A"
elif 成績>=60:
    等第="B"
else:
    等第="F"
print(f"成績:{成績:5d},等第:{等第:>3}")

流程控制 程式區塊與縮排(5/11)

: 加上 「縮排」代表一組「程式區塊」

if(分數>=60):
    grade = "及格"
總分 += 分數

程式區塊

冒號

縮排

下一行程式

grade = "不及格"
if(英文>=60):
    grade = "及格"
    print("英文科: %d分,等第:%s" % (英文, grade))
print("英文科: %d分,等第:%s" % (英文, grade))
總分 += 英文

程式區塊範例

程式區塊

流程控制 雙向選擇結構(7/11)

if(條件式):
    程式區塊1
else:
    程式區塊2
後續程式碼

雙向選擇: if-else語法

# 輸入購買金額
purchase_amount = float(input("請輸入購買金額:"))

# 設定免運門檻
free_shipping_threshold = 1000

# 判斷是否達到免運條件
if purchase_amount >= free_shipping_threshold:
    print(f"您的消費金額是 {purchase_amount:.2f} 元,符合免運條件!")
else:
    print(f"您的消費金額是 {purchase_amount:.2f} 元,未達免運門檻,需支付運費。")

範例:判斷是否符合購物免運條件

流程控制 雙向選擇結構(8/11)

...
if(字串變數=="比對內容"):
...

字串比對提示

範例練習

當輸入正確的通關密碼"aB#12345"時,印出 "歡迎光臨!"

  否則印出"密碼錯誤!"

注意: 大小寫字母不同

流程控制 單向雙向綜合練習(9/11)

練習:計算所得稅

# 輸入年收入
income = float(input("請輸入您的年收入:"))

# 根據收入區間計算稅率
if income <= 20000:
    tax_rate = 0.05  # 5% 稅率
elif income <= 50000:
    tax_rate = 0.1  # 10% 稅率
elif income <= 100000:
    tax_rate = 0.2  # 20% 稅率
else:
    tax_rate = 0.3  # 30% 稅率

# 計算應繳稅額
tax = income * tax_rate

# 使用 f-string 輸出結果
print(f"年收入為 {income:.2f} 元,稅率 {tax_rate*100}%,應繳稅額 {tax:.2f} 元。")

流程控制 多向選擇結構(10/11)

多向選擇
  • 小於60分:"不及格"
  • 60~80分:"甲等"
  • 81分以上:"優等"
  • 101分以上:"超出範圍"
score = int(input('輸入成績:'))
if score<60:
    print('不及格')
elif score<=80:
    print('甲等')
elif score<=100:
    print('優等')
else:
    print('超出範圍')

流程控制 多向選擇結構(10/11)

# 輸入月份
month = int(input("請輸入月份(1-12):"))

# 根據月份判斷季節
if month in [12, 1, 2]:
    season = "冬季"
elif month in [3, 4, 5]:
    season = "春季"
elif month in [6, 7, 8]:
    season = "夏季"
elif month in [9, 10, 11]:
    season = "秋季"
else:
    season = "無效的月份"

# 使用 f-string 輸出結果
print(f"您輸入的月份是 {month} 月,所屬季節是 {season}")
範例:判斷季節

練習

麥噹噹打工每週領一次薪資,工作基本時薪是183元,其他規則如下:

  • 小於40小時(週),每小時是基本時薪的0.8倍
  • 等於40小時(週),每小時是183元
  • 大於40至50(含)小時,每小時是基本時薪的1.2倍
  • 大於50小時(週),每小時是基本時新的1.6倍


請輸入工作時數後,計算出週薪為多少。

流程控制 多向選擇結構(11/11)