共计 2331 个字符,预计需要花费 6 分钟才能阅读完成。
#encoding: utf-8
#练习
#用户数据库,管理员账号
users = [(0,'admin',20,12345)]
#提前存一些数据,便于模拟或者空 list 也可以
#users = [(0,'admin',20,12345),(1,'xiaoming',13,1373525235),(2,'wanger',27,6436347634734),(3,'zhangsan',47,1532552532)]
login_user = input('请输入管理员账号:')
login_passwd = input('请输入管理员密码:')
for user in users:
if user[1] == 'admin' and user[3] == 12345:
print('*** 登录成功 ***')
whileTrue:
opt = input('请输入操作 --- 添加用户 (add), 删除用户 (delete), 编辑用户 (edit), 查看用户 (list), 退出 (exit):')
## 添加用户
if opt == 'add':
#根据输入的字符串,使用 split,逗号分割成 list
users_txt = input('请输入(姓名,年龄,联系方式):')
nodes = users_txt.split(',')
iflen(nodes) == 3:
#判断输入元素是 3 个,就开始转换成元组,添加进 list
user_id = 0
#不断遍历找出 list 的中当前最大的 id,并赋值给 user_id
for a in users:
if user_id < a[0]:
user_id = a[0]
#比当前最大 id 的加 1,加上逗号使成为元组,加上 tuple 把 list 转换为元组,users.append((user_id + 1,) + tuple(nodes))
print('*** 用户:{0}, 添加成功!***'.format(nodes[0]))
else:
print('*** 输入错误!***')
## 删除用户
elif opt == 'delete' :
delete_id = int(input('请输入需要删除的用户 id:'))
existing_u = None
for delete_user in users:
if delete_user[0] == delete_id:
#如果有这个客户,就赋值给 existing_u
existing_u = delete_user
break
#如果不为 none 就删除,反之是 none 就没有这个客户
if existing_u:
users.remove(existing_u)
print('*** 用户:{0},已删除!***'.format(existing_u[1]))
else:
print('*** 没有这个用户!***')
## 编辑修改用户
elif opt == 'edit' :
edit_id = int(input('请输入需要修改编辑的用户 id:'))
exist_u = None
#用户当前索引
#index_u = -1
for edit_user in users:
if edit_id == edit_user[0]:
exist_u = edit_user
break
#r 如果用户存在
if exist_u:
#根据输入的字符串,使用 split,逗号分割成 list
users_txt = input('请输入(姓名,年龄,联系方式):')
nodes = users_txt.split(',')
iflen(nodes) == 3:
#直接赋值之前的 id
user_id = edit_id
#加上之前的 id,加上 tuple 把 list 转换为元组,users.append((user_id,) + tuple(nodes))
print('*** 修改前租户资料:{0}***'.format(exist_u))
#添加新用户后,删除旧的用户
users.remove(exist_u)
for user in users:
if edit_id == user[0]:
print('*** 修改后,新租户资料:{0}***'.format(user))
break
print('*** 用户:{0}, 修改成功!***'.format(nodes[0]))
else:
print('*** 输入错误!***')
else:
print('*** 用户不存在!***')
## 查看用户
elif opt == 'list':
#定义模版, 打印菜单栏
tpl_title = '|{0:^10s}|{1:^15s}|{2:^10s}|{3:^20s}|'
colums_title = ('ID','Name','Age','Tel')
title = tpl_title.format(colums_title[0],colums_title[1],colums_title[2],colums_title[3],)
#print(num = '|{0:^10s}|{1:^10s}|{2:^10s}|{3:^10s}|'.format('ID','Name','Age','Tel'))
#下划线,跟随 title 长度变化
splitline = '-'*len(title)
print(splitline)
#打印菜单栏
print(title)
#下划线
print(splitline)
#定义模版,中间客户信息模版
tpl_body = '|{0:^10}|{1:^15}|{2:^10}|{3:^20}|'
#遍历 list,把 list 里的信息按照模版打印
for i in users:
body = tpl_body.format(i[0],i[1],i[2],i[3])
print(body)
#下划线
print(splitline)
elif opt == 'exit':
break
else:
print('*** 请输入正确的命令!***')
break
正文完