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')

 

posted @ 2024-04-01 19:10  szmtjs10  阅读(44)  评论(0编辑  收藏  举报