news 2026/4/15 17:47:01

面向所有人的Python编程——函数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
面向所有人的Python编程——函数

🎯 函数的核心理念:存储与重用

📌 核心原则:DRY(Don't Repeat Yourself)

  • 避免重复:相同的代码只写一次,多次使用

  • 提高效率:减少代码量,便于维护和更新

  • 增强可读性:将复杂逻辑封装为有意义的名称

🔧 函数的基本概念

📖 函数定义

python

def function_name(parameters): """文档字符串(可选,但推荐)""" # 函数体代码 return result # 可选,没有return则返回None

🎮 函数调用过程

  1. 定义阶段:告诉Python记住这个函数,但不执行

  2. 调用阶段:执行函数体中的代码

  3. 返回阶段:回到调用处继续执行后续代码

python

def greet(): # 1. 定义函数(不执行) print("Hello!") greet() # 2. 调用函数(执行) print("World") # 3. 继续执行 # 输出: Hello! World

🔄 函数执行流程

📍 调用堆栈可视化

text

主程序执行 → 遇到函数调用 → 暂停主程序 ↓ 进入函数执行 → 执行函数体代码 ↓ 函数返回 → 回到主程序暂停处 ↓ 继续执行主程序

💡 关键理解

函数调用就像是暂时暂停当前操作,等待函数返回一个值来替换调用位置

📚 内置函数(Built-in Functions)

🛠️ 常用内置函数示例

函数描述示例
print()输出内容print("Hello")
input()获取用户输入name = input("Name? ")
len()获取长度len("Hello")5
type()获取类型type(42)<class 'int'>
int()转换为整数int("42")42
float()转换为浮点数float("3.14")3.14
str()转换为字符串str(100)'100'
max()返回最大值max(1, 5, 3)5
min()返回最小值min(1, 5, 3)1
sum()求和sum([1, 2, 3])6
sorted()排序sorted([3, 1, 2])[1, 2, 3]
range()生成序列list(range(3))[0, 1, 2]

🎨 函数输入-处理-输出模型

text

输入(参数) → 函数(处理) → 输出(返回值)

🎪 自定义函数

📝 定义与调用示例

python

# 定义函数 def greet(name): # name是参数 """向指定的人问好""" print(f"Hello, {name}!") # 调用函数 greet("Alice") # "Alice"是参数值 greet("Bob") # "Bob"是参数值 # 输出: # Hello, Alice! # Hello, Bob!

🔍 参数 vs 参数值

术语定义位置示例
参数(Parameter)函数定义时接收输入的变量函数定义括号内def func(param):
参数值(Argument)调用函数时传入的具体值函数调用括号内func(value)

🍰 类比理解

参数:像是咖啡机的咖啡粉槽(等待接收)
参数值:像是实际放入的咖啡粉(具体内容)

📤 返回值(Return Value)

🔄 返回值的作用

  1. 停止函数执行:遇到return立即结束函数

  2. 传递结果:将计算结果返回给调用者

python

def add(a, b): """计算两个数的和""" result = a + b return result # 1. 停止函数 2. 返回result的值 # 调用并接收返回值 sum_result = add(3, 5) # add(3, 5) 被替换为 8 print(sum_result) # 输出: 8

📊 返回值流程

python

def double(x): return x * 2 # 调用过程: # 1. 执行 double(5) # 2. double函数返回 10 # 3. 10 替换掉 double(5) # 4. y 被赋值为 10 y = double(5)

⚪ 无返回值函数

📭 None类型

  • 无return语句:函数默认返回None

  • 有return无值returnreturn None

  • 作用:执行操作但不返回具体结果

python

# 无返回值函数(执行操作) def print_welcome(name): print(f"Welcome, {name}!") # 隐式返回 None # 有返回值函数(计算结果) def calculate_total(price, quantity): total = price * quantity return total # 返回计算结果 # 使用示例 print_welcome("Alice") # 只执行操作,不接收返回值 result = calculate_total(10, 3) # 接收返回值 print(f"Total: ${result}")

🏗️ 函数设计实践

1. 带参数和返回值的函数

python

def calculate_area(width, height): """计算矩形面积""" area = width * height return area # 使用 room_area = calculate_area(5, 4) print(f"房间面积: {room_area}平方米")

2. 多语言问候函数

python

def greet(lang): """根据语言返回问候语""" if lang == 'es': # 西班牙语 return 'Hola' elif lang == 'fr': # 法语 return 'Bonjour' elif lang == 'cn': # 中文 return '你好' else: # 默认英语 return 'Hello' # 使用 print(greet('es')) # Hola print(greet('fr')) # Bonjour print(greet('en')) # Hello

3. 组合多个函数

python

def get_rectangle_area(width, height): """计算矩形面积""" return width * height def get_triangle_area(base, height): """计算三角形面积""" return 0.5 * base * height def calculate_total_area(): """计算房间总面积(矩形+三角形)""" rect_area = get_rectangle_area(10, 5) tri_area = get_triangle_area(4, 3) total = rect_area + tri_area return total print(f"总面积: {calculate_total_area()}平方米")

🎨 为什么要使用函数?

✅ 主要优点

  1. 模块化组织

    python

    # 将代码组织成逻辑"段落" def process_data(data): """数据处理函数""" cleaned = clean_data(data) analyzed = analyze_data(cleaned) return generate_report(analyzed)
  2. 避免重复

    python

    # 重复代码(不好) print("=" * 50) print("报告标题") print("=" * 50) # ... 很多代码 ... print("=" * 50) print("报告结尾") print("=" * 50) # 使用函数(好) def print_separator(): print("=" * 50) print_separator() print("报告标题") print_separator()
  3. 简化复杂代码

    python

    # 复杂逻辑拆分为小函数 def validate_user_input(input_data): """验证用户输入""" if not check_format(input_data): return False if not check_length(input_data): return False if not check_content(input_data): return False return True
  4. 创建可重用库

    python

    # my_utils.py - 可以分享给其他人 def format_currency(amount): """格式化货币显示""" return f"${amount:,.2f}" def calculate_tax(price, tax_rate): """计算税额""" return price * tax_rate def generate_invoice(items, tax_rate=0.08): """生成发票""" # 使用上面的函数 pass

📋 函数使用指南

场景建议示例
重复代码提取为函数多处相同的计算逻辑
复杂逻辑拆分为多个小函数数据处理流程
特定功能创建专用函数数据验证、格式化
团队协作建立函数库共享工具函数

🐛 常见错误与调试

1. 忘记冒号

python

# 错误 def say_hello() # 缺少冒号 print("Hello") # 正确 def say_hello(): # 有冒号 print("Hello")

2. 缩进错误

python

# 错误:混用空格和Tab def my_func(): print("第一行") # 4个空格 print("第二行") # 1个Tab(不同编辑器可能不同) # 正确:统一使用4个空格 def my_func(): print("第一行") # 4个空格 print("第二行") # 4个空格

3. 参数不匹配

python

# 定义 def greet(name, age): print(f"{name} is {age} years old") # 错误调用:缺少参数 greet("Alice") # TypeError: missing 1 required argument # 正确调用 greet("Alice", 25)

4. 返回值使用错误

python

# 无返回值函数 def print_sum(a, b): print(a + b) # 没有return语句 # 错误:试图使用返回值 result = print_sum(3, 5) # result是None print(result * 2) # TypeError: 不能将None与数字相乘

💎 核心要点总结

1. 函数三要素

  • 名称:描述函数功能

  • 参数:接收输入数据

  • 返回值:输出处理结果

2. 定义与调用

  • 定义:使用def关键字,只定义不执行

  • 调用:使用函数名加括号,传入参数值

3. 返回值机制

  • 有返回值:使用return返回具体结果

  • 无返回值:默认返回None,用于执行操作

4. 设计原则

  • 单一职责:一个函数只做一件事

  • 明确命名:函数名应清晰表达功能

  • 良好注释:使用文档字符串说明用途

编程思维:函数是编程中的基本构建块。就像乐高积木一样,将小块的、专门的功能组合起来,可以构建出复杂而强大的程序。学会设计好的函数,是成为高效程序员的关键一步!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/12 4:51:32

面向所有人的Python编程——循环迭代

&#x1f504; 循环&#xff1a;自动化重复任务&#x1f4cc; 循环的核心价值计算机的优势&#xff1a;重复相同任务而不出错人类的劣势&#xff1a;重复任务容易出错且效率低编程目标&#xff1a;将重复任务自动化&#x1f501; while循环&#xff1a;不确定循环&#x1f4dd;…

作者头像 李华
网站建设 2026/4/15 5:52:55

Excalidraw描绘区块链结构:区块链接示意

Excalidraw描绘区块链结构&#xff1a;区块链接示意 你有没有经历过这样的场景&#xff1f;在一次紧张的架构评审会上&#xff0c;开发、产品和安全三方围绕“区块链如何防篡改”争论不休——每个人脑中的模型都不一样&#xff0c;却谁也说不清。最终&#xff0c;有人掏出一张草…

作者头像 李华
网站建设 2026/4/15 18:05:58

Excalidraw构建库存管理系统:补货预警机制图示

Excalidraw构建库存管理系统&#xff1a;补货预警机制图示 在一次产品评审会上&#xff0c;团队正为“库存低于多少时该触发采购”争论不休。产品经理说“感觉快没了就得提醒”&#xff0c;运营认为“至少留两周销量”&#xff0c;而开发则追问&#xff1a;“那系统怎么判断&a…

作者头像 李华
网站建设 2026/4/12 6:16:19

29、Windows 7 管理与安全设置全解析

Windows 7 管理与安全设置全解析 1. 利用组策略管理 Windows 7 组策略是管理域内用户和计算机对象的强大工具。可以创建组策略对象(GPO)并将其链接到站点、域或组织单位(OU)。当应用多个 GPO 时,所有设置会合并应用。若存在冲突,最后应用的 GPO 生效,应用顺序为本地、…

作者头像 李华
网站建设 2026/4/12 16:56:56

基于Python+大数据+SSM数据分析系统(源码+LW+调试文档+讲解等)/数据分析工具/数据分析平台/数据分析软件/数据系统/分析系统/数据管理分析系统/大数据分析系统

博主介绍 &#x1f497;博主介绍&#xff1a;✌全栈领域优质创作者&#xff0c;专注于Java、小程序、Python技术领域和计算机毕业项目实战✌&#x1f497; &#x1f447;&#x1f3fb; 精彩专栏 推荐订阅&#x1f447;&#x1f3fb; 2025-2026年最新1000个热门Java毕业设计选题…

作者头像 李华