网站首页 > 编程文章 正文
在 Python 中,函数(Function) 就像是一个可以重复使用的“工具包”,它把一组实现特定功能的代码打包在一起,让你可以通过简单的调用来完成复杂的操作。想象你有一个榨汁机:
- 输入:放入水果(参数)
- 处理:榨汁机内部工作(函数体)
- 输出:得到果汁(返回值)
对应的 Python 函数:
def make_juice(fruit):
juice = f"{fruit}汁"
return juice
# 调用函数
glass = make_juice("苹果") # 放入苹果 → 得到"苹果汁"
print(glass) # 输出:苹果汁
为什么需要函数?
- 避免重复:不用每次榨汁都重新造机器
# 不用函数(重复写)
print("苹果汁")
print("橙汁")
print("西瓜汁")
# 使用函数(一次定义,多次使用)
def make_juice(fruit):
print(f"{fruit}汁")
make_juice("苹果")
make_juice("橙子")
- 代码更清晰:把复杂操作隐藏起来
# 计算圆的面积(隐藏数学细节)
def circle_area(radius):
return 3.14 * radius ** 2
print(circle_area(5)) # 使用者无需知道公式
函数的组成部分
def greet(name): # 函数定义(def)和参数(name)
"""打招呼的函数""" # 函数说明(可选)
message = f"你好, {name}!" # 函数体(具体操作)
return message # 返回值
result = greet("小明") # 函数调用
print(result) # 输出:你好, 小明!
示例
def clean_text(text):
"""清理文本:去除空格和标点"""
text = text.strip()
text = text.replace(",", "").replace(".", "")
return text
cleaned = clean_text(" 这是一段样例,文本. ")
print(cleaned) # 输出:"这是一段样例文本"
函数的特殊形式
类型 | 说明 | 示例 |
无参数函数 | 不需要输入 | def say_hi(): print("Hi!") |
无返回值函数 | 只执行操作 | def log(msg): print(f"[LOG] {msg}") |
默认参数 | 参数预设值 | def order(food="面条"): print(food) |
多返回值 | 返回元组 | def min_max(nums): return min(nums), max(nums) |
思考
函数里的变量和外部的变量之间的区别
x = 10
def test():
x = 20 # 这是局部变量
print(x) # 输出20
test()
print(x) # 输出10(外部x不受影响)
如何在函数内修改外部变量呢?
x = 10
def test():
global x # 声明此处使用全局变量
x = 20 # 重新设置新值
test()
print(x) # 输出20
猜你喜欢
- 2025-05-08 不工作没钱买机器人?王兴兴构想遭拷问:共产主义靠代码还是分配
- 2025-05-08 橙子互动2022年半年度亏损10.72万元 亏损同比减少58.49%
- 2025-05-08 揭秘广州小升初XSC暗号代码(广州小升初各大代号)
- 2025-05-08 《神秘岛的秘密》第六章 心跳的源代码
你 发表评论:
欢迎- 05-09Spring Boot3 RESTful 接口参数校验,这篇吃透就够了!
- 05-09《Spring6》第02节:基于XML方式搭建Spring6框架开发环境
- 05-09MapStruct架构设计(mapstruct @mapping)
- 05-09分布式微服务架构组件(分布式微服务架构设计)
- 05-09Java Swing组件下的JButton实例(java swing 组件)
- 05-09java基础都在这了,小主们拿去吧(java基础是指什么)
- 05-09AOP的实现落地(拦截过滤),一切都要从Servlet说起
- 05-09【Spring Boot】WebSocket 的 6 种集成方式
- 最近发表
-
- Spring Boot3 RESTful 接口参数校验,这篇吃透就够了!
- 《Spring6》第02节:基于XML方式搭建Spring6框架开发环境
- MapStruct架构设计(mapstruct @mapping)
- 分布式微服务架构组件(分布式微服务架构设计)
- Java Swing组件下的JButton实例(java swing 组件)
- java基础都在这了,小主们拿去吧(java基础是指什么)
- AOP的实现落地(拦截过滤),一切都要从Servlet说起
- 【Spring Boot】WebSocket 的 6 种集成方式
- Java 中五种最常见加密算法:原理、应用与代码实现
- 用注解进行参数校验,spring validation介绍、使用、实现原理分析
- 标签列表
-
- spire.doc (59)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- sqljdbc4.jar下载 (56)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- 苹果ios字体下载 (56)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)