Python函数

程序员卷不动了 2023-03-14 PM 455℃ 0条

Python中的函数是一组可以重复使用的代码块,用于执行特定任务。在Python中,定义函数需要使用def关键字,它具有以下语法格式:

 def function_name(parameters):
    """optional function docstring"""
    function code
    [return expression]

在函数定义中,function_name是函数的名称,参数是传递给函数的数据。可以省略参数,如果函数没有返回值,则return语句可以省略,函数代码必须缩进4个空格或一个制表符或两个空格。

下面是一个简单的Python函数的示例,该函数将两个数字相加并返回结果:

def add_numbers(x, y):
    return x + y

result = add_numbers(1, 2)
print(result) # 输出3

该函数将两个参数x和y相加,并返回它们的和。在该示例中,调用该函数并将1和2作为参数传递给它。函数返回结果3,该值分配给result变量,然后通过print函数打印到屏幕上。

当我们定义一个函数时,我们可以使用各种类型的参数来表示不同的数据类型。下面是常见的函数参数类型:

  1. 位置参数(Positional Arguments):这些参数是按照顺序传递的,通过名称在函数内访问它们。
 def greeting(name, message):
    print(f"{message} {name}!")
    
greeting("John", "Hi") # 输出 Hi John!
  1. 关键字参数(Keyword arguments):这些参数是使用名称传递的,它们的顺序并不重要。
 def greeting(name, message):
    print(f"{message} {name}!")
    
greeting(message="Hi", name="John") # 输出 Hi John!
  1. 默认参数(Default Arguments):这些参数有一个默认的值,如果调用函数时没有提供参数,则使用默认值。
 def greeting(name="Guest", message="Hello"):
    print(f"{message} {name}!")
    
greeting() # 输出 Hello Guest!
  1. 可变参数(Variadic Arguments):这些参数能够接收任意数量的参数,使用*操作符让Python把它们转换成一个元组(tuple)。
 def sum(*numbers):
    total = 0
    for number in numbers:
        total += number
    return total

print(sum(1, 2, 3, 4)) # 输出10
  1. 关键字可变参数(Keyword Variadic Arguments):这些参数能够接收任意数量的关键字参数,使用**操作符让Python把它们转换成一个字典(dict)。
 def print_scores(**students):
    for name, score in students.items():
        print(f"{name} scored {score}")

print_scores(John=90, Jane=85, Alice=95) 
# 输出:
# John scored 90
# Jane scored 85
# Alice scored 95

除此之外,函数还可以包括以下内容:

  1. 注释(Comments):提供有关函数的文档说明,也称为文档字符串(docstrings)。
 def greeting(name, message):
    """打印问候语"""
    print(f"{message} {name}!")
  1. 局部变量(Local Variables):在函数内部定义的变量,只能在函数内部使用。
 def greeting(name, message):
    greeting = f"{message} {name}!"
    print(greeting)
  1. 全局变量(Global Variables):在函数外部定义的变量,可以在整个程序中使用。
 greeting = "Hello"

def greeting(name):
    print(f"{greeting} {name}!")

Python函数还具有以下特性:

  1. 递归(Recursion):函数调用自身的能力。
def fact(n):
    if n == 0:
        return 1
    else:
        return n * fact(n-1)

print(fact(5)) # 输出 120
  1. 匿名函数(Lambda Functions):也称为lambda表达式,是一种用于创建简单函数的快速方法。
sum = lambda x, y: x + y
print(sum(1, 2)) # 输出3
  1. 闭包(Closures):是一个函数及其相关变量以及其代码块的组合,可以访问代码块的外部作用域中声明的变量。
def greeting(message):
    def greet(name):
        print(f"{message} {name}")
    return greet

hello = greeting("Hello")
hello("John") # 输出 Hello John

非特殊说明,本博所有文章均为博主原创。

上一篇 Python循环
下一篇 Python模块

评论啦~