# 演示轉換函數的使用
# 範例 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 格式化字串,將轉換結果印出到控制台
留言
張貼留言