IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python 编程1000例(14):使用字典实现 switch 结构、通讯录 -> 正文阅读

[Python知识库]Python 编程1000例(14):使用字典实现 switch 结构、通讯录

作者:token keyword

本系列文章通过 1000(一篇文章表示 1 个实例) 个实例 ,为读者提供较为详细的练习题目,以便读者举一反三,深度学习。本系列的文章涉及到 Python 知识点包括:Python 语言基础、运算符和表达式、语句和程序结构、列表和元组、字典和集合、字符串、正则表达式、函数、面向对象编程、模块和包、异常处理和程序调试、文件和目录操作、数据库编程、界面编程、网络编程、WEB 编程、进程和线程、网络爬虫、游戏编程等知识点,由易到难,由浅入深,一步步打下坚实的编程基础。

本系列文章涉及的算法包括搜索、回溯、递归、排序、迭代、贪心、分治和动态规划等,涉及的数据结构包括字符串、列表、指针、区间、队列、矩阵、堆栈、链表、哈希表、线段树、二叉树、二叉搜索树和图结构等。

本系列文章是笔者为适应当前教育改革的创新要求,更好地践行语言类课程,满足实践教学与创新能力培养的需要,阅读大量书籍、各大互联网公司的面试算法、LintCode、LeetCode、九章算法和结合笔者近几年项目经验编写的系列文章,精选了 1000 个趣味性、实用性强的应用实例,从不同难度、不同算法、不同类型和不同数据结构等方面,将实际算法进行总结,希望为 Python 编程人员抛砖引玉。由于笔者经验与水平有限,博文中疏漏及不妥之处在所难免,衷心地希望各位读者在评论区多提宝贵意见及具体的修改建议,以便笔者进一步修改和完善。

一、使用字典实现 switch 结构

需求:Python 不支持 switch/case 语句,但是可以通过字典、手动设计实现该语句的结构功能。演示效果如下图所示:
在这里插入图片描述
示例代码如下:

# -*- coding: UTF-8 -*-
"""
@author:AmoXiang
@file:28.使用字典实现 switch 结构.py
@time:2021/02/01
"""


def get_monday():  # 定义函数
    return "星期一"  # 返回星期一


def get_tuesday():
    return "星期二"  # 返回星期二


def get_wednesday():
    return "星期三"  # 返回星期三


def get_thursday():
    return "星期四"  # 返回星期四


def get_friday():
    return "星期五"  # 返回星期五


def get_saturday():
    return "星期六"  # 返回星期六


def get_sunday():
    return "星期日"  # 返回星期日


def get_default():
    return "不知道星期几"  # 模拟swtich语句中的default语句功能


switcher = {  # 通过字典映射来实现switch/case功能
    1: get_monday,  # 通过键不同,调用不同的函数
    2: get_tuesday,
    3: get_wednesday,
    4: get_thursday,
    5: get_friday,
    6: get_saturday,
    7: get_sunday
}
for i in range(2):  # 测试2次
    day = input("今天是一周第几天?:").strip()  # 手动输入一个天数
    if day.isdigit():  # 判断是否是数字
        day = int(day)  # 转换为int型
    else:
        day = 0  # 设置day值为0
    day_name = switcher.get(day, get_default)()  # 当day不在字典映射中时,调用get_default()
    print(f"今天{day_name}")

二、通讯录

需求:本案例设计一个通讯录,保存联系人的信息,提供增加、删除、查询和修改联系人的功能。主要使用 Python 的 dict 结构存储和联系人的信息:姓名和电话。演示效果如下图所示:

|---欢迎进入通讯录程序---|
|---1、 查询联系人资料---|
|---2、 插入新的联系人---|
|---3、 删除已有联系人---|
|---4、 退出通讯录程序---|
请输入指令代码:1
请输入联系人姓名:张三
该联系人不存在!
请输入指令代码:2
请输入联系人姓名:张三
请输入联系人电话:123456789
联系人加入成功!
请输入指令代码:1
请输入联系人姓名:张三
张三 : 123456789
请输入指令代码:2
请输入联系人姓名:李四
请输入联系人电话:12345667789
联系人加入成功!
请输入指令代码:3
请输入联系人姓名:李四
删除成功!
请输入指令代码:4
|---感谢使用通讯录程序---|

示例代码如下:

# -*- coding: UTF-8 -*-
"""
@author:AmoXiang
@file:29.通讯录.py
@time:2021/02/01
"""

print('''|---欢迎进入通讯录程序---|
|---1、 查询联系人资料---|
|---2、 插入新的联系人---|
|---3、 删除已有联系人---|
|---4、 退出通讯录程序---|''')
addressBook = {}  # 定义通讯录
while 1:
    temp = input('请输入指令代码:')
    if not temp.isdigit():
        print("输入的指令错误,请按照提示输入")
        continue
    item = int(temp)  # 转换为数字
    if item == 4:
        print("|---感谢使用通讯录程序---|")
        break
    name = input("请输入联系人姓名:")
    if item == 1:
        if name in addressBook:
            print(name, ':', addressBook[name])
            continue
        else:
            print("该联系人不存在!")
    if item == 2:
        if name in addressBook:
            print("您输入的姓名在通讯录中已存在-->>", name, ":", addressBook[name])
            isEdit = input("是否修改联系人资料(Y/N):")
            if isEdit == 'Y':
                user_phone = input("请输入联系人电话:")
                addressBook[name] = user_phone
                print("联系人修改成功")
                continue
            else:
                continue
        else:
            user_phone = input("请输入联系人电话:")
            addressBook[name] = user_phone
            print("联系人加入成功!")
            continue
    if item == 3:
        if name in addressBook:
            del addressBook[name]
            print("删除成功!")
            continue
        else:
            print("联系人不存在")

感谢您阅读本篇博文,希望本文能成为您编程路上的领航者。祝您阅读愉快!


在这里插入图片描述

????好书不厌读百回,熟读课思子自知。而我想要成为全场最靓的仔,就必须坚持通过学习来获取更多知识,用知识改变命运,用博客见证成长,用行动证明我在努力。
????如果我的博客对你有帮助、如果你喜欢我的博客内容,请 点赞评论收藏 一键三连哦!听说点赞的人运气不会太差,每一天都会元气满满呦!如果实在要白嫖的话,那祝你开心每一天,欢迎常来我博客看看。
?编码不易,大家的支持就是我坚持下去的动力。点赞后不要忘了 关注 我哦!

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-09-03 11:50:39  更:2021-09-03 11:51:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 12:46:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码