示例成品 · 平台演示,按左边这组点选真跑出来的
可直接发群的版本如下:
```python
def calculate_discount(price, discount_rate):
"""
计算折后价格。
参数:
price: 原价,不能为负数。
discount_rate: 折扣率,不能为负数,用小数表示。
例如 0.2 表示打 8 折(减掉 20%)。
0 表示不打折,1 表示价格变为 0。
返回:
折后价格 = 原价 × (1 - 折扣率)
异常:
ValueError: 当价格或折扣率为负数时抛出。
"""
# 价格和折扣率不能为负,否则业务含义不成立
if price < 0 or discount_rate < 0:
raise ValueError('价格和折扣率不能为负')
# 原价减去折扣金额,就是实际要付的钱
return price * (1 - discount_rate)
if __name__ == '__main__':
# 简单自测:100 元,8 折,应该输出 80.0
print(calculate_discount(100, 0.2)) # 80.0
```
补充说明(可直接发群):
- 这个函数核心公式就是:`折后价 = 原价 × (1 - 折扣率)`。
- 容易绕的地方是折扣率用小数:`0.2` 不是“打 0.2 折”,而是“减价 20%,实付 80%”。
- 当前只拦截负数,如果业务不允许 `discount_rate > 1`(会出现负价格),可以自己再加一行判断。
点左边「开工 · 直接出成品」,出一份你自己的版本(文字免费)