啥,凭什么Python中函数的返回值可以有多个?

发布时间:2024年01月12日

在这里插入图片描述

你好,我是安然无虞。


在这里插入图片描述

函数

编程语言中的函数,是一段可以被重复使用的代码片段,使用函数能够减少冗余的代码。

函数定义格式

def 函数名(形参列表):
  函数体
  return语句

说明一下:

  • 一个函数可以有一个或者多个形参,也可以没有形参
  • 一个函数中可以有一个或者多个return语句,执行到return语句时函数会立即执行结束,返回到调用位置
  • Python是动态类型语言,函数的形参和返回值都不必指定类型,因此一个函数可以支持多种不同类型的参数

多个返回值

Python中的函数可以有一个或者多个返回值,当有多个返回值时,使用 , 进行分隔。比如:

def getSumAndDif(x, y):
    return x + y, x - y

a = 10
b = 20
sum, dif = getSumAndDif(a, b)

print(f'{a} + {b} = {sum}, {a} - {b} = {dif}')

说明一下:

  • Python当中一个函数可以返回多个值,本质是多元赋值所支持的。

如果函数调用者只想关注该函数的部分返回值,那么可以使用 _ 来忽略不想要的返回值。比如:

_, dif = getSumAndDif(1, 2)
print(dif)

函数调用

关于函数调用格式和调用方式与C/C++等语言相差不多,在这里就不过多阐述了,当然,这里比较难以理解的当属“递归”了,这是一个老生常谈的话题了,我之前也专门写过递归文章,看的老铁也比较多,感兴趣的老铁可以看这两篇:

蓝桥杯算法竞赛系列第二章——深入理解重难点之递归(上)

蓝桥杯算法竞赛系列第二章——深入理解重难点之递归(下)

默认参数和变长参数

默认参数

给函数的形参指定默认值,在调用函数时可以不必给带有默认值的形参传参,此时该形参将会使用我们指定的默认值。

注意一下:

  • 带有默认值的形参应该放在没有默认值的右侧

代码示例:

def Add(data, val = 1):
    return data + val

print(Add(10)) # 11
print(Add(10, 2)) # 12

变长参数

如果想让函数接受任意多个参数,可以在函数定义的形参名称前加上 * ,这时函数将会接受一个参数元组,并且我们可以以形参名[下标]的方式相应的访问传入的各个实参。比如:

def Func(*args):
    n = len(args)
    for i in range(n):
        print(args[i])


Func(1)
Func(1, 2, 3)

变量的作用域

函数操作全局变量

需要注意的是,如果在函数内部尝试访问的变量不存在,就会尝试去全局作用域中查找。比如:

x = 10

def Func():
    print(f'x = {x}')

Func() # x = 10

但是如果想要在函数内部修改全局变量的值,就需要使用global关键字进行声明。比如:

x = 10

def Func():
    global x # 声明
    x = 20
    print(f'函数内部:x = {x}') # x = 20

Func()
print(f'函数外部:x = {x}') # x = 20

如果在函数内部修改全局变量时没有使用global进行声明,那么此时Python解释器会认为你想在函数内部创建一个同名的局部变量,此时你的修改操作就不会影响到全局变量。比如:

x = 10

def Func():
    # global x 
    x = 20
    print(f'函数内部:x = {x}') # x = 20

Func()
print(f'函数外部:x = {x}') # x = 10

If、for、while中的变量

Python中的If、for、while等语句块不会影响变量的作用域,因此在这些语句块中定义的变量,也可以在外面正常使用。比如:

for i in range(10):
    print(f'函数内部:i = {i}')

print(f'函数外部:i = {i}') # i = 9
遇见安然遇见你,不负代码不负卿。
谢谢老铁的时间,咱们下篇再见~
文章来源:https://blog.csdn.net/weixin_57544072/article/details/135561778
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。