当前位置: 首页 > news >正文

AI教你学Python 第3天:函数和模块

第三天:函数和模块

一、函数(Function)

1. 什么是函数?

函数是Python中的一个重要概念,是一段封装好的代码,可以接受输入(参数),执行特定的操作,然后返回输出(结果)。函数通过def关键字定义。

2. 函数的基本结构
def function_name(parameters):"""函数文档字符串(可选)"""# 函数体return result  # 可选的返回值
3. 示例:定义一个简单的函数
def add(a, b):"""返回两个数的和"""return a + b# 调用函数
result = add(3, 5)
print(result)  # 输出: 8
4. 函数的参数类型
参数类型描述
位置参数按位置传递的参数
关键字参数key=value形式传递的参数
默认参数如果没有提供参数,则使用的默认值
可变参数(*args)可以接收任意数量的位置参数
关键字可变参数(**kwargs)可以接收任意数量的关键字参数
5. 示例:使用不同类型的参数
def greet(name, message='Hello'):"""打印问候语"""print(f"{message}, {name}!")greet('Alice')  # 输出: Hello, Alice!
greet('Bob', 'Good Morning')  # 输出: Good Morning, Bob!

二、函数的返回值

1. 返回单个值
def square(x):return x * x# 调用函数
print(square(4))  # 输出: 16
2. 返回多个值

函数可以返回多个值,实际上返回的是一个元组。

def min_max(numbers):return min(numbers), max(numbers)result = min_max([1, 2, 3, 4, 5])
print(result)  # 输出: (1, 5)

三、匿名函数(Lambda 函数)

1. 定义

匿名函数是一种没有具体名称的函数,使用lambda关键字定义,通常用于简化代码。

add = lambda x, y: x + y
print(add(5, 3))  # 输出: 8

四、模块(Module)

1. 什么是模块?

模块是一个包含Python代码的文件,可以是函数、类、变量等的集合。通过导入模块,可以重用代码。

2. 创建模块

创建一个名为my_module.py的文件,内容如下:

def multiply(x, y):return x * ydef divide(x, y):return x / y
3. 导入模块
import my_moduleresult = my_module.multiply(6, 7)
print(result)  # 输出: 42
4. 导入特定函数
from my_module import divideresult = divide(10, 2)
print(result)  # 输出: 5.0

五、模块的高级用法

1. 包(Package)

包是一个包含多个模块的文件夹,其中必须包含一个__init__.py文件。

my_package/__init__.pymy_module1.pymy_module2.py

导入包中的模块:

from my_package import my_module1

六、函数的应用示例

1. 一个简单的计算器
def add(a, b):return a + bdef subtract(a, b):return a - bdef multiply(a, b):return a * bdef divide(a, b):if b == 0:return "Cannot divide by zero!"return a / b# 测试计算器
print(add(10, 5))      # 输出: 15
print(subtract(10, 5)) # 输出: 5
print(multiply(10, 5)) # 输出: 50
print(divide(10, 0))   # 输出: Cannot divide by zero!

七、代码运行流程图

以下是函数的基本调用流程图:

+------------------+
|    调用函数      |
+------------------+|V
+------------------+
| 检查参数         |
+------------------+|V
+------------------+
| 执行函数体      |
+------------------+|V
+------------------+
| 返回结果        |
+------------------+|V
+------------------+
| 函数调用结束     |
+------------------+

八、习题

  1. 定义一个函数,接受一个字符串,返回该字符串的反转字符串。
  2. 编写一个模块,包含两个函数:一个用于计算阶乘,另一个用于计算斐波那契数列的某一项。
  3. 创建一个简单的计算器模块,支持加、减、乘、除操作。

九、总结

在Python中,函数和模块是组织和重用代码的重要工具。通过定义函数,可以提高代码的可读性和可维护性;而模块让我们能够将相关功能封装在一起,便于重用。

  • 函数:封装一段逻辑,以输入和输出为特点。
  • 模块:将多个相关的函数和功能组织在一起,便于管理和使用。

参考资源

  • Python官方文档
  • 《Python编程:从入门到实践》

怎么样今天的内容还满意吗?再次感谢观众老爷的观看。
最后,祝您早日实现财务自由,还请给个赞,谢谢!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【Qt | QAction】Qt 的 QAction 类介绍
  • 单片机嵌入式编程中常用技术点
  • Android 将EasyPermissions进一步封装,使得动态权限申请更加简明
  • 新品亮相|美格智能SLM530/SLM530P智能模组,助力金融新零售智慧升级
  • [NSSCTF 2022 Spring Recruit]ezgame
  • 如何评估叠螺机厂家的技术能力
  • 面试时被问的问题
  • pandas:读取各类文件方法以及爬虫时json数据保存
  • RabbitMQ 07 另两种集群方式 warren(主备模式),shovel(远程模式)
  • PHP常用正则表达式大全
  • 快速傅里叶变换(FFT)时,所需指定的FFT点数如何选择
  • 【秋招笔试-支持在线评测】9.19小米秋招(已改编)-三语言题解
  • Linux - iptables防火墙
  • Flask项目入门和视图
  • 监控IDS和IPS增强网络安全性
  • Angular 响应式表单 基础例子
  • ComponentOne 2017 V2版本正式发布
  • Electron入门介绍
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • Java IO学习笔记一
  • Java多态
  • oldjun 检测网站的经验
  • OSS Web直传 (文件图片)
  • php的插入排序,通过双层for循环
  • React-redux的原理以及使用
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • Transformer-XL: Unleashing the Potential of Attention Models
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 大主子表关联的性能优化方法
  • 给初学者:JavaScript 中数组操作注意点
  • 工作手记之html2canvas使用概述
  • 面试总结JavaScript篇
  • 入口文件开始,分析Vue源码实现
  • 收藏好这篇,别再只说“数据劫持”了
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 为什么要用IPython/Jupyter?
  • 原生js练习题---第五课
  • Mac 上flink的安装与启动
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • # 数仓建模:如何构建主题宽表模型?
  • #Datawhale AI夏令营第4期#AIGC方向 文生图 Task2
  • #git 撤消对文件的更改
  • $.ajax,axios,fetch三种ajax请求的区别
  • (1)bark-ml
  • (35)远程识别(又称无人机识别)(二)
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (力扣)1314.矩阵区域和
  • (每日一问)计算机网络:浏览器输入一个地址到跳出网页这个过程中发生了哪些事情?(废话少说版)
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (五)网络优化与超参数选择--九五小庞
  • (转)linux 命令大全
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .md即markdown文件的基本常用编写语法