Python 基础 (一)Python基本认识与环境搭建 | Python 基础 (一)Python基本认识与环境搭建 |
---|---|
Python 基础 (二)Python变量与基本数据类型 | Python 基础 (二)Python变量与基本数据类型 |
Python 基础 (三)Python基本语句与基本运算 | Python 基础 (三)Python基本语句与基本运算 |
Python 基础 (四)Python函数 | Python 基础 (四)Python函数 |
Python 基础 (五)Python包与模块 | Python 基础 (五)Python包与模块 |
Python 基础 (六)Python的文件模块 | Python 基础 (六)Python的文件模块 |
Python 基础 (七)Python的异常处理机制 | Python 基础 (七)Python的异常处理机制 |
Python 基础 (八)Python的类与对象 | Python 基础 (八)Python的类与对象 |
Python 基础 (九)Python的内置模块 | Python 基础 (九)Python的内置模块 |
Python 基础 (十)Python实现简单的图书管理系统 | Python 基础 (十)Python实现简单的图书管理系统 |
你可以定义一个由自己想要功能的函数,以下是简单的规则:
Python 定义函数使用 def 关键字,一般格式如下:
def 函数名(参数列表): 函数体
默认情况下,参数值和参数名称是按函数声明中定义的顺序匹配起来的,下面的案例:
# ---encoding:utf-8---
# @Time : 2023/9/2 15:09
# @Author : Darwin_Bossen
# @Email :[email protected]
# @Site : 函数定义
# @File : DefTest.py
# 函数定义
def printme(str):
print(str)
return
if __name__ == '__main__':
printme('Hello World')
printme('Hello Again')
printme('Hello Python')
可更改(mutable)与不可更改(immutable)对象
在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。
python 函数的参数传递:
python 中一切都是对象,严格意义我们不能说值传递还是引用传递,我们应该说传不可变对象和传可变对象。
# ---encoding:utf-8---
# @Time : 2023/9/2 15:14
# @Author : Darwin_Bossen
# @Email :[email protected]
# @Site : 函数参数不可变对象
# @File : NoChangeObject.py
# 函数参数不可变对象
def change(a):
print(id(a)) # 指向的是同一个对象
a = 10
print(id(a)) # 一个新对象
if __name__ == '__main__':
a = 1
print(id(a))
change(a)
# ---encoding:utf-8---
# @Time : 2023/9/2 15:17
# @Author : Darwin_Bossen
# @Email :[email protected]
# @Site : 函数参数可变对象
# @File : ChangeObject.py
# 可写函数说明
def changeme( mylist ):
"修改传入的列表"
mylist.append([1,2,3,4])
print ("函数内取值: ", mylist)
return
if __name__ == '__main__':
# 调用changeme函数
mylist = [10,20,30]
changeme( mylist )
print ("函数外取值: ", mylist)
总结
在Python中,函数参数传递有两种主要方式:传递参数通过值(传值调用)和传递参数通过引用(传引用调用)。
num
的值在函数内部增加了1,但在函数外部没有变化。在这个示例中,my_numbers
是一个列表,函数modify_list
通过引用访问该列表,并在其末尾添加了一个新元素。
需要注意的是,虽然大多数情况下是通过引用传递参数,但如果在函数内部对参数重新赋值,它将创建一个新的局部变量,不会影响原始参数。这类似于传递参数通过值的行为。
# ---encoding:utf-8---
# @Time : 2023/9/2 15:09
# @Author : Darwin_Bossen
# @Email :[email protected]
# @Site : 函数定义
# @File : DefTest.py
# 函数定义
def printme(str):
print(str)
return
if __name__ == '__main__':
printme('Hello World')
printme('Hello Again')
printme('Hello Python')
# ---encoding:utf-8---
# @Time : 2023/9/2 15:09
# @Author : Darwin_Bossen
# @Email :[email protected]
# @Site : 函数定义
# @File : DefTest.py
# 函数定义
def printme(str):
print(str)
return
if __name__ == '__main__':
printme('Hello World')
printme('Hello Again')
printme('Hello Python')
# 关键字参数
printme(str='Hello Python')
# 默认参数
def printinfo(name, age=35):
print('Name:', name)
print('Age:', age)
return
你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述 2 种参数不同,声明时不会命名。
# ---encoding:utf-8---
# @Time : 2023/9/2 15:09
# @Author : Darwin_Bossen
# @Email :[email protected]
# @Site : 函数定义
# @File : DefTest.py
# 可写函数说明
def printinfo( arg1, *vartuple ):
"打印任何传入的参数"
print ("输出: ")
print (arg1)
print (vartuple)
# 调用printinfo 函数
printinfo( 70, 60, 50 )
参数
在Python中,函数参数允许您传递信息给函数,以便函数可以执行特定的任务或操作。Python中的参数可以分为以下几种类型:
def add(a, b):
return a + b
result = add(3, 5)
在这个示例中,a
和b
是位置参数,分别接收值3和5。
def greet(name, message):
print(f"{message}, {name}!")
greet(message="Hello", name="Alice")
在这里,我们明确指定了参数的名称,以便更清晰地了解每个参数的含义。
def greet(name, message="Hello"):
print(f"{message}, {name}!")
greet("Bob") # 使用默认的message值
在这个示例中,如果未提供message
参数,它将默认为"Hello"。
def add(*args):
result = 0
for num in args:
result += num
return result
total = add(1, 2, 3, 4)
def display_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
display_info(name="Alice", age=30, city="New York")
这些可变长参数允许函数处理不定数量的参数。
*
来指定参数后必须使用关键字传递。这样可以强制调用者使用关键字,而不是位置传递。def greet(name, *, message="Hello"):
print(f"{message}, {name}!")
greet("Alice") # 报错,必须使用关键字参数
greet(name="Alice") # 正确的方式
Python 使用 lambda 来创建匿名函数。
所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。
语法
lambda 函数的语法只包含一个语句,如下:
lambda [arg1 [,arg2,.....argn]]:expression
# ---encoding:utf-8---
# @Time : 2023/9/2 15:26
# @Author : Darwin_Bossen
# @Email :[email protected]
# @Site : 匿名函数
# @File : Lambda.py
# 匿名函数
sum = lambda arg1, arg2: arg1 + arg2
if __name__ == '__main__':
sum(10, 20)
总结
在Python中,匿名函数也被称为lambda函数。它们是一种特殊类型的函数,通常用于定义简单的、一次性的函数。lambda函数的语法非常简洁,通常只包含一个表达式。它们可以在需要函数作为参数的情况下使用,或者在需要一个短小的函数来执行某些操作时很有用。
以下是lambda函数的基本语法和示例:
lambda arguments: expression
lambda
关键字用于定义lambda函数。arguments
是函数的参数列表。expression
是函数的返回值表达式。示例1:一个简单的lambda函数,用于求平方。
square = lambda x: x ** 2
result = square(5) # 结果为25
示例2:lambda函数作为排序函数的键。
students = [
{"name": "Alice", "score": 80},
{"name": "Bob", "score": 75},
{"name": "Charlie", "score": 90}
]
# 使用lambda函数按照分数对学生列表进行排序
sorted_students = sorted(students, key=lambda student: student["score"], reverse=True)
示例3:lambda函数作为map()函数的参数。
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x ** 2, numbers)) # [1, 4, 9, 16, 25]
当涉及到Python函数时,函数是一种重要的编程概念,用于组织、重用和模块化代码。以下是有关Python函数的详细介绍:
def
来定义函数。函数通常包括函数名、参数列表、冒号和函数体。例如:这个函数名为greet
,接受一个参数name
,然后在函数体中打印一条问候语。
greet("Alice")
这将调用greet
函数,并将"Alice"作为参数传递给它。
def add(a, b=0):
return a + b
在这个例子中,add
函数接受两个参数,a
是必需的,而b
是可选的,默认为0。
return
语句来返回值。例如:def multiply(x, y):
result = x * y
return result
调用multiply(2, 3)
将返回6。
help()
函数或文档工具生成文档。lambda
关键字创建。add = lambda x, y: x + y