买8送1

一家咖啡店在顾客每次买咖...

一家咖啡店在顾客每次买咖啡时都在他们的卡上打孔。在这张卡上打满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