今日作业:
#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()
day9作业
最新推荐文章于 2020-08-31 21:19:34 发布