python-单词本|通讯录

编写程序,生词本。

result1

def sayHello():
    print("=" * 20 + '\n' + '欢迎使用生词本\n'
          + '1.查看生词本\n'
          + '2.背单词\n'
          + '3.添加新单词\n'
          + '4.删除单词\n'
          + '5.清空生词本\n'
          + '6.退出生词本\n'
          + '=' * 20 + '\n')


def addW(data):
    word = input("请输入新单词:")
    trans = input("请输入单词翻译:")
    data[word] = trans
    print("单词添加成功")
    print(f"{word}:{data[word]}")


def showW(data):
    if len(data) == 0:
        print("恭喜你,没有生单词!\n")
    else:
        for i in data:
            print(f"{i}:{data[i]}")


def bei(data):
    if (len(data.keys()) != 0):
        for i, v in data.items():
            print(i)
            v2 = input("请输入单词翻译(q退出):")
            if (v2 == v):
                print("正确!")
            else:
                if (v2 == "q"):
                    print("退出成功")
                else:
                    print(f'遗憾!正确答案是:{v}\n')
        print("背完了!再来一遍吧")
    else:
        print("没有单词")


def isNoneW(data):
    if len(data.keys()) == 0:
        return True
    return False


def delW(data):
    if isNoneW(data):
        print("没有单词哦")
    else:
        word = input("请输入要删除的单词")
        if (word in data.keys()):
            data.pop(word)
            print("删除成功")
        else:
            print("没有这个单词哦")


def defAll(data):
    data.clear()
    print('清空成功')


if __name__ == "__main__":
    sayHello()
    data = {}
    num = int(input("请输入功能编号:\n"))
    while (num != 6):
        if (num == 1):
            showW(data)
        elif (num == 2):
            bei(data)
        elif (num == 3):
            addW(data)
        elif (num == 4):
            delW(data)
        elif (num == 5):
            defAll(data)
        else:
            break
        num = int(input("请输入功能编号:\n"))

2.模拟实现手机通讯录

result2

def sayHello():
    print("="*20+'\n'+'欢迎使用通讯录\n'
          +'1.添加联系人\n'
          +'2.查看通讯录\n'
          +'3.删除联系人\n'
          +'4.修改联系人\n'
          +'5.查找联系人\n'
          +'6.退出\n'
          +'='*20+'\n')
def add(data):
    name=input("请输入联系人的姓名:")
    phone = input("请输入联系人的手机号:")
    mail = input("请输入联系人的邮箱:")
    address = input("请输入联系人的地址:")
    data[name]={'phone':phone,'mail':mail,'address':address}
    print(f"保存成功:{name}:{data[name]}")
def show(data,*name):
    if(len(name)!=0):
        print(f"查找结果为:{name}:{data[name[0]]}")
    else:
        if(len(data.keys())==0):
            print("没有联系人")
        else:
            print(f"所有联系人:\n")
            for i in data.keys():
                print(f"{i}\t{data[i]}")
            print("="*20)
def delD(data):
    name=input("请输入删除人姓名:")
    if name in data.keys():
        data.pop(name)
        print("删除成功")
    else:
        print("删除失败,用户不存在")
def change(data):
    if(len(data.keys())!=0):
        name = input('请输入修改人姓名:')
        if(name in data.keys()):
            inType=input("请输入要修改的选项:【name,phone,mail,address】")
            if(inType=='name'):
                newname=input("请输入要修改后的姓名:")
                if(newname in data.keys()):
                    print("该用户名存在了,修改失败")
                else:
                    temp=data[name]
                    data.pop(name)
                    data[newname]=temp
                    print('修改成功')
            elif inType in ['name','phone','mail','address']:
                new=input("请输入要修改的值")
                data[name][inType]=new
        else:
            print("该人不存在,请重新输入")
            name = input('请输入修改人姓名:')
            change(name)
    else:
        print("现在还没有联系人")
if __name__=="__main__":
    sayHello()

    data = {}
    num=int(input("请输入功能序号:\n"))
    while(num!=6):
        if(num==1):
            add(data)
        elif(num==2):
            show(data)
        elif(num==3):
            delD(data)
        elif(num==4):
            change(data)
        elif(num==5):
            name=input("请输入要查找的人:")
            show(data,name)
        else:
            num=6
        num=int(input("请输入功能序号:"))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/217821.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何使用Cloudreve搭建本地云盘系统并实现随时远程访问

文章目录 1、前言2、本地网站搭建2.1 环境使用2.2 支持组件选择2.3 网页安装2.4 测试和使用2.5 问题解决 3、本地网页发布3.1 cpolar云端设置3.2 cpolar本地设置 4、公网访问测试5、结语 1、前言 自云存储概念兴起已经有段时间了,各互联网大厂也纷纷加入战局&#…

mfc 设置excel 单元格的列宽

CString strTL, strBR;strTL.Format(L"%s%d", GetExcelColName(cd.nCol), cd.nRow);strBR strTL;CRange rangeMerge range.get_Range(_variant_t(strTL), _variant_t(strBR));rangeMerge.put_ColumnWidth(_variant_t((long)(20))); 宽度设置函数为 : pu…

Nginx安装

Nginx简介 Nginx 是一个高性能的HTTP和反向代理web服务器,其特点是占有内存少,并发能力强,其并发能力在同类型的网页服务器中表现较好。 Nginx安装 下载地址 安装稳定版本 下载完成后进行解压 可以双击nginx.exe 启动nginx 也可以打开cm…

nginx部署和安装-后端程序多端口访问-后端代理设置

部分补充 查看nginx是否安装http_ssl_module模块 ./nginx -V 看到有 configure arguments: --with-http_ssl_module, 则已安装。 如果没有安装:参考文档 nginx官网地址:nginx: download 这里下载nginx-1.18.0稳定版tar.gz 下载后,利用…

JAVA全栈开发 day16_MySql01

一、数据库 1.数据储存在哪里? 硬盘、网盘、U盘、光盘、内存(临时存储) 数据持久化 使用文件来进行存储,数据库也是一种文件,像excel ,xml 这些都可以进行数据的存储,但大量数据操作&#x…

【开源】基于JAVA的校园电商物流云平台

项目编号: S 034 ,文末获取源码。 \color{red}{项目编号:S034,文末获取源码。} 项目编号:S034,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 商品数据模块2.3 快…

【开源】基于JAVA的考研专业课程管理系统

项目编号: S 035 ,文末获取源码。 \color{red}{项目编号:S035,文末获取源码。} 项目编号:S035,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 考研高校模块2.3 高…

【C++11/线程相关】thread类编写多线程、mutex互斥锁和lock_guard、atomic原子类型

目录 通过thread类编写C多线程程序线程间互斥——mutex互斥锁和lock_guardmutex互斥锁lock_guard 线程间通信C11实现生产者与消费者模型 基于CAS操作的atomic原子类型 橙色 通过thread类编写C多线程程序 为什么结果没有子线程中所打印的字符串呢?因为通过detach进…

STM32串口通信初探:使用HAL库实现基本功能

在本文中,我们将探索如何使用STM32的HAL库来实现串口通信的基本功能。串口通信是一种常见的外设通信方式,用于在微控制器和其他外部设备之间进行数据传输。在STM32系列微控制器中,HAL库提供了简单且灵活的方法来实现串口通信。我们将重点讨论…

【模电】直流通路与交流通路

直流通路与交流通路 通常,在放大电路中,直流电源的作用和交流信号的作用总是共存的,即静态电流、电压和动态电流、电压总是共存的。但是由于电容、电感等电抗元件的存在,直流量所流经的通路与交流信号所流经的通路不完全相同。因此…

MySQL的多表查询

多表关系 一对多(多对一)-> 多对多-> 一对一-> 概述 概述 多表查询分类 内连接 代码演示--> -- 内连接演示 -- 1.查询每一个员工的姓名,及关联的部门的名称(隐式内连接实现) select emp.name, dept.name from emp,dept where emp.dept_id dept.id; …

STM32F407-14.3.11-01互补输出和死区插入

互补输出和死区插入 高级控制定时器(TIM1 和 TIM8)可以输出两路互补信号,并管理输出的关断与接通瞬间。 这段时间通常称为死区,用户必须根据与输出相连接的器件及其特性(电平转换器的固有延迟、开关器件产生的延迟...&…

java项目日常运维需要的文档资料

一、前言 java项目开发完成,部署上线,进入项目运维阶段,日常工作需要准备哪些资料和文档?当项目上线后,运行一段时间,或多或少会遇到一些运维上的问题,比如服务器磁盘饱满,服务器CPU&#xff0…

根文件系统初步测试

一. 简介 上一篇文章学习了向所编译生成的根文件系统中加入 lib库文件。文章地址如下: 根文件系统lib库添加与初步测试-CSDN博客 本文继上一篇文章的学习,本文对之前制作的根文件系统进行一次初步测试。 二. 根文件系统初步测试 为了方便测试&#…

如何使用 Docker 安装 Node-RED

安装 Node-RED 使用 Docker 是一种简便的方式,以下是基本的步骤: 安装 Docker: 确保已在系统上安装 Docker。可从 Docker 官方网站 或 Windows Docker 安装教程 获取安装指南。 拉取运行 Node-RED 镜像: 打开终端或命令行界面&am…

企业架构LB-服务器的负载均衡之Haproxy实现

企业架构LB-服务器的负载均衡之HAProxy实现 学习目标和内容 1、能够通过HAProxy实现负载均衡 ###1、介绍 Introduction HAProxy, which stands for High Availability Proxy, is a popular opensource software TCP/HTTP LoadBalancer and proxying solution which can be ru…

​ 华大基因发布《2023年全球地中海贫血认知现状报告》

在地中海沿岸地区、非洲、中东、东南亚和中国南部,一种名为地中海贫血(以下简称“地贫”)的遗传性血红蛋白疾病十分高发,已成为严重危害公共健康和社会稳定的重大问题。近日,华大基因发布《2023年全球地中海贫血认知现…

pip命令详解

pip命令介绍 pip是由Ian Bicking在2008年提出的,他将pyinstall重命名为pip。名称pip是首字母缩写词,全称为“Package Installer for Python”。自Python3的3.4版本以及Python2的2.7.9版本开始,pip被直接包括在Python的安装包内,成…

二叉树(判断是否为平衡二叉树)

题目(力扣): 观察题目,发现最重要的条件就是,两颗子树的高度差的绝对值不超过1,我们就可以用递归将所有左子树和右子树都遍历一个,求出他们的高度差,若差值 > 1,则返回…

分布式搜索引擎elasticsearch(一)

5.1 初始elasticsearch elasticsearch是一款非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容。 elasticsearch是elastic stack的核心,负责存储、搜索、分析数据。 5.1.1正向索引 5.1.2elasticsearch采用倒排索引: 文档(document):每条数据就是一个…