一、實現華氏溫度與攝氏溫度的轉換
描述: 溫度的刻畫有兩個不同體系:攝氏度(Celsius)和華氏度(Fahrenheit)。
請編寫程序將用戶輸入華氏度轉換爲攝氏度,或將輸入的攝氏度轉換爲華氏度。
轉換算法如下:(C表示攝氏度、F表示華氏度)
C = ( F - 32 ) / 1.8
F = C * 1.8 + 32
要求如下
(1) 輸入輸出的攝氏度可採用大小寫字母C結尾,溫度可以是整數或小數,如:12.34C指攝氏度12.34度;
(2) 輸入輸出的華氏度可採用大小寫字母F結尾,溫度可以是整數或小數,如:87.65F指攝氏度87.65度;
(3) 輸出保留小數點後兩位,輸入格式錯誤時,輸出提示:輸入格式錯誤;
(4) 使用input()獲得測試用例輸入時,不要增加提示字符串。
輸入
示例1:12.34C
示例2:87.65F
輸出
示例1:54.21F
示例2:30.92C
代碼:
TempStr = input("請輸入帶有符號的溫度值:") ##賦值給字符串
if TempStr[-1] in ['F','f']: ##TempStr[-1]指的是字符串最後一個元素。
C = (eval(TempStr[0:-1]) - 32)/1.8 ##eval() 函數用來執行一個字符串表達式,並返回表達式的值。
print("轉換後的溫度爲{:.2f}C".format(C)) ##format格式化輸出,取代了"%"
elif TempStr[-1] in ['C','c']:
F = 1.8 * (eval(TempStr[0:-1])) + 32
print("轉換後的溫度爲{:.2f}F".format(F))
else:
print("輸入格式有誤")
執行結果
請輸入帶有符號的溫度值:85f
轉換後的溫度爲29.44C
關於eval函數的簡單用法:
拓展示例
要求如下:
(1) 輸入輸出的攝氏度採用大寫字母C開頭,溫度可以是整數或小數,如:C12.34指攝氏度12.34度;
(2) 輸入輸出的華氏度採用大寫字母F開頭,溫度可以是整數或小數,如:F87.65指攝氏度87.65度;
(3) 不考慮異常輸入的問題,輸出保留小數點後兩位;
(4) 使用input()獲得測試用例輸入時,不要增加提示字符串。
輸入
示例1:C12.34
示例2:F87.65
輸出
示例1:F54.21
示例2:C30.92
TempStr = input()
if TempStr[0] in ["F","f"]:
C = (eval(TempStr[1:]) - 32)/1.8
print("C{:.2f}".format(C))
elif TempStr[0] in ["C", "c"]:
F = 1.8 * eval(TempStr[1:]) + 32 # [1:]指的是第二個元素到末尾
print("F{:.2f}".format(F))
else:
print("輸入格式錯誤")