某电商平台根据用户的会员等级计算商品最终价格。等级与折扣率的对应关系存储在字典 discounts 中。为了保证程序在面对未知等级时不会报错,而是按原价(即不打折)处理,以下哪个选项是正确的?( ) def calculate_price(price, level): discounts = {"VIP": 0.8, "SVIP": 0.6} # 请补全代码 discount_rate = ________①________ return ________②________ final_price = calculate_price(100, "VIP") print(final_price)
A:① discounts.get(level, 1.0) ② price * discount_rate
B:① discounts[level] ② price * discount_rate
C:① discounts.get(level) ② price / discount_rate
D:① level in discounts ② price * (1 - discount_rate)
正确答案:A
答案解析
定义函数时需从字典中安全获取折扣率,避免键不存在时引发异常。使用 get 方法可指定默认值,在键不存在时返回该默认值。将获取的折扣率与原价相乘,得到最终价格。直接通过索引访问字典在键缺失时会抛出 KeyError。in 操作符返回布尔值,不能作为数值参与运算。除法不符合价格计算逻辑。表达式必须保证未知等级时按原价处理,即折扣率为 1.0 时结果等于原价。
试卷来源:202606 CCF-GESP编程能力等级认证Python四级真题