列表使我们以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作。
定义一个列表:
menu = ["青椒肉丝", "糖醋鲤鱼", "红烧牛肉", "爆炒肥肠", "可乐鸡翅", "青椒炒辣椒", "番茄炒西红柿", "土豆炖马铃薯", "糖醋鲤鱼"] # 通过下标访问列表中的元素,下标从 0 开始 print(menu[0]) print(menu[3]) print(menu[-1]) print(menu[-3]) # 切片,取多个元素 print(menu[:5]) # 取第零个到第四个,左闭右开区间 print(menu[2:5]) # 取第二个到第四个 # 支持负数索引范围 print(menu[-5:-1]) # 取倒数第五个到倒数第二个 print(menu[-5:]) # 从倒数第五个取到最后一个 # 向列表中追加一个值 menu.append("什锦苏盘") # 扩展列表,可以把一个列表扩展到另一个列表里边 menu2 = ["卤煮咸鸭", "炒金丝", "烩银丝"] menu.extend(menu2) print(menu) # 按下标删除 del menu[6] # 按内容删除 menu.remove("糖醋鲤鱼") # 只删除找到的第一个 print(menu) # 如果想修改列表中的值,直接通过下标访问,重新赋值即可 menu[6] = "上汤娃娃菜" print(menu) # 向指定的位置插入值, 其后元素,顺延 menu.insert(2, "厨师长招牌菜") print(menu) # 统计某元素出现了几次 cc = menu.count("糖醋鲤鱼") print(cc) # 获取某元素的下标,只获取找到的第一个 cc = menu.index("糖醋鲤鱼") print(cc)
元组其实和列表差不多,也是存一组数据,只不过,元组一旦被创建,就不能修改,所以又叫只读列
表。
menu = ("青椒肉丝", "糖醋鲤鱼", "红烧牛肉", "爆炒肥肠", "可乐鸡翅", "青椒炒辣椒", "番茄炒西红柿", "土豆炖马铃薯", "糖醋鲤鱼") print(menu[0]) # menu 支持两个方法。count、index,完毕 print(menu.index("红烧牛肉")) print(menu.count("红烧牛肉")
程序练习:请写出以下购物车程序
- 启动程序后,让用户输入自己的工资,然后打印菜单列表(要打印编号和商品名,商品名从一开始
- 数)
- 允许用户根据商品编号购买商品
- 用户选择商品后,检测余额是否足够,足够就直接扣款,不够就提醒充值
- 可随时退出程序,退出时,打印已购买的商品和余。
salary = int(input("请输入你的工资>>>")) # 菜单 menu = [["上汤娃娃菜", 100], ["清蒸哈什蚂", 20], ["红牛烤羊肉串", 50], ["番茄炒西红柿", 26]] # 购物车 car_list = [] for i in menu: print("%d:" % (menu.index(i) + 1), "%s的价格是%d" % (i[0], i[1])) while True: product_num = input("请输入想购买的商品>>>") if product_num == "q": print("已购买的商品:", car_list) print("当前余额:", salary) print("结束程序") break product_num = int(product_num) # 取到用户想购买的商品:menu[product_num - 1] want_product = menu[product_num - 1] # 判断余额是否充足 if salary >= want_product[1]: # 购买成功 salary -= want_product[1] # 余额减去商品价格 car_list.append(want_product) else: print("余额不足请充值")