[Python3 練習] 001 溫度轉換1
阿新 • • 發佈:2019-02-03
abr 4.2 編寫程序 用戶 轉換 end 編寫 inpu 輸出
題目:溫度轉換 I
(1) 描述
- 溫度的刻畫有兩個不同體系:攝氏度 (Celsius) 和華氏度 (Fabrenheit)
- 請編寫程序將用戶輸入的華氏度轉換為攝氏度,或將輸入的攝氏度轉換為華氏度
- 轉換公式如下,C 表示攝氏度,F 表示華氏度????????????????????????????????????????????????????????????????????????????????????????????????
C = ( F - 32 ) / 1.8????????????????????????????????????????????????????????????????????????????????????????????????
F = C * 1.8 + 32???????????????????????????????????????????????????????????????????????????????????????????????
(2) 要求????????????????????????????????????????????????????????????????????????????????????????????
- 輸入輸出的攝氏度可用 C 的大小寫字母結尾,溫度可以是整數或小數,如:12.34C 指 12.34 攝氏度
- 輸入輸出的華氏度可用 F 的大小寫字母結尾,溫度可以是整數或小數,如:87.65F 指 87.65 華氏度
- 輸出保留小數點後兩位,輸入格式錯誤時,輸出提示:輸出格式錯誤???????????????????????????????????????????????????????????????????????????????????????????????
(3) 程序
# 我的解法 num = input("請輸入想轉換的溫度值(以 C/F 結尾):") if num.endswith(‘F‘) or num.endswith(‘f‘): F = float(num[:-1]) C = (F - 32) / 1.8 print("%4.2fC" % C) elif num.endswith(‘C‘) or num.endswith(‘c‘): C = float(num[:-1]) F = C * 1.8 + 32 print("%4.2fF" % F) else: print("輸入格式錯誤")
# 參考答案
#TempConvert.py
TempStr = input("請輸入帶有符號的溫度值: ")
if TempStr[-1] in [‘F‘, ‘f‘]:
C = (eval(TempStr[0:-1]) - 32)/1.8
print("轉換後的溫度是{:.2f}C".format(C))
elif TempStr[-1] in [‘C‘, ‘c‘]:
F = 1.8*eval(TempStr[0:-1]) + 32
print("轉換後的溫度是{:.2f}F".format(F))
else:
print("輸入格式錯誤")
(4) 小結
- 對比參考答案,我覺得至少有三點值得學習
- 用 in 判斷字符串末尾的方法
- 用 eval() 轉換字符串的方法
- 用 format() 格式化(我的 print 好象還在 C 裏沒拐出來)
題源:www.python123.io
[Python3 練習] 001 溫度轉換1