网站首页 > 基础教程 正文
函数是 Python 等编程语言中必不可少的构建块。函数是一个命名的代码块,可以在需要时执行。它们有助于将复杂的任务分解为更小、可管理的单元,从而提高代码的可读性和可维护性。函数可实现代码的可重用性,减少冗余并促进模块化设计。它们在使代码更有条理和更高效方面发挥着至关重要的作用。
函数的语法:
def function_name(parameter1, parameter2, ...):
# Function body (code block)
# Statements to perform specific tasks
# Return statement (optional)
- def:此关键字用于在 Python 中定义函数。它告诉解释器将要创建一个新函数。
- function_name:将其替换为函数所需的名称。它应该是反映函数用途的描述性名称。
- parameter1, parameter2, ...:这些是函数的输入参数。可以指定零个或多个参数,以逗号分隔。参数充当数据的占位符,这些数据在调用函数时将传递给函数。
- 函数体:这是编写函数实际实现的代码块。它由一个或多个执行所需任务的语句组成。
- return(可选):该语句用于指定函数在调用时应返回的值。如果不包含 return 语句,则该函数将默认返回。returnNone
示例:两个数字的总和
def Sum(a, b):
s = a + b
return s
result = Sum(12,13)
print('Sum of two numbers is {}'.format(result)))
参数和类型:
参数是在调用函数时传递给函数的实际值或数据。它们是在执行期间替换函数代码中的占位符(参数)的具体值。
位置和关键字参数:
位置参数是最常见的类型,它们按照在函数签名中定义参数的顺序传递给函数。函数调用期间提供的值根据其位置与相应的参数匹配。
def greet(name, age):
print(f"Hello, {name}. You are {age} years old.")
greet("Alice", 30)
# Output: Hello, Alice. You are 30 years old.
在此示例中,参数“Alice”分配给参数“name”,参数 30 分配给参数“age”。
关键字参数使用参数名称传递给函数,允许明确指定哪个参数对应于哪个参数。当函数具有多个参数时,此方法特别有用,并且您希望避免由于参数的顺序而造成混淆。
def greet(name, age):
print(f"Hello, {name}. You are {age} years old.")
greet(age=30, name="Bob")
# Output: Hello, Bob. You are 30 years old.。
在这里,在调用函数时显式提到了参数名称,明确了哪个参数是哪个参数。
默认和非默认参数:
默认参数具有分配给参数的预定义值。如果在函数调用期间未为默认参数提供参数,则将使用默认值。默认参数提供了灵活性,并有助于使某些参数成为可选参数。
def greet(name, age=18):
print(f"Hello, {name}. You are {age} years old.")
greet("Alice")
# Output: Hello, Alice. You are 18 years old.
在这种情况下,如果不提供“age”参数,该函数将使用默认值 18。
非默认参数是指没有默认值的参数。它们必须在函数调用期间提供;否则,该函数将引发错误。
def greet(name, age):
print(f“Hello, {name}.你是{年龄}岁。
greet(“Alice”)
# 这将引发错误,因为这两个参数都是必需的。
任意参数 — *args 和 **kwargs:
有时,您能事先不知道函数需要处理多少个参数。Python 允许使用特殊语法将可变数量的参数传递给使用 *args 和 **kwargs 的函数。*args 和 **kwargs 允许函数接受可变数量的位置和关键字参数。
## positional arguments as sequence
def sum_values(*args):
total = sum(args)
return total
print(sum_values(10, 20, 30))
# Output: 60
## Keyword arguments
def print_values(**kwargs):
for key, value in kwargs.items():
print(key, ":", value)
print_values(a=1, b=2, c=3)
# Output: a : 1
# b : 2
变量范围:
函数中的变量范围是指程序不同部分中变量的可见性和可访问性。在 Python 中,变量具有不同的作用域,具体取决于它们的定义位置,这会影响它们在函数中的可访问性。Python 函数中有三种类型的变量作用域:
函数内部定义的变量具有局部作用域。它们只能在该特定功能内访问,不能在该功能之外访问。局部变量在调用函数时创建,在函数返回时销毁。
def example_function():
x = 10 # Local variable
print(x)
example_function()
# print(x) # This will raise an error as x is not defined outside the function.
在此示例中,变量x在函数 example_function()中定义。它有一个本地作用域,只能在函数内访问。
在任何函数之外定义的变量都具有全局作用域。它们可以从代码的任何部分访问,包括函数内部。全局变量在程序执行过程中保留其值。
c = 10 # Global variable
def example_function():
print(c)
example_function()
print(c) # Global variable c can be accessed outside the function.
在此示例中,变量c在函数外部定义,使其成为全局变量。它可以在函数内部和外部访问。
当在封闭函数中定义变量并在嵌套函数中访问变量时,将使用非局部变量。当在另一个函数(嵌套函数)中有一个函数时,通常会出现这种情况。
def outer_function():
x = 10
def inner_function():
nonlocal x # Use the nonlocal keyword to access the non-local variable.
x += 5
print(x)
inner_function()
outer_function()
在此示例中,变量x在outer_function() 函数中定义。嵌套函数inner_function()使用关键字nonlocal访问变量x,允许它修改非局部变量的值。
猜你喜欢
- 2024-11-16 「python实现」01两数之和(python计算两数之和,并写入文件)
- 2024-11-16 python实战技巧之两个字典,如何实现键同值相加「不等长或等长」
- 2024-11-16 Python 基础——运算符之算术运算符
- 2024-11-16 Python函数(python函数怎么写)
- 2024-11-16 Python入门编程题库37--计算每一行的总和、平均值
- 2024-11-16 Python中的函数用法(Python中的函数用法)
- 2024-11-16 python元组表达式和方法(python元组的方法)
- 2024-11-16 Python入门编程题库40--列表求和(列表数据求和python)
- 2024-11-16 Python显式循环、列表推导式、sum 函数、集合操作与并行处理用法
- 2024-11-16 Python Pandas DataFrame 对某一列求和
- 06-18单例模式谁都会,破坏单例模式听说过吗?
- 06-18Objective-c单例模式的正确写法「藏」
- 06-18单例模式介绍(单例模式都有哪些)
- 06-18前端设计-单例模式在实战中的应用技巧
- 06-18PHP之单例模式(php单例模式连接数据库)
- 06-18设计模式:单例模式及C及C++实现示例
- 06-18python的单例模式(单例 python)
- 06-18你认为最简单的单例模式,东西还挺多
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- 单例 (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)