首页 > 编程语言 >python基础(四)----列表、字典练习题

python基础(四)----列表、字典练习题

时间:2024-04-01 19:23:33浏览次数:26  
标签:练习题 python list1 list dic ---- print input 好友

好友管理系统


请设计一个好友管理系统,每个功能都对应一个序号,用户可根据提示“请输入您的选项”选择序号执行相应的操作,包括:
(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()

 

标签:练习题,python,list1,list,dic,----,print,input,好友
From: https://www.cnblogs.com/szmtjs10/p/18109194

相关文章

  • 开源压测项目
    项目git地址:https://gitee.com/smooth00/stressTestSystem搭建好之后,登录成功1.新建测试用例并上传jmeter脚本文件点击左侧“用例管理”,在右侧点击新增,创建一个测试用例;选中新建好的测试用例,点击上传文件,上传要执行的jmeter脚本文件和参数化文件(如没有参数化文件则不......
  • ACwing1064. 小国王
    线性状压DP#include<iostream>#include<stdio.h>#include<algorithm>#include<string>#include<cmath>#include<vector>#defineR(x)x=read()#defineFor(i,j,n)for(inti=j;i<=n;++i)usingnamespacestd;......
  • TCP/IP 基础知识总结
    我们刚开始接触计算机网络最多的协议,莫属TCP/IP协议了,TCP/IP协议同时也是互联网中最著名的协议。TCP/IP的历史背景最初还没有TCP/IP协议的时候,也就是在20世纪60年代,许多国家和地区认识到通信技术的重要性。美国国防部希望能够研究一种即使通信线路被破坏也能够通过其他......
  • cg影视用什么渲染特效画面的?「瑞云渲染」
    CG影视领域的视觉效果是借助先进的计算机图形学技术来完成的,这一过程需要依赖于高度复杂的软件与硬件配合。常用的3D建模工具包括Maya、3dsMax和Blender等,而渲染引擎如Arnold、V-Ray和RenderMan则负责赋予这些作品以逼真或超现实的视觉魅力。这些技术的融合使得影视制作中的数字......
  • 构建之法04
    在阅读《构建之法》这本书之前,我对于软件构建和工程开发的认知主要停留在实践层面,更多地依赖于日常项目中的经验和直觉。而这本书为我提供了一个全面而系统的视角,使我对软件开发的流程、技术和方法有了更深入的理解。在此,我将对比以往的做法,分享《构建之法》带给我的启示和差异。......
  • NewStarCTF-firstweek
    一、Crypto-brainfuck1.附件内容如下。++++++++[>>++>++++>++++++>++++++++>++++++++++>++++++++++++>++++++++++++++>++++++++++++++++>++++++++++++++++++>++++++++++++++++++++>++++++++++++++++++++++>++++++++++++++++++++++++>+++++......
  • vue3 设置el-dialog height超过滚动条
     方法一:<stylescoped>::v-deep.el-dialog.el-dialog-body{height:500px;overflow-y:auto;}</style> 如果要设置动态的高度话,则要在setup里面设置 <script>exportdefaultdefineComponent({setup:{constcssContent=ref({heigh......
  • 记录一次使用unordered_set插入数据异常的问题
    问题描述问题和unordered_set有关,相关代码如下://打印unordered_set的所有值voidprintSet(conststd::unordered_set<std::string>&data){intindex=0;autoit=data.begin();for(;it!=data.end();++it){conststd::string&key=*i......
  • SQL SERVER 日期和时间数据类型及函数 (Transact-SQL)
    declare@time1datetime=getdate()--代码declare@time2datetime=getdate()SELECTDATEDIFF(year,@TIME1,@TIME2);SELECTDATEDIFF(quarter,@TIME1,@TIME2);SELECTDATEDIFF(month,@TIME1,@TIME2);SELECTDATEDIFF(dayofyear,@TIME1,@TIME2);SE......
  • DMA-BUF
    学习资料:https://blog.csdn.net/hexiaolong2009/category_10838100.htmlhttps://www.cnblogs.com/sky-heaven/category/1288321.htmlhttps://www.kernel.org/doc/html/v6.6/driver-api/dma-buf.html#dma-fences-functions-reference 此处初步记录,后学习总结 ......