# 演示轉換函數的使用

# 範例 1:將攝氏溫度轉換為克氏溫度
c_kelvin = 30
k_temp_from_c = to_kelvin(c_kelvin, 'C')
print(f"{c_kelvin}°C 等於 {k_temp_from_c} K")

# 範例 2:將華氏溫度轉換為克氏溫度
f_kelvin = 86
k_temp_from_f = to_kelvin(f_kelvin, 'F')
print(f"{f_kelvin}°F 等於 {k_temp_from_f} K")
def to_kelvin(temp: float, unit: str) -> float: """將攝氏(Celsius)或華氏(Fahrenheit)溫度轉換為絕對溫度克氏(Kelvin)。 Args: temp (float): 欲轉換的原始溫度數值(支援整數與浮點數)。 unit (str): 原始溫度的單位,必須為 'C'(攝氏)或 'F'(華氏),大小寫不限。 Returns: float: 轉換後的克氏溫度,預設四捨五入保留至小數點後兩位。 Raises: ValueError: 當傳入不支援的單位字串(非 C 或 F)時觸發。 """ # 將輸入的單位字串強制轉為大寫,以同時相容小寫輸入(例如 'c' 轉為 'C') unit = unit.upper() # 情況一:如果原始單位是攝氏 (C) if unit == 'C': # 攝氏轉克氏公式:K = C + 273.15 # 使用 round() 函式避免 Python 浮點數二進位運算產生的微小誤差(例如 0.1+0.2!=0.3 的問題) return round(temp + 273.15, 2) # 情況二:如果原始單位是華氏 (F) elif unit == 'F': # 華氏轉克氏公式:K = (F - 32) * (5/9) + 273.15 # 先將華氏轉為攝氏,再加上 273.15 得到克氏溫度 return round((temp - 32) * 5 / 9 + 273.15, 2) # 情況三:若使用者輸入了 C 或 F 以外的無效單位(例如 'K'、'XYZ') else: # 拋出數值錯誤異常,明確告知使用者目前僅支援 'C' 或 'F' raise ValueError(f"錯誤:不支援的溫度單位 '{unit}',請輸入 'C' 或 'F'") # ============================================================================== # 演示轉換函數的使用 # ============================================================================== # 【範例 1:將攝氏溫度轉換為克氏溫度】 c_kelvin = 30 # 定義一個攝氏溫度變數,數值為 30 k_temp_from_c = to_kelvin(c_kelvin, 'C') # 呼叫函式,傳入 30 與單位 'C',並接收回傳的克氏溫度 print(f"{c_kelvin}°C 等於 {k_temp_from_c} K") # 使用 f-string 格式化字串,將轉換結果印出到控制台 # 【範例 2:將華氏溫度轉換為克氏溫度】 f_kelvin = 86 # 定義一個華氏溫度變數,數值為 86 k_temp_from_f = to_kelvin(f_kelvin, 'F') # 呼叫函式,傳入 86 與單位 'F',並接收回傳的克氏溫度 print(f"{f_kelvin}°F 等於 {k_temp_from_f} K") # 使用 f-string 格式化字串,將轉換結果印出到控制台

留言