Python基础——函数

目录

一. 定义函数

二. 调用函数

三. 函数的参数

1. 按位置传参

2. 按关键字传参

3. 默认参数

4. 可变长参数

四. 函数的返回值

五. 函数作为参数

六. 递归函数

七. 函数注解


Python 函数是执行特定任务的可重用代码块。在 Python 中,函数使用 def 关键字定义,可以带有参数和返回值。以下是关于 Python 函数的基础知识及其使用方法。

一. 定义函数

函数的基本语法如下:

def function_name(parameters):
    # 函数体
    return value
  • def 是定义函数的关键字。

  • function_name 是函数的名称。

  • parameters 是可选的输入参数,可以有多个,用逗号分隔。也可以没有参数。

  • return 用于返回函数的结果,return 后面的值是函数的返回值。没有 return 时,函数返回 None

简单的函数示例:

def greet(name):
    print(f"Hello, {name}!")

greet("Alice")  # 输出: Hello, Alice!

在这个例子中,greet 是一个接受一个参数 name 的函数,函数体输出一条问候消息。

二. 调用函数

在Python中调用函数非常简单,定义好函数之后,我们通过函数名加上圆括号来调用它。

# 定义一个简单的函数
def greet():
    print("Hello, World!")

# 调用该函数
greet()

在这个示例中,greet 是一个无参数的函数,我们通过 greet() 来调用它。当你运行这段代码时,它会输出 "Hello, World!"。 

三. 函数的参数

  • 定义时小括号中的参数,用来接收参数用的,称为 “形参”。

  • 调用时小括号中的参数,用来传递给函数用的,称为 “实参”。

#形参
def add(a, b):  # 'a' 和 'b' 是形参
    return a + b


#实参
result = add(3, 5)  # 3 和 5 是实参
print(result)  # 输出 8

在 Python 中,实参传递给形参的方式有不同的类型,主要有以下几种:

1. 按位置传参

当你按照参数的顺序传递实参时,称为按位置传参。形参会按照顺序依次接收实参的值。

def greet(name, age):
    print(f"Hello, {name}. You are {age} years old.")

greet("Alice", 30)  # 按位置传参,"Alice" 给 name,30 给 age
2. 按关键字传参

按关键字传参是通过指定形参的名字来传递实参。这种方式不依赖于顺序,可以任意顺序传递实参。

def greet(name, age):
    print(f"Hello, {name}. You are {age} years old.")

greet(age=30, name="Alice")  # 按关键字传参
3. 默认参数

函数定义时可以为形参设置默认值,如果调用时没有传入实参,那么使用默认值。

def greet(name, age=25):
    print(f"Hello, {name}. You are {age} years old.")

greet("Alice")  # 只传递了一个实参,age 使用默认值 25
4. 可变长参数

*args:允许传入任意数量的位置参数,args 是一个元组,包含了所有传入的参数。

def greet(*names):
    for name in names:
        print(f"Hello, {name}")

greet("Alice", "Bob", "Charlie")  # 传入多个位置参数

 **kwargs:允许传入任意数量的关键字参数,kwargs 是一个字典,包含了所有传入的关键字参数。

def greet(**info):
    for key, value in info.items():
        print(f"{key}: {value}")

greet(name="Alice", age=30)  # 传入多个关键字参数

四. 函数的返回值

函数通过 return 可以返回一个结果给调用者,如果没有明确的 return 语句,函数会默认返回 None

# 定义一个返回值的函数
def add(a, b):
    return a + b

# 调用函数并将结果存储在一个变量中
result = add(5, 3)
print(result)

输出:

8

这里,add 函数接受两个参数 a b,并返回它们的和。在调用 add(5, 3) 时,返回值 8 被存储在 result 变量中,并打印出来。

五. 函数作为参数

函数可以作为参数传递给其他函数:

def apply_function(f, x):
    return f(x)

def square(x):
    return x * x

result = apply_function(square, 5)
print(result)  # 输出: 25

六. 递归函数

递归函数是指函数直接或间接地调用自身。使用递归时需要注意设置退出条件,以避免无限递归:

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)

print(factorial(5))  # 输出: 120

在这个例子中,factorial 函数计算一个数的阶乘,通过递归调用自己来实现。

七. 函数注解

从Python 3.0 开始,可以在函数定义中添加注解,用于描述参数类型和返回值类型(但它们不会影响程序的行为,主要用于工具或 IDE 提供更好的支持)。

def greet(name: str) -> str:
    return f"Hello, {name}!"

在这个例子中,name: str 表示 name 参数应该是一个字符串,-> str 表示函数返回一个字符串。  

总结:在 Python 中,函数是一等公民,这意味着它们可以被赋值给变量、作为参数传递给其他函数以及从函数中返回。

本文是转载文章,点击查看原文
如有侵权,请联系 lx@jishuguiji.net 删除。