Kate and Michael want to buy a pizza and share it. Depending on the price of the pizza, they are going to divide the costs:
- If the pizza is less than €5,- Michael invites Kate, so Michael pays the full price.
- Otherwise Kate will contribute 1/3 of the price, but no more than €10 (she’s broke :-) and Michael pays the rest.
How much is Michael going to pay? Calculate the amount with two decimals, if necessary.
My solution:
def michael_pays(costs):
if costs < 5:
return round(costs,2)
else:
return round( costs - min(costs/3,10), 2)
Best solution:
def michael_pays(cost):
return round(cost if cost < 5 else max(cost*2/3, cost-10), 2)
Tips:
- round()函数用法:返回浮点数x的四舍五入值。
round( x [, n] )
round(80.23456, 2) : 80.23
round(100.000056, 3) : 100.0
round(-100.000056, 3) : -100.0
- if-else 一行写法