PY函数知识点及实例代码
PY函数知识点及实例代码
在Python中,函数(function)是一个非常重要的概念,用于组织代码、
实现代码复用和提高代码的可读性。以下是关于Python函数的一些主要知
识点及实例代码:
1. 函数的定义与调用
# 定义函数:使用`def`关键字,后跟函数名和参数列表,最后以冒号结尾
。函数体需要缩进。
def function_name(parameters):
"""函数文档字符串"""
# 函数体
return value
实例01:
def greet(name):
"""向某人打招呼"""
print(f"Hello, {name}!")
greet(Alice) # Hello Aice
# 调用函数:使用函数名加上括号,传入必要的参数。
result = function_name(arguments)
实例02:
def add(a, b):
return a + b
result = add(2, 3) # result = 5
2. 参数传递
# 位置参数:按顺序传递参数。
实例03:
def greet(name, message):
print(f"{name}, {message}")
greet("Alice", "Hello") # Hello Aice
实例04:
def add(a, b):
return a + b
result = add(2, 3) # result = 5
# 关键字参数:通过参数名传递参数,可以不按顺序。
greet(message="Hello", name="Alice")
实例05:
>>> def greet(message="Hello",name="Alice"):
print(f"{message},{name}")
>>> greet()
# Hello,Alice
实例06:
def introduce(name, age):
print(f"My name is {name} and I am {age} years old.")
introduce(age=25, name="Bob") # 输出: My name is Bob and I am
25 years old.
# 默认参数:为参数设置默认值,可以在调用时省略该参数。
实例07:
def greet(name, message="Hello"):
print(f"{message}, {name}!")
greet("Charlie") # 输出: Hello, Charlie!
greet("Charlie", "Hi") # 输出: Hi, Charlie!
# 可变参数:
# `*args`:接收任意数量的位置参数,参数以元组形式传递。
def func(*args):
for arg in args:
print(arg)
实例08:
def print_numbers(*args):
for num in args:
print(num)
print_numbers(1, 2, 3, 4) # 输出: 1 2 3 4
# `kwargs`:接收任意数量的关键字参数,参数以字典形式传递。
def func(kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
实例09:
def print_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_info(name="Diana", age=30, city="New York")
# 输出:
# name: Diana
# age: 30
# city: New York
3. 返回值
# 使用`return`语句返回函数的结果。如果没有`return`语句,函数默认
返回`None`。
实例10:
def add(a, b):
return a + b
result = add(2, 3) # result = 5
4. 局部变量与全局变量
# 局部变量:在函数内部定义的变量,只能在函数内部访问。
# 全局变量:在函数外部定义的变量,可以在整个模块中访问。在函数内
部修改全局变量需要使用`global`关键字。
实例11:
x = 10
def func():
global x
x = 20
func()
print(x) # 输出: 20
5. 匿名函数(Lambda函数)
# 使用`lambda`关键字定义简单的匿名函数,通常用于需要函数对象的场
合,如`map`、`filter`等。
实例12:
add = lambda a, b: a + b
print(add(2, 3)) # result = 5
实例11:
numbers = [4, 2, 9, 1]
sorted_numbers = sorted(numbers, key=lambda x: x % 3)
print(sorted_numbers) # 输出: [9, 1, 4, 2]
6. 高阶函数
# 高阶函数:接受函数作为参数或返回函数作为结果的函数。
# `map(function, iterable)`:将函数应用于可迭代对象的每个元素。
# `filter(function, iterable)`:过滤可迭代对象中使函数返回
`True`的元素。
# `reduce(function, iterable)`:对可迭代对象的元素进行累积操作
。
实例13:
from functools import reduce
numbers = [1, 2, 3, 4, 5]
result = reduce(lambda a, b: a + b, numbers) # result = 15
7. 装饰器(Decorator)
# 装饰器是一种用于修改函数或类的行为的语法糖,通常用于添加额外的
功能,如日志记录、权限验证等。
实例14:
def decorator(func):
def wrapper(*args, kwargs):
print("Before function call")
result = func(*args, kwargs)
print("After function call")
return result
return wrapper
@decorator
def say_hello():
print("Hello")
say_hello()
输出:
Before function call
Hello
After function call
8. 递归函数
# 递归函数是指在函数内部调用自身,用于解决可以分解为相似子问题的
问题。
实例15:
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n # 1)
print(factorial(5)) # 输出: 120
9. 函数的作用域
# 作用域决定了变量可以被访问的范围。Python中有局部作用域、嵌套作
用域、全局作用域和内置作用域。
# 局部作用域:函数内部定义的变量。
# 嵌套作用域:在嵌套函数中,内部函数可以访问外部函数的变量。
# 全局作用域:模块级别的变量。
# 内置作用域:Python内置的名称,如`len`、`print`等。
实例16:
x = "global"
def func():
x = "local"
print(x)
func() # 输出: local
print(x) # 输出: global
10. 函数的文档字符串
# 使用三引号`"""`或`'''`定义的字符串,用于描述函数的功能、参数和
返回值。
实例17:
def add(a, b):
"""
返回两个数的和。
参数:
a (int): 第一个数
b (int): 第二个数
返回:
int: 两个数的和
"""
return a + b
11. 函数式编程工具
# Python提供了一些函数式编程工具,如`map`、`filter`、`reduce`、
`sorted`、`zip`等,可以用于处理可迭代对象。
实例18:
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x 2, numbers)) # [1, 4, 9, 16,
25]
实例19:
numbers = [5, 2, 9, 1]
sorted_numbers = sorted(numbers, key=lambda x: x ** 2)
print(sorted_numbers) # 输出: [1, 2, 5, 9]
# 参数key 会计算每个元素的平方然后作为排序依据但不修改元素值
实例20:
names = ["Alice", "Bob", "Charlie"]
ages = [25, 30, 35]
combined = list(zip(names, ages))
print(combined) # 输出: [('Alice', 25), ('Bob', 30),
('Charlie', 35)]
12. 函数的内省
# Python的函数是对象,可以进行内省操作,如获取函数名、文档字符串
、参数列表等。
实例21:
def func(a, b):
"""This is a function"""
return a + b
print(func.__name__) # 输出: func
print(func.__doc__) # 输出: This is a function
print(func.__module__) # 输出: __main__
print(func.__code__.co_varnames) # 输出: ('a', 'b')
这些知识点涵盖了Python函数的主要方面,掌握这些内容可以帮助大家更好
地编写和理解Python代码。