1. 程式人生 > 實用技巧 >006 例項1-溫度轉換

006 例項1-溫度轉換

目錄

一、"溫度轉換"問題分析

1.1 溫度轉換

溫度刻畫的兩種不同體系

  • 攝氏度:中國等世界大多數國家使用
    • 以1標準大氣壓下水的結冰點為0度,沸點為100度,將溫度進行等分刻畫
  • 華氏度:美國、英國等國家使用
    • 以1標準大氣壓下水的結冰點為32度,沸點為212度,將溫度進行等分刻畫

1.2 需求分析

兩種溫度體系的轉換

  • 攝氏度轉換為華氏度
  • 華氏度轉換為攝氏度

1.3 問題分析

該問題中計算部分的理解和確定

  • 理解1:直接將溫度值進行轉換
  • 理解2:將溫度資訊釋出的聲音或影象形式進行理解和轉換
  • 理解3:監控溫度資訊釋出渠道,實時獲取並轉換溫度值

1.3.1 分析問題

  • 採用 理解1:直接將溫度值進行轉換
    • 溫度數值需要標明溫度體系,即攝氏度或華氏度
    • 轉換後也需要給出溫度體系

1.3.2 劃分邊界

  • 輸入:帶華氏或攝氏標誌的溫度值
  • 處理:根據溫度標誌選擇適當的溫度轉換演算法
  • 輸出:帶攝氏或華氏標誌的溫度值

1.3.3 輸入輸出格式設計

標識放在溫度最後,F表示華氏度,C表示攝氏度

82F表示華氏82度,28C表示攝氏28度

1.3.4 設計演算法

根據華氏和攝氏溫度定義,利用轉換公式如下:

C=(F32)/1.8F=C1.8+32C=(F–32)/1.8F=C∗1.8+32

其中, C表示攝氏溫度, F表示華氏溫度

二、"溫度轉換"例項編寫

# TempConvert.py

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

if TempStr[-1] in ['F', 'f']:
    C = (eval(TempStr[0:-1]) - 32) / 1.8
    print(f"轉換後的溫度是{C:.2f}C")
elif TempStr[-1
] in ['C', 'c']: F = 1.8 * eval(TempStr[0:-1]) + 32 print(f"轉換後的溫度是{F:.2f}F") else: print("輸入格式錯誤")

編寫上述程式碼,並儲存為TempConvert.py檔案

# TempConvert.py

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

if TempStr[-1] in ['F', 'f']:
    C = (eval(TempStr[0:-1]) - 32) / 1.8
    print(f"轉換後的溫度是{C:.2f}C")
elif TempStr[-1] in ['C', 'c']:
    F = 1.8 * eval(TempStr[0:-1]) + 32
    print(f"轉換後的溫度是{F:.2f}F")
else:
    print("輸入格式錯誤")
請輸入帶有符號的溫度值: 12f
轉換後的溫度是-11.11C
# TempConvert.py

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

if TempStr[-1] in ['F', 'f']:
    C = (eval(TempStr[0:-1]) - 32) / 1.8
    print(f"轉換後的溫度是{C:.2f}C")
elif TempStr[-1] in ['C', 'c']:
    F = 1.8 * eval(TempStr[0:-1]) + 32
    print(f"轉換後的溫度是{F:.2f}F")
else:
    print("輸入格式錯誤")
請輸入帶有符號的溫度值: 12c
轉換後的溫度是53.60F

三、"溫度轉換"舉一反三

3.1 Python語法元素理解

  • 溫度轉換程式共10行程式碼,但包含很多語法元素
  • 清楚理解這10行程式碼能夠快速入門Python語言
  • 參考框架結構、逐行分析、逐詞理解

3.2 輸入輸出的改變

  • 溫度數值與溫度標識之間關係的設計可以改變
  • 標識改變放在溫度數值之前:C82, F28
  • 標識字元改變為多個字元:82Ce、28Fa

3.3 計算問題的擴充套件

  • 溫度轉換問題是各類轉換問題的代表性問題
  • 貨幣轉換、長度轉換、重量轉換、面積轉換…
  • 問題不同,但程式程式碼相似