python3-购物车程序

需求:

  • 启动程序后,让用户输入工资,然后打印商品列表
  • 允许用户根据商品编号购买商品
  • 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
  • 可随时退出,退出时,打印已购买商品和余额

代码实现:

# 定义商品列表
List_of_goods = [
    ("Computer", 3500),
    ("Bicycle", 800),
    ("Jhs python", 90),
    ("Robot", 12000),
    ("shoes", 50),
    ("Hamburger", 15),
]

# 定义一个空购物车
Shopping_list = []

# 输入你的工资-money
MyMoney = input("input yours wages: ")

# 判断输入的字符串是否为数字
if MyMoney.isdigit():
	
	# 如果是数字,转换成int类型
    MyMoney = int(MyMoney)
    
    # 定义一个while死循环
    while 1:
	
		# 列出商品列表中的下标,当商品编号使用
        for index, x in enumerate(List_of_goods):
		
			# 打印商品下标对应的商品
            print(index, x)
        
        # 请用户输入商品编号,就是上面的商品对应的下标
        count = input("Please enter the commodity number: ")
        
        # 判断输入的商品编号是否是数字
        if count.isdigit():
        	
        	# 是数字转换为int类型
            count = int(count)

			# 判断商品列表中编号是否存在
            if count < len(List_of_goods) and count >=0:
            	
            	# 通过下标取出商品
                p_subscript = List_of_goods[count]
				
				# 买得起   价格小于输入的工资
                if p_subscript[1] <= MyMoney:
	
					# 加到购物车列表
                    Shopping_list.append(p_subscript)

					# 扣钱
                    MyMoney -= p_subscript[1]
                    print("Added %s into shopping cart,your current balance is %s" % (p_subscript, MyMoney))
                
                # 买不起,商品价格大于工资     
                else:

				# 返回结果
                    print("Your balance is only %s, and buy a wool." % MyMoney)

			# 如果超出商品个数,则打印商品不存在
            else:
                print("The goods you entered %d do not exist." % count)

		# q退出,打印购买的整个商品
        elif count == "q":
            print("------- shopping list -------")
            for x in Shopping_list:
                print(x)
            print("Your current balance: ", MyMoney)
            exit()
           
        # 如果输入非数字,及q,提示无效选项
        else:
            print("invalid option")

你可能感兴趣的:(python3基础)