day9作业

今日作业:
#1、编写文件copy工具
path1 = input('请输入你想复制的文件完整路径:')
path2 = input('请输入你想放置文件的路径:')
with open(r'%s'%(path1),mode='rb') as f1,\
	open(r'%s'%(path2),mode='wb',)as f2:
	for i in f1:
		f2.write(i)


#2、编写简单购物车程序,自己分析逻辑,完成编程:
    1、先要求用户注册
    2、注册完成后,可以登录
    3、登录成功后,从文件中读取商品信息(名字、价钱)展示给用户
    4、用户可以选择要购买的商品和购买的个数

    选做:(需要预习一下文件的修改知识点,https://www.cnblogs.com/linhaifeng/articles/5984922.html#_label5)
        1、注册的时候需要输入自己的金额
        2、用户选择购买商品后,减掉余额

        3、其他逻辑自己任意加,想不清楚逻辑就去看看别人的购物车,开始阶段,逻辑无所谓完美,多思考就好
            编程的逻辑就是人类的逻辑,多锻炼一下自己分析问题的逻辑
suc = False
money = 0
car = {}
def zcdl():
	sign = True
	while sign:
		msg = """
	0 退出
	1 登录
	2 注册
	"""
		print(msg)
		cmd = input('请输入命令编号>>: ').strip()
		if not cmd.isdigit():
			print('必须输入命令编号的数字,傻叉')
			continue
		if cmd == '0':
			break
		elif cmd == '1':
			# 1.设置账号密码及黑名单文件,获取账号密码,黑名单(只有用户名)
			lst_user = []
			lst_psw = []
			lst_black = []
			# 先获取账户名密码和黑名单
			with open('user.txt', mode='r+', encoding='utf-8') as fp1, open(
					'black.txt', mode='r+', encoding='utf-8') as fp2:
				res1 = fp1.readlines()
				res2 = fp2.readlines()
				for i in res1:
					user, psw = i.strip('\n\ufeff').split(':')
					lst_user.append(user)
					lst_psw.append(psw)
				for i in res2:
					black = i.strip('\n\ufeff')
					lst_black.append(black)
				user = input('请输入用户名:').strip()
				# 登录黑名单情况先排除
				if user in lst_black:
					print('该账户被锁定')
				elif user in lst_user and user not in lst_black:
					for i in range(3):
						psw = input('请输入密码:').strip()
						if psw == lst_psw[lst_user.index(user)]:
							print('登录成功')
							sign = False
							global suc
							suc = True
							break
						else:
							print('密码错误,请重新输入')
					else:
						# for循环完了还没登录上,密码错了3次,执行else操作,将用户名丢进黑名单
						fp2.write(user + '\n')
						print('密码错误3次,账号已锁定')
				else:
					print('用户名错误')
		elif cmd == '2':
			with open('user.txt', mode='r+', encoding='utf-8') as f:
				res = f.readlines()
				lst1 = []
				lst2 = []
				for i in res:
					x, y = i.strip('\n\ufeff').split(':')
					lst1.append(x)
					lst2.append(y)
				while True:
					name = input('请输入用户名:').strip()
					if name in lst1:
						print('已有该用户名,请重新输入')
					elif name == 'q':
						break
					else:
						psw1 = input('请输入密码:').strip()
						psw2 = input('请确认密码:').strip()
						if psw1 == psw2:
							f.write('%s:%s\n' % (name, psw1))
							print('注册成功')
							sign = False
							break
						else:
							print('两次密码不一致,请重新输入')
		else:
			print('输入的命令不存在')
def mon():
	while suc:
		num = input('请输入充值金额:').strip()
		if num.isdecimal():
			num = int(num)
			global money
			money += num
			break
		else:
			print('请输入数字')
#读取商品信息,选择购买商品及个数
def car():
	with open('goods_info.txt',mode='r+',encoding='utf-8') as f:
		res = f.readlines()
		lst=[]
		print('序号' + '{:^15}'.format('商品名') + '价格')
		for i in res:
			name,price = i.strip().split(':')
			j = (res.index(i)+1,name,price)
			lst.append(j)
			print('{}'.format(j[0])+'{:^20}'.format(j[1])+'{}'.format(j[2]))
		while True:
			name = input('请输入需要购买的商品序号:').strip()
			if name.isdecimal():
				if 0<int(name)<=len(res)+1:
					num = input('请输入需要购买的个数:').strip()
					if num.isdecimal():
						print('买{}个{}'.format(num,lst[int(name)-1][1]))
					else:
						print('请输入正确的个数')
				else:
					print('无此序列号')
			else:
				print('请输入正确序列号')



def func():
#	#注册登录程序
	zcdl()
# 	#充值金额
	mon()
	car()
# 	pass
func()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值