一家咖啡店在顾客每次买咖啡时都在他们的卡上打孔。在这张卡上打满8个孔后,顾客可以用这张卡免费获得第9杯咖啡。在这个练习中,您将使用getCost函数把它转化为一个简单的计算,看看在考虑买8送1的规则下,给定数量的咖啡要花多少钱。
需求分析:
编写一个名为getCostofCoffee()的函数,它有两个参数number数量和price(单价)。函数返回咖啡订单的总成本。然而,这并不是成本和数量的简单乘法,因为这家咖啡店有一项优惠,你每买八杯咖啡就可以得到一杯免费咖啡。例如,买八杯2.5元一杯的咖啡要花20元(或8 × 2.5)。但买九杯咖啡也要花20元,因为前八杯咖啡是免费的。买十杯咖啡的计算方法如下:前八杯20元,第九杯免费,第十杯2.50元,总共22.50元。
assert(断言)用于判断一个表达式,在表达式条件为 false 的时候触发异常,停止程序运行。如果以下断言语句条件都为True,您的解决方案就是正确的:
assert getCostOfCoffee(7, 2.50) == 17.50
assert getCostOfCoffee(8, 2.50) == 20
assert getCostOfCoffee(9, 2.50) == 20
assert getCostOfCoffee(10, 2.50) == 22.50
方案思路:
思路一:计数。满8跳过,计数总数*单价
思路二:模型。免费杯数 = 总杯数 // 9
收费杯数 = 总杯数 – 免费杯数
结果 = 收费杯数 * 单价
方案模板
def getCostOfCoffee(number, price):
pass
return 0
assert getCostOfCoffee(7, 2.50) == 17.50
assert getCostOfCoffee(8, 2.50) == 20
assert getCostOfCoffee(9, 2.50) == 20
assert getCostOfCoffee(10, 2.50) == 22.50