Python 函数简单易理解版

作者:小菠萝测试笔记 时间:2023-02-17 21:10:47 

Python 函数

一、什么是模块化程序设计?

  • 在进行程序设计时将一个大程序按照功能划分为若干小程序模块

  • 每个小程序模块完成一个确定的功能

  • 并在这些模块之间建立必要的联系,通过模块的互相协作完成整个功能

1、 编写流程——自顶向下

  • 在设计较复杂的程序时,一般采用自顶向下的方法,将问题划分为几个部分,各个部分再进行细化,直到分解为较好解决问题为止

  • 采用模块化设计编写程序时,不是一开始就逐条编写程序代码

  • 而是首先用主程序、子程序等框架把软件的主要结构和流程描述出来

  • 以功能块为单位进行程序设计,实现其求解的方法称为模块化

2、函数在模块化设计的作用

利用函数,不仅可以实现程序的模块化,使得程序设计更加简单和直观,从而提高了程序的易读性和可维护性
而且还可以把程序中经常用到的一些计算或操作编写成通用函数,以供随时调用

二、实战

1、功能简介

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

  • 划分通讯录程序的功能模块,使用函数实现相应的功能

  • 首先实现整体框架,然后再细化每个功能细节

  • 最终的程序由多个函数构成,每个函数实现一个单一的功能,整个程序的结构清晰

2、通讯录功能简介

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

  • 增加联系人: 用户输入姓名、地址、电话等信息,将信息保存在一个列表中

  • 列出联系人: 打印输出所有联系人的信息

  • 查询联系人: 用户输入联系人姓名,打印输出该联系人的信息

  • 删除联系人: 用户输入联系人姓名,从通讯录中删除该联系人

3、主程序入口

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


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

4、主程序包含以下功能

Python 函数简单易理解版

5、用什么数据结构来描述一个联系人

  • 字典最佳

  • 因为联系人可能会有很多个属性

  • 假设联系人有三个属性

Python 函数简单易理解版 

字典表示联系人:


{
   "name": "张三",
   "address": "南京",
   "phone": "12306"
}


那么这是一个联系人


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


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




zhangSan = {'name': '张三', 'address': '南京', 'phone': '12306'}
liSi = {'name': '李四', 'address': '北京', 'phone': '10086'}
persons = [zhangSan, liSi]

一个函数对应一个功能:

Python 函数简单易理解版

总的代码结构:


# 通讯录
persons = []

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

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

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

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

# 主函数
def main():
   pass

main()

 三、函数实现

1、主函数代码实现

  • 获取用户输入的选择

  • 根据选择执行对应的功能

  • 不断重复第一步


# 主函数
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("无效选择")

2、添加联系人代码实现


# 添加联系人
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)

3、列出联系人代码实现


# 列出联系人
def list_person():
   for person in persons:
       print(person)

4、查出联系人代码实现


# 查出联系人
def query_person():
   name = input("请输入需要查找的姓名:")
   for person in persons:
       if name == person["name"]:
           print(person)

5、删除联系人代码实现


# 删除联系人
def delete_person():
   name = input("请输入需要查找的姓名:")
   for person in persons:
       if name == person["name"]:
           persons.remove(person)


6、运行效果




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

来源:https://www.cnblogs.com/poloyy/p/15110297.html

标签:Python,函数
0
投稿

猜你喜欢

  • Python遍历字典方式就实例详解

    2021-02-16 08:50:58
  • Golang实现断点续传功能

    2023-07-24 08:19:26
  • sql server 带列名导出至excel

    2008-11-25 11:07:00
  • python操作小程序云数据库实现简单的增删改查功能

    2024-01-20 08:53:46
  • 图像替换新技术:状态域方法[译]

    2009-08-06 16:41:00
  • mysql慢查询使用详解

    2024-01-25 05:07:18
  • SQL和Oracle对数据库事务处理的差异性

    2009-10-14 09:43:00
  • MSSQL自动重建出现碎片的索引的方法分享

    2024-01-17 13:50:52
  • 简单谈谈Python中的元祖(Tuple)和字典(Dict)

    2022-12-14 03:26:26
  • ASP链接Mysql数据库 非DSN连接的方法

    2009-03-09 18:24:00
  • Java读取properties文件连接数据库的方法示例

    2024-01-13 15:17:24
  • DreamWeaver经典技巧四则

    2007-12-03 11:34:00
  • 浅谈Python数据类型之间的转换

    2023-12-06 03:58:31
  • ASP.NET Core基于现有数据库创建EF模型

    2024-01-25 15:56:04
  • 利用python实现逐步回归

    2023-10-05 19:24:27
  • 用python 制作图片转pdf工具

    2023-02-13 09:14:51
  • Request.ServerVariables("HTTP_REFERER")的用法

    2008-06-19 13:33:00
  • asp生成UTF-8格式的文件方法

    2008-01-26 20:59:00
  • react native环境安装流程

    2023-07-02 10:22:36
  • python中WSGI是什么,Python应用WSGI详解

    2021-04-08 06:07:45
  • asp之家 网络编程 m.aspxhome.com