題解|ZeroJudge d068. 該減肥了!

【題目】d068. 該減肥了!

題解

d068.py
1
2
w=int(input())
print(w-(w>50))

解說

這題的意思其實就是,顧客入店時的體重是否>50,是的話輸出就是原體重-1,否則輸出原體重
好,那在使用if的情況下,我們的程式也許會長得像這樣…

1
2
3
4
5
w=int(input())
if w>50:
print(w-1)
else:
print(w)

但今天題目提示區有提到,不用if,我們能解出本題嗎?

可以。

我們來看一下本題題解

d068.py
1
2
w=int(input())
print(w-(w>50))

當我們寫出w-(w>50)時,若w<=50,那這是False,而在Python中,False換成int型態時是0

1
print(int(False))

輸出為0

反之,若w>50,則為True,轉換為int時為1

1
print(int(True))

輸出為1

因此,我們可以利用此一性質,寫出本題
就安心寫下print(w-(w>50)),Python會自動將bool轉為int

結語

以上就是本題題解,本題除複習比較運算子,也練習了Python中TrueFalse轉換為整數10的特性,方便在運算中省略if
倘內容有誤或仍有疑問,歡迎在下方留言區留言!