元组
- 一旦创建不能再修改,所以又叫只读列表
- 写法: ( )
- 只有两个方法
- count
- index
练习
1 ''' 2 练习 3 需求: 4 1. 启动程序后,让用户输入工资,然后打印商品列表 5 2. 允许用户根据商品编号购买商品 6 3. 用户选择商品后,检测余额是否够, 够就直接扣款, 不够就提醒 7 4. 可随时退出, 退出时,打印已购买商品和余额 8 9 10 分析: 11 1. 让用户输入salary 12 2. 商品列表 13 3. 开始让用户购买, for 循环, 已购买商品加入已购买商品列表 14 a. 输入商品名, salary和价格相比, 大于则可以购买,并添加已购买商品列表;小于则返回购买力不足. 15 b. 上述进程加入循环中. 并确定退出标志. 16 5. 循环结束后,打印已购买商品列表 17 18 Note:上述方法暂时无法实现, 因为list没法像Java的list一样,有key/value组合, 无法根据key去匹配.所以暂时通过索引让用户去选择商品而不是商品名. 19 ''' 20 21 '''' 22 prod_list = [ 23 ("iphone", 5000), 24 ("Mac Pro", 12000), 25 ("Starbuck", 31), 26 ("alex", 81), 27 ("Bike", 800)] 28 29 shopping_list = [] 30 31 salary = input("salary: ") 32 if salary.isdigit(): 33 salary = int(salary) 34 while True: 35 36 取得商品及其索引 方法1: 37 for item in prod_list: 38 print(prod_list.index(item),item) 39 break 40 41 方法2: 42 for index, item in enumerate(prod_list) 43 print(index, item) 44 break 45 46 for index, item in enumerate(prod_list): 47 print(index, item) 48 49 user_choice = input("选择要买的商品: ") 50 if user_choice == "quit": 51 print("已购买商品清单:", shopping_list) 52 break 53 else: 54 if user_choice.isdigit(): 55 user_choice = int(user_choice) 56 if (user_choice <= len(prod_list) - 1) & (user_choice >= 0): 57 p_item = prod_list[user_choice] 58 if salary >= p_item[1]: 59 shopping_list.append(p_item) 60 salary = salary - p_item[1] 61 print("已购买商品清单:", shopping_list) 62 print("========================") 63 else: 64 print("余额不足") 65 else: 66 print("商品不存在") 67 else: 68 print("请选择商品") 69 70 ''' 71 72 73 prod_list = [ 74 ("iphone", 5000), 75 ("Mac Pro", 12000), 76 ("Starbuck", 31), 77 ("alex", 81), 78 ("Bike", 800)] 79 80 shopping_list = [] 81 82 salary = input("salary: ") 83 if salary.isdigit(): 84 salary = int(salary) 85 while True: 86 for index, item in enumerate(prod_list): 87 print(index,item) 88 89 user_choice = input("要买什么? ") 90 if user_choice.isdigit(): 91 user_choice = int(user_choice) 92 if len(prod_list) > user_choice >= 0: 93 p_item = prod_list[user_choice] 94 if salary>=p_item[1]: #买得起 95 shopping_list.append(p_item) 96 salary-=p_item[1] 97 print("Added %s into shopping cart, your current balance is 33[31;1m%s 33[0m" %(p_item, salary)) 98 ''' 99 33[31;1m%s 33[0m 100 这一段是把%s显示成红色. 31代表字显示成红色; 41代表背景成红色. 见下例. 101 ''' 102 else: 103 print("