Python是一门非常强大的编程语言,而函数则是 Python 编程中不可或缺的一部分。Python 函数是一段可重复执行的代码块,用于完成特定的任务,并可以通过函数名进行多次调用。下面我将为您详细讲解 Python 函数的分类和使用方法。
Python 函数分类
Python 函数可以分为以下三类:
内置函数
内置函数是指 Python 自带的函数,可以直接使用,而不需要导入任何模块,包括常见的数学函数、字符串函数、列表函数等。例如:
# 数学函数
abs(-1) # 返回1,绝对值
pow(2, 3) # 返回8,2的3次方
# 字符串函数
len('python is great') # 返回15,字符串长度
str.lower('PYTHON') # 返回'python',字符串转为小写字母
标准库函数
标准库函数是指在 Python 中已经定义好了的函数,需要导入相应的模块后方可使用,例如 datetime
模块中的 datetime.now()
函数,可以返回当前时间。例如:
import datetime
now = datetime.datetime.now()
print(now) # 输出形如 '2022-01-01 12:34:56.789' 的当前时间
自定义函数
自定义函数是开发者自己编写的函数,可以完成开发者自己需要的任务。自定义函数需要在代码中定义函数名、参数和执行语句,并可以根据需要返回函数结果。例如:
def add(a, b):
"""
计算两个数的和
:param a: 数字
:param b: 数字
:return: a和b的和
"""
return a + b
result = add(2, 3)
print(result) # 输出 5
Python 函数使用方法
声明函数
声明函数需要使用 def
关键字,后接函数名称和一对圆括号。紧随其后的是冒号和函数主体,函数主体需要缩进4个空格。
def 函数名(参数列表):
"""
文档字符串
"""
函数体
例如:
def add(a, b):
"""
计算两个数的和
:param a: 数字
:param b: 数字
:return: a和b的和
"""
return a + b
调用函数
调用函数只需要使用函数名称和一对圆括号,圆括号中可以传递参数。例如:
result = add(2, 3)
print(result) # 输出 5
参数传递
Python 函数的参数可以是必选参数、默认参数、可变参数和关键字参数。
- 必选参数:必须以正确的顺序传入指定数量的参数。
- 默认参数:如果没有传入相应的参数,则使用默认值。
- 可变参数:允许将不定数量的参数传递给函数。
- 关键字参数:允许将不定数量的关键字参数传递给函数。
例如:
# 必选参数
def add(a, b):
return a + b
result = add(2, 3)
print(result) # 输出 5
# 默认参数
def repeat_str(s, n=2):
return s * n
result = repeat_str('python')
print(result) # 输出 'pythonpython'
# 可变参数
def sum_numbers(*args):
result = 0
for i in args:
result += i
return result
result = sum_numbers(1, 2, 3, 4, 5)
print(result) # 输出 15
# 关键字参数
def person_info(name, age, **kw):
info = {'name': name, 'age': age}
for k, v in kw.items():
info[k] = v
return info
result = person_info('Tom', 18, city='Shanghai', job='Engineer')
print(result) # 输出 {'name': 'Tom', 'age': 18, 'city': 'Shanghai', 'job': 'Engineer'}
示例说明
示例 1:计算平均值
下面是一个计算平均值的自定义函数示例。该函数需要传入一个列表作为参数,计算列表中所有数字的平均值,并返回平均值。
def calculate_avg(lst):
"""
计算列表中所有数字的平均值
:param lst: 数字列表
:return: 平均值
"""
return sum(lst) / len(lst)
result = calculate_avg([1, 2, 3, 4, 5])
print(result) # 输出 3.0
示例 2:合并字典
下面是一个合并字典的自定义函数示例。该函数需要传入任意数量的字典作为参数,将这些字典合并为一个新的字典,并返回结果。
def merge_dicts(*dicts):
"""
合并多个字典
:param dicts: 字典列表
:return: 合并后的字典
"""
merged_dict = {}
for d in dicts:
merged_dict.update(d)
return merged_dict
result = merge_dicts({'a': 1, 'b': 2}, {'c': 3, 'd': 4}, {'e': 5, 'f': 6})
print(result) # 输出 {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6}