1. 程式人生 > 其它 >第13期—溫度轉化

第13期—溫度轉化

1 問題描述

溫度的刻畫有兩個不同體系:攝氏度(Celsius)和華氏度(Fahrenheit)
攝氏度:中國等世界大多數國家使用
以1標準大氣壓下水的結冰點為0度,沸點為100度,將溫度進行等分刻畫
華氏度:美國、英國等國家使用
以1標準大氣壓下水的結冰點為32度,沸點為212度,將溫度進行等分刻畫​

根據華氏和攝氏溫度定義,轉換演算法如下:(C表示攝氏度、F表示華氏度)
C = ( F - 32 ) / 1.8
F = C * 1.8 + 32

請用Python編寫程式將使用者輸入的溫度進行轉換~

2 解題思路

  • 首先請使用者輸入帶華氏或攝氏標誌的溫度值
  • 然後根據溫度標誌選擇適當的溫度轉換演算法
  • 最後輸出轉換後的溫度

3 解題方法

num = input("請輸入帶有符號的溫度值: ")

if num[-1] in ['C', 'c']:
    f = 1.8 * float(num[0:-1]) + 32
    print(f"轉換後的溫度是{f:0.2f}華氏度")
elif num[-1] in ['F', 'f']:
    c = (float(num[0:-1]) - 32) / 1.8
    print(f"轉換後的溫度是{c:0.2f}攝氏度")
else:
    print("輸入格式錯誤")
View Code

第1行:定義變數num,用input函式獲取使用者輸入的帶有符號的溫度值
第3-5行:通過索引獲取使用者輸入的最後一位字元,用in判斷該字元是否在列表['C', 'c']中,即判斷使用者輸入的是不是攝氏溫度。若使用者輸入的是攝氏溫度,則通過溫度轉換公式將攝氏溫度轉換為華氏溫度,用print函式輸出執行結果,保留小數點後兩位。
第6-8行:用in判斷使用者輸入的最後一位字元是否在列表['F', 'f']中,即判斷使用者輸入的是不是華氏溫度。若使用者輸入的是華氏溫度,則通過溫度轉換公式將華氏溫度轉換為攝氏溫度,用print函式輸出執行結果。
第9-10行:否則,用print函式列印“輸入格式錯誤”

  • 由於input()函式返回的資料型別為字串型,所以第4行需要用float函式將其轉化為浮點數型別再進行計算
  • 使用者輸入的字串是有序的排列,如使用者輸入34C,則第一個字元是3,第二個是4,第三個是C
  • 在 Python 中,字串中的字元可以通過索引來提取,從前往後索引時,下標從 0 開始,從後往前索引時,下標從 -1 開始。因此num[0:-1]表示取從前往後的第一個字元到從後往前的第一個字元,但不包括從後往前的第一個字元(因為索引不包含尾下標的元素),如使用者輸入34C,獲取的元素是34