python题库 No.18 购物小票
聪聪去超市购物,她的购物信息如列表goods所示。
请定义一个函数showGoods(),传入参数x,帮他遍历列表x,计算总价。
输出示例:
--- 商品信息 ---
1 面包 7 5
2 牛奶 3 10
3 香蕉 1 12
4 大米 2 98
本次购物总价为273元
答案:
goods = [
{"name": "面包", "mount": 7, "price": 5},
{"name": "牛奶", "mount": 3, "price": 10},
{"name": "香蕉", "mount": 1, "price": 12},
{"name": "大米", "mount": 2, "price": 98}
]
def showGoods(x):
price_goods = 0
price_all = 0
num_goods = len(x)
print("--- 商品信息 ---")
for i in range(num_goods):
print(i + 1, end = " ")
print(goods[i]["name"], end = " ")
print(goods[i]["mount"], end = " ")
print(goods[i]["price"])
price_goods = goods[i]["mount"] * goods[i]["price"]
price_all = price_all + price_goods
print(f"本次购物总价为{price_all}元")
showGoods(goods)
标准答案:

点评:
标准答案使用的代码行数较少,但语句稍复杂,将列表内嵌套的字典直接全部打印出来。
代码可读性一般。
- 实际的答案中用了字符串连接的方法,实现了空格不空行。
即print(goods[i]["name"], end = " ")这一句。 - 当print语句单独为一行时,输出会自动回车。
当print语句输出的字符串之间用逗号(,)连接时,输出的字符串之间会默认以空格拼接。
据此,本例中的打印语句可改写为
print("--- 商品信息 ---")
print(i + 1, goods[i]["name"], goods[i]["mount"], goods[i]["price"])

浙公网安备 33010602011771号