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

Python函数入门指南:从定义到应用

Langchain系列文章目录

01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南
02-玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖
03-全面掌握 LangChain:从核心链条构建到动态任务分配的实战指南
04-玩转 LangChain:从文档加载到高效问答系统构建的全程实战
05-玩转 LangChain:深度评估问答系统的三种高效方法(示例生成、手动评估与LLM辅助评估)
06-从 0 到 1 掌握 LangChain Agents:自定义工具 + LLM 打造智能工作流!

python系列文章目录

01-Python 基础语法入门:从变量到输入输出,零基础也能学会!
02-Python 流程控制终极指南:if-else 和 for-while深度解析
03-Python 列表与元组全攻略:从新手到高手的必备指南
04-Python 字典与集合:从入门到精通的全面解析
05-Python函数入门指南:从定义到应用
06-Python 函数高级特性:从默认参数到闭包的全面解析
07-Python 模块与包:从零到自定义的全面指南
08-Python异常处理:从入门到精通的实用指南
09-Python 文件操作:从零基础到日志记录实战
10-Python面向对象编程入门:从类与对象到方法与属性
11-Python类的方法与属性:从入门到进阶的全面解析


文章目录

  • Langchain系列文章目录
  • python系列文章目录
  • 前言
  • 一、函数的定义与使用
    • 1.1 函数的定义
      • 1.1.1 基本语法
      • 1.1.2 示例代码:简单的问候函数
      • 1.1.3 示例代码:带返回值的计算函数
    • 1.2 函数的调用
      • 1.2.1 调用无返回值函数
      • 1.2.2 调用有返回值函数
      • 1.2.3 注意事项
  • 二、参数与返回值
    • 2.1 参数
      • 2.1.1 位置参数
      • 2.1.2 关键字参数
      • 2.1.3 默认参数
        • (1)常见问题
    • 2.2 返回值
      • 2.2.1 返回单个值
      • 2.2.2 返回多个值
      • 2.2.3 常见问题排查
  • 三、局部变量与全局变量
    • 3.1 局部变量
      • 3.1.1 示例代码
      • 3.1.2 应用场景
    • 3.2 全局变量
      • 3.2.1 示例代码
    • 3.3 在函数内修改全局变量
      • 3.3.1 示例代码
      • 3.3.2 常见问题排查
  • 四、总结


前言

在Python编程中,函数是构建高效、可复用代码的核心工具。无论你是刚刚入门编程的初学者,还是希望深入理解代码组织方式的进阶开发者,掌握函数的定义与使用都至关重要。本文将围绕“函数的定义与调用”、“参数与返回值”以及“局部变量与全局变量”三大主题,带你从零基础逐步进阶到实用技能。通过通俗易懂的讲解、清晰的代码示例和实际应用场景,你将快速建立起对Python函数的系统化认知,轻松应对日常编程任务。


一、函数的定义与使用

函数是Python中封装可重复执行代码块的方式。它不仅能提高代码的复用性,还能让程序结构更清晰、易于维护。本节将从函数的定义和调用入手,带你迈出学习函数的第一步。

1.1 函数的定义

1.1.1 基本语法

在Python中,定义函数使用def关键字,后面跟着函数名、括号中的参数列表和冒号,再加上缩进的函数体。以下是基本结构:

def function_name(parameters):
    # 函数体:实现功能的代码
    return result  # 可选:返回结果
  • def:声明函数的关键字。
  • function_name:函数的名字,建议用小写字母和下划线命名,如calculate_sum
  • parameters:参数列表,可以为空,也可以包含多个参数。
  • return:返回结果给调用者,没有return则默认返回None

1.1.2 示例代码:简单的问候函数

来看一个简单的例子:

def greet(name):
    print(f"你好,{name}!")

关键点

  • 函数名为greet,参数为name
  • 函数体使用print输出问候语。
  • 没有return,调用时只打印内容,不返回值。

1.1.3 示例代码:带返回值的计算函数

再看一个带返回值的函数:

def add_numbers(a, b):
    sum = a + b
    return sum  # 返回两个数的和

关键点

  • 参数ab用于接收两个数字。
  • return sum将计算结果返回给调用者。

1.2 函数的调用

定义好函数后,通过函数名和参数调用它,执行函数体内的代码。

1.2.1 调用无返回值函数

使用上面的greet函数:

greet("小明")

输出

你好,小明!

说明:传入参数"小明",函数执行打印任务。

1.2.2 调用有返回值函数

使用add_numbers函数:

result = add_numbers(3, 7)
print(result)

输出

10

说明:传入3和7,函数返回10,赋值给result

1.2.3 注意事项

  • 参数匹配:调用时参数的数量和顺序必须与定义时一致。
  • 返回值接收:如果函数有返回值,可以用变量接收;如果没有返回值,接收到的是None
    例如:
result = greet("小红")
print(result)  # 输出: None

二、参数与返回值

参数和返回值是函数的“输入”和“输出”,让函数更灵活、更强大。本节将深入讲解参数的类型和返回值的用法。

2.1 参数

参数是函数接收外部数据的方式,Python支持多种参数类型。

2.1.1 位置参数

位置参数按顺序传递,调用时必须与定义时的参数顺序一致。

def subtract(a, b):
    return a - b

print(subtract(10, 4))  # 输出: 6

关键点:10赋给a,4赋给b

2.1.2 关键字参数

通过指定参数名调用函数,可以不按顺序传递参数。

print(subtract(b=4, a=10))  # 输出: 6

关键点:明确指定a=10b=4,顺序无关。

2.1.3 默认参数

在定义时为参数设置默认值,调用时可以省略该参数。

def greet(name, message="你好"):
    print(f"{message}{name}!")

greet("小刚")         # 输出: 你好,小刚!
greet("小李", "嗨")   # 输出: 嗨,小李!

关键点

  • message默认值是"你好"。
  • 调用时可以覆盖默认值。
(1)常见问题

如果默认参数放错位置会怎样?
错误示例:

def wrong_func(message="你好", name):
    print(f"{message}{name}!")

报错:SyntaxError: non-default argument follows default argument
解决办法:默认参数必须放在非默认参数后面。

2.2 返回值

函数通过return语句将结果返回给调用者,可以返回单个值或多个值。

2.2.1 返回单个值

def multiply(a, b):
    return a * b

result = multiply(5, 3)
print(result)  # 输出: 15

2.2.2 返回多个值

Python支持返回多个值,实际上返回的是一个元组。

def divide(a, b):
    quotient = a // b  # 商
    remainder = a % b  # 余数
    return quotient, remainder

q, r = divide(10, 3)
print(f"商: {q}, 余数: {r}")  # 输出: 商: 3, 余数: 1

关键点

  • return quotient, remainder返回元组(3, 1)。
  • 可以用多个变量解包接收。

2.2.3 常见问题排查

问题:函数没返回值却尝试使用返回值会怎样?

def no_return():
    print("无返回值")

result = no_return()
print(result)  # 输出: None

解决办法:明确函数是否需要返回值,若不需要,可省略return


三、局部变量与全局变量

变量的作用域决定了它在哪里可以被访问。本节将讲解局部变量和全局变量的区别及使用方法。

3.1 局部变量

3.1.1 示例代码

def func():
    x = 10  # 局部变量
    print(x)

func()  # 输出: 10
# print(x)  # 报错: NameError: name 'x' is not defined

关键点x仅在func内部有效,外部访问会报错。

3.1.2 应用场景

局部变量适合临时存储函数内的计算结果,避免污染全局命名空间。

3.2 全局变量

全局变量在函数外部定义,整个程序都可以访问。

3.2.1 示例代码

y = 20  # 全局变量

def func():
    print(y)  # 访问全局变量

func()  # 输出: 20
print(y)  # 输出: 20

3.3 在函数内修改全局变量

如果想在函数内修改全局变量,必须用global关键字声明。

3.3.1 示例代码

z = 30  # 全局变量

def func():
    global z
    z = 40  # 修改全局变量
    print(z)

func()  # 输出: 40
print(z)  # 输出: 40

关键点global z声明z为全局变量,修改会影响外部。

3.3.2 常见问题排查

问题:不加global会怎样?

z = 30

def func():
    z = 40  # 创建局部变量,未修改全局变量
    print(z)

func()  # 输出: 40
print(z)  # 输出: 30

解决办法:明确使用global,否则函数内赋值只创建局部变量。


四、总结

本文从基础到进阶,系统讲解了Python函数的定义与使用。通过以下核心要点,你可以快速掌握函数相关知识:

  • 定义与调用:用def定义函数,通过函数名调用,完成代码复用。
  • 参数:支持位置参数、关键字参数和默认参数,灵活传递数据。
  • 返回值:用return返回单个或多个值,增强函数功能。
  • 变量作用域:区分局部变量和全局变量,合理使用global修改全局变量。

这些知识是Python编程的基础,结合文中代码示例多加练习,你将能自信地编写函数,解决实际问题。后续学习中,可以进一步探索函数的高级特性,如默认参数、可变参数和闭包,为更复杂的编程任务做好准备。


http://www.kler.cn/a/570205.html

相关文章:

  • 深入浅出:ASP.NET Core 中间件的使用与封装
  • 测试周期紧张?功能与非功能测试的 5 个平衡策略
  • Tailwind CSS 问题:npm error could not determine executable to run
  • 嵌入式C语言学习记录之-14~17day
  • 蓝桥杯 过年【算法赛】
  • vm+centos虚拟机
  • Kafka系列教程 - Kafka 可靠传输 -5
  • HTML在网页开发中的应用与重要性
  • 麒麟V10-SP2-x86_64架构系统下通过KVM创建虚拟机及配置虚机的NAT、Bridge两种网络模式全过程
  • 销售易CRM:用户体验与市场评价深度分析
  • 【网络安全】——二进制协议 vs 文本协议:从原理到实战的深度解析
  • 二叉树专题练习 ——基于罗勇军老师的《蓝桥杯算法入门C/C++》
  • MySQL调优--12--分批插入/更新数据 ---案例2
  • java数据结构_Map和Set(一文理解哈希表)_9.3
  • 【实战 ES】实战 Elasticsearch:快速上手与深度实践-2.1.3时间序列数据优化(Rollover + ILM策略)
  • 如何通过rust实现自己的web登录图片验证码
  • 【一文读懂】卷积神经网络(CNN)基础详解
  • AI浏览器BrowserUse:Docker运行环境准备(三)
  • 微信小程序自定义导航栏,胶囊菜单按钮高度适配问题
  • 23种设计模式之《中介者模式(Mediator)》在c#中的应用及理解