代码改变世界

Python 元组

2018-04-11 21:02  钱先生  阅读(197)  评论(0编辑  收藏  举报

元组

  • 一旦创建不能再修改,所以又叫只读列表
  • 写法: ( )
  • 只有两个方法
    • 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 \033[31;1m%s\033[0m" %(p_item, salary))
 98                     '''
 99                     \033[31;1m%s\033[0m
100                     这一段是把%s显示成红色. 31代表字显示成红色; 41代表背景成红色. 见下例.
101                     '''
102                 else:
103                     print("\033[41;1m你的余额只剩[%s], 还买个毛线\033[0m" % salary)
104             else:
105                 print("商品不存在")
106         elif user_choice == "quit":
107             print("-------- shopping list -------------")
108             for p in shopping_list:
109                 print(p)
110             print("Your current balance: ", salary)
111             exit()  #退出
112         else:
113             print("请输入正确的商品索引")