购物车程序

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

# Author: Mr.Xue
# 2019.10.21

shop_list = [['apple', 100], ['banana', 100], ['milk', 200], ['water', 100], ['iphone', 4000]]
buy_list = []
salary = input("input you salary:")
while not salary.isdigit(): #是否是一个整数
	salary = input("input you salary:")
else:
	salary = int(salary)	
while True:
	# i = 1
	# for x in shop_list:
		# print(i, x)
		# i += 1
	for index, item in enumerate(shop_list): # enumerate使列表的下标可以被取到
		print(index+1, item)	
	num = input("input which one you want buy: ")
	#print(shop_list[int(num)-1])
	if not num.isdigit():
		if num == 'q':
			print('you have bought:')
			for x in buy_list:
				print(x)
			print('your balance have left: ', salary)
			break
		else:
			print('please input "q" or num...')	
	else:
		if int(num) <= len(shop_list) and int(num) > 0:
			if salary < int(shop_list[int(num)-1][1]):
				print("your balance is not enough...")
			else:		
				buy_list.append(shop_list[int(num)-1])
				#print(shop_list[int(num)-1], buy_list)
				salary -= int(shop_list[int(num)-1][1])
				print('you have buy %s, and you balance have left \033[31;1m%d\033[0m' % (shop_list[int(num)-1][0], salary))
		else:
			print('the thing is not exit...')

优化需求:

  • 用户入口:
    1、商品信息存在文件里
    2、已购商品,余额记录
  • 商家入口:
    可以添加商品,修改商品价格
#用户入口
# Author: Mr.Xue
# 2019.10.21

import ast

#shop_list = [['apple', 100], ['banana', 100], ['milk', 200], ['water', 100], ['iphone', 4000]]
thing_file = 'thing.txt'
buy_file = 'buylist_salary.txt'
buy_list = []
salary_list = []
salary = ''

thing_f = open(thing_file, 'r')
thing_info = thing_f.read()
thing_info_list = ast.literal_eval(thing_info)
thing_f.close()

buy_f = open(buy_file, 'r')
buy_info = buy_f.read()

	
if buy_info == '':
	salary = input("input you salary:")
else:
	buy_list = ast.literal_eval(buy_info)
	buy_f.close()
	salary = buy_list[0][1]
	
while not salary.isdigit():
	salary = input("input you salary:")
else:
	salary = int(salary)
		
while True:
	# i = 1
	# for x in shop_list:
		# print(i, x)
		# i += 1
	for index, item in enumerate(thing_info_list):
		print(index+1, item)	
	num = input("input which one you want buy: ")
	#print(shop_list[int(num)-1])
	if not num.isdigit():
		if num == 'q':
			print('you have bought:')
			for x in buy_list:
				print(x)
			print('your balance have left: ', salary)
			salary_list.append('salary')
			salary_list.append(str(salary))
			buy_list.insert(0, salary_list)
			buy_list.append([''])
			buy_f = open(buy_file, 'w')
			buy_f.write(str(buy_list))
			buy_f.close()
			break
		else:
			print('please input "q" or num...')	
	else:
		if int(num) <= len(thing_info_list) and int(num) > 0:
			if salary < int(thing_info_list[int(num)-1][1]):
				print("your balance is not enough...")
			else:		
				buy_list.append(thing_info_list[int(num)-1])
				#print(shop_list[int(num)-1], buy_list)
				salary -= int(thing_info_list[int(num)-1][1])
				print('you have buy %s, and you balance have left \033[31;1m%d\033[0m' % (thing_info_list[int(num)-1][0], salary))
		else:
			print('the thing is not exit...')
#商家入口
# Author: Mr.Xue
# 2019.10.21

import ast

caozuo = ['modify', 'delete', 'insert']
file_name = 'thing.txt'

f = open(file_name, 'r+')
info = f.read()
info_list = ast.literal_eval(info)
f.close()

while True:
	i = 1
	for x in caozuo:
		print(i, x)
		i += 1
	choice = input('input your choice(1-3): ')	
	while True:
		if choice.isdigit():
			if int(choice) == 1: # modify
				for j, x in enumerate(info_list):
					print('\t', j+1, x)
				choice2 = input('\tinput which one you want modify: ')
				if choice2.isdigit():
					modify_price = int(input('\tinput the modify price: '))
					info_list[int(choice2)-1][1] = modify_price
				elif choice2 == 'q':
					break	
				else:
					print('\tInvalid input...')	
			elif int(choice) == 2: # delete
				for j, x in enumerate(info_list):
					print('\t', j+1, x)
				choice3 = input('\tinput which one you want delete: ')
				if choice3.isdigit():
					del info_list[int(choice3)-1]
				elif choice3 == 'q':
					break
				else:
					print('\tInvalid input...')		
			elif int(choice) == 3: # insert
				thing_name = input("\tinput the thing's name you want insert: ")
				if thing_name == 'q':
					break
				thing_price = int(input("\tinput the thing's price: "))
				list1 = []
				list1.append(thing_name)
				list1.append(thing_price)
				info_list.append(list1)
			else:	
				print('Invalid value...')
		elif choice == 'q':
			f = open(file_name, 'r+')
			f.write(str(info_list))
			f.close()
			print('you choice exit...')
			exit()
		else:
			print('please input digit...')				
#buylist_salary.txt
[['salary', '4500'], ['salary', '8500'], ['apple', 200], ['banana', 100], ['milk', 200], [''], ['iphone', 4000], ['']]
#thing.txt
[['apple', 200], ['banana', 100], ['milk', 200], ['water', 100], ['iphone', 4000]]

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值