前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python - 函数实战

Python - 函数实战

作者头像
小菠萝测试笔记
发布2021-08-10 10:50:10
2500
发布2021-08-10 10:50:10
举报

前言

  • 参考的是慕课网提供的实战,自己编码
  • http://www.imooc.com/wiki/pythonlesson1/function2.html

什么是模块化程序设计

  • 在进行程序设计时将一个大程序按照功能划分为若干小程序模块
  • 每个小程序模块完成一个确定的功能
  • 并在这些模块之间建立必要的联系,通过模块的互相协作完成整个功能
自顶向下
  • 在设计较复杂的程序时,一般采用自顶向下的方法,将问题划分为几个部分,各个部分再进行细化,直到分解为较好解决问题为止
  • 采用模块化设计编写程序时,不是一开始就逐条编写程序代码
  • 而是首先用主程序、子程序等框架把软件的主要结构和流程描述出来
  • 以功能块为单位进行程序设计,实现其求解的方法称为模块化
函数在模块化设计的作用
  • 利用函数,不仅可以实现程序的模块化,使得程序设计更加简单和直观,从而提高了程序的易读性和可维护性
  • 而且还可以把程序中经常用到的一些计算或操作编写成通用函数,以供随时调用

实战

功能简介

实现一个通讯录管理程序,使用函数来实现程序,采用模块化的程序设计方法:

  • 划分通讯录程序的功能模块,使用函数实现相应的功能
  • 首先实现整体框架,然后再细化每个功能细节
  • 最终的程序由多个函数构成,每个函数实现一个单一的功能,整个程序的结构清晰
通讯录功能简介

通讯录包含若干联系人,每个联系人包括:姓名、地址、电话 3 项内容。程序提供 4 项基本功能:

  • 增加联系人: 用户输入姓名、地址、电话等信息,将信息保存在一个列表中
  • 列出联系人: 打印输出所有联系人的信息
  • 查询联系人: 用户输入联系人姓名,打印输出该联系人的信息
  • 删除联系人: 用户输入联系人姓名,从通讯录中删除该联系人
主程序入口

通过命令行界面实现以上功能,程序 addr-manage.py 运行时首先打印一个菜单

代码语言:javascript
复制
C:\> python addr-manage.py
1. create person
2. list all persons
3. query person
4. delete person
5. quit
Enter a number(1-5): 
主程序包含以下功能

数字选项

功能描述

1. create person

增加联系人

2. list all persons

列出联系人

3. query person

查询联系人

4. delete person

删除联系人

5. quit

退出通讯录程序

用什么数据结构来描述一个联系人
  • 字典最佳
  • 因为联系人可能会有很多个属性
  • 假设联系人有三个属性

姓名

地址

电话

张三

南京

12306

字典表示联系人
代码语言:javascript
复制
{
    "name": "张三",
    "address": "南京",
    "phone": "12306"
}

那么这是一个联系人

用什么数据结构来描述一个通讯录

通讯录会有多个联系人,所以会有多个字典,可以通过列表来表示通讯录

代码语言:javascript
复制
zhangSan = {'name': '张三', 'address': '南京', 'phone': '12306'}
liSi = {'name': '李四', 'address': '北京', 'phone': '10086'}
persons = [zhangSan, liSi]
一个函数对应一个功能

功能模块

对应的函数

增加联系人

create_person

列出联系人

list_person

查询联系人

query_person

删除联系人

delete_person

主控模块

main

总的代码结构
代码语言:javascript
复制
# 通讯录
persons = []


# 添加联系人
def create_person():
    pass


# 列出联系人
def list_person():
    pass


# 查出联系人
def query_person():
    pass


# 删除联系人
def delete_person():
    pass


# 主函数
def main():
    pass


main()
主函数代码实现
  1. 获取用户输入的选择
  2. 根据选择执行对应的功能
  3. 不断重复第一步
代码语言:javascript
复制
# 主函数
def main():
    while True:
        # 获取用户输入
        input_str = input("1. create person\n"
                          "2. list all persons\n"
                          "3. query person\n"
                          "4. delete person\n"
                          "5. quit\n"
                          "Enter a number(1-5): "
                          )

        if input_str == "1":
            create_person()
        elif input_str == "2":
            list_person()
        elif input_str == "3":
            query_person()
        elif input_str == "4":
            delete_person()
        elif input_str == "5":
            break
        else:
            print("无效选择")
添加联系人代码实现
代码语言:javascript
复制
# 添加联系人
def create_person():
    name = input("请输入姓名:")
    address = input("请输入地址:")
    phone = input("请输入手机:")

    if name and address and phone:
        person = {
            "name": name,
            "address": address,
            "phone": phone
        }
        persons.append(person)
列出联系人代码实现
代码语言:javascript
复制
# 列出联系人
def list_person():
    for person in persons:
        print(person)
查出联系人代码实现
代码语言:javascript
复制
# 查出联系人
def query_person():
    name = input("请输入需要查找的姓名:")
    for person in persons:
        if name == person["name"]:
            print(person)
删除联系人代码实现
代码语言:javascript
复制
# 删除联系人
def delete_person():
    name = input("请输入需要查找的姓名:")
    for person in persons:
        if name == person["name"]:
            persons.remove(person)
运行效果
代码语言:javascript
复制
1. create person
2. list all persons
3. query person
4. delete person
5. quit
Enter a number(1-5): 1
请输入姓名:poloyy
请输入地址:广州荔湾区
请输入手机:13501111111

1. create person
2. list all persons
3. query person
4. delete person
5. quit
Enter a number(1-5): 2
{'name': 'poloyy', 'address': '广州荔湾区', 'phone': '13501111111'}

1. create person
2. list all persons
3. query person
4. delete person
5. quit
Enter a number(1-5): 3
请输入需要查找的姓名:poloyy
{'name': 'poloyy', 'address': '广州荔湾区', 'phone': '13501111111'}

1. create person
2. list all persons
3. query person
4. delete person
5. quit
Enter a number(1-5): 4
请输入需要查找的姓名:poloyy

1. create person
2. list all persons
3. query person
4. delete person
5. quit
Enter a number(1-5): 2

1. create person
2. list all persons
3. query person
4. delete person
5. quit
Enter a number(1-5): 5

Process finished with exit code 0
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-08-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 什么是模块化程序设计
    • 自顶向下
      • 函数在模块化设计的作用
      • 实战
        • 功能简介
          • 通讯录功能简介
            • 主程序入口
              • 主程序包含以下功能
                • 用什么数据结构来描述一个联系人
                  • 字典表示联系人
                    • 用什么数据结构来描述一个通讯录
                      • 一个函数对应一个功能
                        • 总的代码结构
                          • 主函数代码实现
                            • 添加联系人代码实现
                              • 列出联系人代码实现
                                • 查出联系人代码实现
                                  • 删除联系人代码实现
                                    • 运行效果
                                    相关产品与服务
                                    云开发 CloudBase
                                    云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
                                    领券
                                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档