python 函数基础
在编程的世界里,函数是构建程序大厦的基石。Python作为一种高级编程语言,提供了强大且灵活的函数定义和调用机制。本文将对python函数基础的相关知识进行讲解。
1.函数的目的
函数,作为编程中的基本构造块,承载着代码重用、逻辑清晰与模块化设计的重任。它允许我们将复杂的操作封装为可重复调用的单元,从而简化代码结构,提升开发效率。简单来说就是将一段具有特定功能的代码封装起来,以便在需要时重复使用。
2.函数的定义
Python中的函数通过def关键字进行定义,其基本结构如下:
def 函数名(参数列表):
函数体
return 返回值(可选)
例如,定义一个计算两数之和的函数:
def add(a,b):
return a+b
3.函数的声明与调用
在Python中,函数的定义即为声明。一旦函数被定义,我们就可以通过函数名加上必要的参数来调用它。函数调用时,Python会跳转到函数定义处执行,并在执行完毕后返回调用点继续执行。
# 定义函数(声明函数)
def add(a,b):
return a+b
#调用函数
print(10,20) #输出30
4.函数的形参与实参
函数定义中的参数列表中的参数被称为形式参数(简称形参)。形参在函数定义时指定,但在函数被调用之前并不占用实际的内存空间。它们只是函数期望接收的值的占位符。在函数调用时传递给函数的实际值被称为实际参数(简称实参)。实参在函数调用时占用实际的内存空间,并将它们的值传递给函数中的形参。Python中的参数传递机制遵循“按值传递”的原则,但需要注意的是,对于可变类型(如列表、字典等),传递的是对象的引用,因此在函数内部对可变类型的修改会影响到外部的对象。
def modify_list(lst):
lst.append(10)
my_list = [1, 2, 3]
modify_list(my_list)
print(my_list) # 输出:[1, 2, 3, 10]
5.函数的返回值
函数可以通过return语句返回一个或多个值(在Python 3.6+中,可以使用元组返回多个值)。返回值可以是任何数据类型,包括数字、字符串、列表、字典等。如果函数没有显式地返回任何值,则默认返回None。返回值的存在使得函数能够与外界进行交互,传递计算结果或状态信息。
def add_and_subtract(a, b):
return a + b, a - b
sum_diff = add_and_subtract(5, 3)
print(sum_diff) # 输出:(8, 2)
6.函数的参数类型
Python函数支持多种类型的参数,包括位置参数、关键字参数、默认参数和可变参数(*args和**kwargs)。默认参数允许我们在函数定义时为某些参数指定默认值,从而在调用时省略这些参数。
6.1位置参数:
位置参数是最基本的参数形式,函数调用时参数的位置必须与函数定义时参数的位置一致。
def greet(name, age):
print(f"Hello, my name is {name} and I am {age} years old.")
greet("Alice", 30) # 输出: Hello, my name is Alice and I am 30 years old.
6.2关键字参数:
关键字参数允许你在调用函数时指定参数名,这使得参数的顺序变得不重要。
def greet(name, age):
print(f"Hello, my name is {name} and I am {age} years old.")
greet(age=30, name="Alice") # 输出: Hello, my name is Alice and I am 30 years old.
6.3默认参数:
默认参数在函数定义时为参数指定默认值,如果在函数调用时没有提供该参数,则使用默认值。
def greet(name, age=25):
print(f"Hello, my name is {name} and I am {age} years old.")
greet("Alice") # 输出: Hello, my name is Alice and I am 25 years old.
greet("Bob", 35) # 输出: Hello, my name is Bob and I am 35 years old.
6.4可变参数:
6.4.1*args:
*args 允许你传递任意数量的位置参数到函数中,这些参数在函数内部被收集到一个名为 args 的元组中。
def greet(*args):
for arg in args:
print(arg)
greet("Alice", 30, "Engineer") # 输出: Alice, 30, Engineer
6.4.2 **args:
**kwargs 允许你传递任意数量的关键字参数到函数中,这些参数在函数内部被收集到一个名为 kwargs 的字典中。
def greet(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
greet(name="Alice", age=30, job="Engineer") # 输出: name: Alice, age: 30, job: Engineer
7.匿名函数
Python中的lambda表达式允许我们创建匿名函数,即没有名称的函数。匿名函数通常用于需要函数对象的短暂场景,如作为参数传递给其他函数。lambda表达式的基本语法如下:
lambda 参数列表: 表达式
例如,使用lambda表达式创建一个简单的加法函数:
add = lambda x, y: x + y
print(add(3, 5)) # 输出:8
8.函数的进阶应用
除了基本功能外,Python函数还支持闭包、装饰器、递归等高级特性。闭包允许函数在定义时捕获并保留其外部作用域中的变量;装饰器则提供了一种在不修改原函数代码的情况下扩展或修改函数行为的方法;递归则是一种通过函数调用自身来解决问题的编程技巧。这些功能将在其他文章中进行讲解。
标签:函数,python,基础,Alice,greet,参数,def,name From: https://blog.csdn.net/2201_75622573/article/details/143580108