題解|ZeroJudge d051. 糟糕,我發燒了!

【題目】d051. 糟糕,我發燒了!

題解

d051.py
1
2
3
f=int(input())
c=(f-32)*5/9
print(f"{c:.3f}")

解說

本題簡單來說就是希望華氏溫標轉攝氏溫標。
提示:攝氏=(華氏-32)*5/9
所以我們可以寫出公式:

2
c=(f-32)*5/9

接著就是輸出格式的部分,
在看到題目說小數點以下三位,可能會很本能地想用round()
但是!請注意,假如使用round(),可能導致輸出結果並非固定到小數點後3位。
例如

1
2
x = 3.100000
print(round(x, 3))

輸出結果為

3.1

我們必須保證輸出結果必為顯示到小數點後3位。
因此我們今天採用f-string的寫法

3
print(f"{c:.3f}")

{c:.3f}的意義是:對於變數c,我希望我的輸出是到小數點後第3位
假如今天題目要求是輸出到小數點後第2位,則改成{c:.2f},依此類推…
這樣,即可保證輸出結果到小數點後第3位。

結語

以上就是本題題解,今天練習了f-string跟浮點數的輸出。
倘內容有誤或仍有疑問,歡迎在下方留言區留言!