python基础(四)----列表、字典练习题
好友管理系统
请设计一个好友管理系统,每个功能都对应一个序号,用户可根据提示“请输入您的选项”选择序号执行相应的操作,包括:
(1)添加好友:用户根据提示“请输入要添加的好友:”输入要添加好友的姓名,添加后会提示“好友添加成功”。
(2)删除好友:用户根据提示“请输入删除好友姓名:”输入要删除好友的姓名,删除后提示“删除成功”。
(3)备注好友:用户根据提示“请输入要修改的好友姓名:”和“请输入修改后的好友姓名:”分别输入修改前和修改后的好友姓名,修改后会提示“备注成功”。
(4)展示好友:若用户还没有添加过好友,提示“好友列表为空”,否则返回每个好友的姓名。
(5)退出:关闭好友系统。
import numpy as np def add_demo(): """添加好友""" str_add = input("请输入要添加的名字:") list_load = np.load("list.npy") list1 = list_load.tolist() if str_add in list1: print("此好友已添加") else: list1.append(str_add) save_list(list1) print("添加成功") def del_demo(): """删除好友""" str_del = input("请输出需要删除的好友:") list_load = np.load("list.npy") list1 = list_load.tolist() if str_del in list1: list1.remove(str_del) save_list(list1) print("删除成功") else: print("没有此好友") def remakes_demo(): """修改备注""" str_remakes1 = input("请输出需要备注的姓名:") str_remakes2 = input("请输出需要备注名称:") list_load = np.load("list.npy") list1 = list_load.tolist() for i in list1: if str_remakes1 == i: list1.remove(i) list1.append(str_remakes2) print("备注成功") save_list(list1) print("没有此好友,请先添加好友") def exhibition_demo(): """展示好友""" list_load = np.load("list.npy") list1 = list_load.tolist() print(list1) def save_list(list1): """保存数据""" list_save = np.array(list1) np.save("list.npy", list_save) flag = 1 while flag == 1: print("------1.添加好友 2.删除好友 3.备注好友 4.展示好友 5.退 出------") try: option = int(input("请输入您的选项:")) if option == 1: add_demo() elif option == 2: del_demo() elif option == 3: remakes_demo() elif option == 4: exhibition_demo() elif option == 5: flag = 0 print("thank") else: print("输入有误") except ValueError: print("输入有误") 作者:是远道呀- https://www.bilibili.com/read/cv14649793/ 出处:bilibili
登录验证系统:
要求如下:
完成登入系统
=====登入系统=====
1.登入
2.注册
3.退出
要求:运行的代码终端可以看到上面这个界面(用户输入的账号 密码可以储存在列表或则字典中,随意选择)
(1)用户选择1时,需要输入账号密码,判断用户名密码是否存在,如果存在显示登录系统成功,不存在提示用户输入q回到首页选择注册功能(注意:这里要求是回到首页程序并没有结束)
(2)用户选择2时,需要输入账号密码,判断用户名密码是否存在,如果存在显示该用户已经注册过,提示用户输入q回到首页登入即可,不存在将用户的账号密码保存,显示注册成功
(3) 用户输入3直接退出程序,显示欢迎下次使用提示:该题可以随意发挥添加功能例如添加规则输入账号不能为空,密码必须为8位, 找回密码功能,修改密码功能发挥你的想象灵活运用
分析:
1.首页面显示
我们用到三引号,进行多行文字输出
print(''' =======登⼊系统======= 1.登⼊ 2.注册 3.退出 ''')
2.变量接收用户输入的数字
n = int(input('请选择操作:'))
3.用字典储存账号与密码
dic={}
4.用if语句实现不同页面的进入
if n == 1: # 登录 print('请输入账号密码:') name = input('账号:') password = input('密码:') dic[name] = password if dic[name] in dic: print('登录成功') else: print('密码不存在,输⼊q回到⾸⻚选择注册功能') if 'q' == input('输入q:'): res() if n == 2: # 注册 print('请输入账号密码:') name = input('账号:') password = input('密码:') dic[name] = password if dic[name] in dic: print('已注册,输⼊q回到⾸⻚选择登录功能') if 'q' == input('输入q:'): res() else: print('注册成功') if n == 3: # 退出 print('欢迎下次使⽤ ') exit(0)
4.因为用户输入q会跳转到首页面
所以我们将首页面,与判断放在两个函数里
所以,完整代码为:
dic = {} def op(dic, n): if n == 1: print('请输入账号密码:') name = input('账号:') password = input('密码:') dic[name] = password if dic[name] in dic: print('登录成功') else: print('密码不存在,输⼊q回到⾸⻚选择注册功能') if 'q' == input('输入q:'): res() if n == 2: print('请输入账号密码:') name = input('账号:') password = input('密码:') dic[name] = password if dic[name] in dic: print('已注册,输⼊q回到⾸⻚选择登录功能') if 'q' == input('输入q:'): res() else: print('注册成功') if n == 3: print('欢迎下次使⽤ ') exit(0) def res(): print(''' =======登⼊系统======= 1.登⼊ 2.注册 3.退出 ''') n = int(input('请选择操作:')) op(dic, n) res()
代码第7行有问题,实现的是zhj这个键对应的值是001
应该修改有name键和password键,输入对应值
模拟某系统用户登录过程
用户登陆系统时需要首先输入账号,如果账号不存在,输出“Wrong User”并结束程序;账号正确时,再输入密码,验证账号密码与已给定的账号密码是否一致,如果一致,输出“Success”,否则输出“Fail”以及剩余尝试次数。总尝试次数为3次,如果3次均输入错误,输出“Login Denied”。
给定账户及密码如下:
账号 密码
aaa 123456
bbb 888888
ccc 333333
字典可设为:
字典可设为:
dic={"aaa":["123456",10000],"bbb":["888888",5000],"ccc":["333333",3000]}
【输入形式】
在两行中分别用户名和密码
【输出形式】
参考测试用例
【样例输入】
ttt
【样例输出】
【样例说明】
Wrong User
dic = {'aaa': '123456', 'bbb': '888888', 'ccc': '333333'} zh = input() t = 3 if zh not in dic.keys(): print('Wrong User') else: while t != 0: mm = input() if mm in dic.values(): print('Succes') break else: print('Fail') t -= 1 else: print('Login Denied')