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

Python3(16) 函数

        在 Python 编程中,函数是实现代码模块化、提高代码复用性的重要工具。通过将特定功能封装成函数,可以使代码结构更加清晰,便于维护和扩展。通过详细的代码示例,系统地学习 Python3 函数的相关知识,方便日后复习回顾。

一、函数的定义与调用

1.1 函数的基本定义

        Python 中使用def关键字定义函数,基本语法结构如下:

def function_name(parameters):"""函数文档字符串,用于描述函数功能"""statementsreturn expression

        其中,function_name是函数名,parameters是参数列表(可以为空),statements是函数体中的执行语句,return expression用于返回函数执行结果(可选)。例如,定义一个简单的加法函数:

def add_numbers(a, b):"""计算两个数的和:param a: 第一个加数:param b: 第二个加数:return: 两数之和"""return a + b

1.2 函数的调用

        定义好函数后,通过函数名和参数来调用函数。例如:

result = add_numbers(3, 5)
print(result)  # 输出: 8

        调用add_numbers函数时,传入参数35,函数执行后返回两数之和,并将结果赋值给result变量。


二、函数参数

2.1 必备参数

        必备参数是调用函数时必须传入的参数,它们在函数定义中按照顺序依次排列。例如:

def greet(name):print(f"Hello, {name}!")# 正确调用
greet("Alice")  # 输出: Hello, Alice!# 错误调用,缺少参数会报错
# greet()  # 报错: TypeError: greet() missing 1 required positional argument: 'name'

2.2 关键字参数

        关键字参数允许在调用函数时使用参数名=值的形式指定参数,这样可以打乱参数的顺序。例如:

def describe_person(name, age):print(f"{name} is {age} years old.")describe_person(age=30, name="Bob")  # 输出: Bob is 30 years old.

2.3 默认参数

        在定义函数时,可以为参数设置默认值。当调用函数时未传入该参数,函数将使用默认值。例如:

def say_hello(message="Hello"):print(message)say_hello()  # 输出: Hello
say_hello("Hi!")  # 输出: Hi!

2.4 不定长参数

  • *args(元组形式):用于接收任意数量的非关键字参数,这些参数会被封装成一个元组。例如:
def sum_all(*args):result = 0for num in args:result += numreturn resultprint(sum_all(1, 2, 3, 4, 5))  # 输出: 15
  • **kwargs(字典形式):用于接收任意数量的关键字参数,这些参数会被封装成一个字典。例如:
def print_info(**kwargs):for key, value in kwargs.items():print(f"{key}: {value}")print_info(name="Alice", age=25, city="New York")

三、函数返回值

3.1 返回单个值

        函数可以通过return语句返回一个值,例如:

def square(x):return x ** 2result = square(4)
print(result)  # 输出: 16

3.2 返回多个值

        Python 支持函数返回多个值,实际上返回的是一个元组。例如:

def divide(a, b):quotient = a // bremainder = a % breturn quotient, remainderq, r = divide(10, 3)
print(f"商: {q}, 余数: {r}")  # 输出: 商: 3, 余数: 1

四、函数的嵌套定义与调用

4.1 嵌套函数定义

        在一个函数内部可以定义另一个函数,内部函数只能在外部函数内被调用。例如:

def outer_function():print("进入外部函数")def inner_function():print("进入内部函数")inner_function()print("退出外部函数")outer_function()

4.2 闭包

        闭包是指内部函数引用了外部函数的变量,并且外部函数返回内部函数的引用。例如:

def multiplier(factor):def multiply(x):return x * factorreturn multiplydouble = multiplier(2)
print(double(5))  # 输出: 10

五、匿名函数(Lambda 函数)

        使用lambda关键字可以创建匿名函数,其语法为:lambda arguments: expression。例如:

add = lambda a, b: a + b
print(add(3, 4))  # 输出: 7

        匿名函数常用于需要简短函数的场景,如与map()filter()sorted()等函数结合使用:

nums = [1, 2, 3, 4, 5]
squared_nums = list(map(lambda x: x ** 2, nums))
print(squared_nums)  # 输出: [1, 4, 9, 16, 25]

六、函数的文档字符串

        在函数定义中,使用三引号"""'''添加文档字符串,用于描述函数的功能、参数和返回值。例如:

def factorial(n):"""计算n的阶乘:param n: 正整数:return: n的阶乘值"""result = 1for num in range(1, n + 1):result *= numreturn result

        通过help()函数可以查看函数的文档字符串:

help(factorial)

七、总结

        Python3 函数通过参数传递、返回值、嵌套定义等特性,实现了代码的模块化和复用性。掌握函数的定义、参数类型、返回值以及匿名函数等核心知识,能够帮助我们将复杂问题分解为多个独立的功能模块,提升代码的可读性和可维护性。在实际编程中,应根据需求合理选择函数的参数形式和返回值类型,灵活运用函数实现高效的编程逻辑。

http://www.xdnf.cn/news/3079.html

相关文章:

  • 安卓基础(无障碍点击)
  • 通用人工智能(AGI)的技术演进
  • 新人销售如何找精准客户?
  • 语言特性的发展与应用:从基础到前沿的全面解析
  • 25年第八本【活着】
  • 基于STM32、HAL库的DS28E25安全验证及加密芯片驱动程序设计
  • 一些常用的深度学习可视化平台:TensorBoard、Weights Biases (wandb)、VisualDL
  • C++ 原子操作的内存序(memory ordering)
  • ptpx常用操作
  • 企业选择IT技术人员外包能解决哪些问题
  • 【Axure高保真原型】动态地图路线
  • 三维引擎HOOPS SDK适配Linux ARM64,对国产工业软件意味着什么?
  • 深入剖析扩散模型对镜子反射理解局限:MirrorVerse 项目改进数据集与训练方法以提升反射处理表现的研究
  • 基于STM32、HAL库的ATECC608A安全验证及加密芯片驱动程序设计
  • LDO中反向二极管作用
  • 【每天一个知识点】GPU(图形处理单元)和CPU(中央处理单元)
  • Java—— 四道算法经典题
  • jthread是否可以完全取代thread?
  • 共享货源系统,多商户独立站助力行业资源整合
  • 掌握 Linux 中 SELinux 的强制访问控制机制和 iptables、 firewalld 两种防火墙以及他们的使用方法
  • 双系统,bios默认设置启动ubuntu+ubuntu改启动grub设置
  • 学习在暑假避免躺平和内卷(马井堂)
  • FlexNoC随手记
  • 双差分探头法精准测量共模电压的技术解析
  • g4f api报错:ImportError: cannot import name ‘model_validator‘ from ‘pydantic‘
  • 【探寻C++之旅】第十二章:异常
  • AI国学智慧语录视频,条条视频10W+播放量
  • 10.学习笔记-MyBatisPlus(P105-P110)
  • Educational Codeforces Round 178 (Rated for Div. 2)E. Unpleasant Strings
  • java执行linux命令查询信息