输出商品列表(python题目)

输出商品列表,用户输入序号,显示用户选中的商品

"""

商品列表:

goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998}
]

要求:
1:页面显示 序号 + 商品名称 + 商品价格,如:
      1 电脑 1999
      2 鼠标 10
      ...
for i in goods:
    for num in range(1, len(goods) + 1):
        print(str(num)+" "+i.get("name") + " " + str(i.get("price")))
1 电脑 1999
2 电脑 1999
3 电脑 1999
4 电脑 1999
1 鼠标 10
2 鼠标 10
3 鼠标 10
4 鼠标 10
1 游艇 20
2 游艇 20
3 游艇 20
4 游艇 20
1 美女 998
2 美女 998
3 美女 998
4 美女 998

这个结果明显不对。要怎么改呢?

阅读 4.3k
2 个回答

如此这般即可

for i,v in zip(range(1,len(goods)+1),goods):
    print(i,v['name'],v['price'])

闲着没啥事写了下,感觉像是刚回到接触Python时
只是打印商品信息

for i in range(1,len(goods)+1):
    print(f"{i} {goods[i-1]['name']} {goods[i-1]['price']}")

结果

1 电脑 1999
2 鼠标 10
3 游艇 20
4 美女 998

完整版实现

goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998}
]

# 展示所有商品信息
def showGoods():
    print("=============商品信息============")
    for i in range(1,len(goods)+1):
        print(f"{i} {goods[i-1]['name']} {goods[i-1]['price']}")

# 打印选择的商品信息
def printSelectGood():
    select_ids = [i for i in range(1,len(goods)+1)]
    while True:
        i = int(input("请输入选择的商品id:"))
        if(i not in select_ids):
            print("输入的id有误,请重新输入")
            continue
        else:
            print(f"{i} {goods[i-1]['name']} {goods[i-1]['price']}")

if __name__ == '__main__':
    showGoods()
    printSelectGood()

结果

=============商品信息============
1 电脑 1999
2 鼠标 10
3 游艇 20
4 美女 998
请输入选择的商品id:5
输入的id有误,请重新输入
请输入选择的商品id:1
1 电脑 1999
请输入选择的商品id:
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏