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

在这里插入图片描述

你好,我是安然无虞。

文章目录

  • 函数
    • 函数定义格式
    • 函数调用
    • 默认参数和变长参数
      • 默认参数
      • 变长参数
    • 变量的作用域

在这里插入图片描述

函数

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

函数定义格式

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
遇见安然遇见你,不负代码不负卿。
谢谢老铁的时间,咱们下篇再见~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/314213.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript高级程序设计读书记录(十二):函数

函数是ECMAScript中最有意思的部分之一,这主要是因为函数实际上是对象。每个函数都是Function 类型的实例,而 Function 也有属性和方法,跟其他引用类型一样。因为函数是对象,所以函数名就是 指向函数对象的指针,而且不…

Python 解决安装三方包失败的问题

pip 安装三方包失败&#xff0c;常见的情况有三种&#xff1a;不能访问源所在服务器&#xff1b;Python 版本不支持&#xff1b;和本地版本冲突。 不能访问源服务器 对于这张问题&#xff0c;有两种解决方法 # 方法一 pip config set global.index-url <源服务器> pip…

文件操作(你真的会读写文件吗?)

文章目录 一、为什么使用文件&#xff1f;二、什么是文件&#xff1f;2.1 程序文件2.2 数据文件2.3 文件名 三、二进制文件和文本文件3.1 二进制文件3.2 文本文件 四、文件的打开和关闭4.1 流和标准流4.1.1 流4.1.2 标准流 4.2 文件指针4.3 fopen和fclose 五、文件的顺序读写5.…

多无人机集群智能flocking

matlab2020可运行 GitHub - pareshbhambhani/MultiAgent-Flocking-framework: This is part of the current research I am working on.

NX二次开发点通过云配准获取相同体

先找到体的参考方向&#xff08;这个参考方向对于相同体重合之后是相同的&#xff09;&#xff0c;这个时候我们的思路是三个不共线的点确定一个坐标系&#xff0c;然后和绝对方向求转换矩阵。然后获取体的所有边的几何中心&#xff0c;把这些点通过转换矩阵转换之后存起来&…

因成本不断增加,阿里云发布区域调价公告|一周IT资讯

因成本不断增加&#xff0c;阿里云发布域名调价公告 1月9日晚&#xff0c;阿里云在官网发布域名调价公告&#xff1a;因注册局成本上调、域名实名制审核等服务成本不断增加&#xff0c;经慎重考虑&#xff0c;现决定于2024年2月1日&#xff0c;对 .net 英文域名进行价格调整&a…

Java的NIO

Java NIO&#xff08;New I/O&#xff0c;新 I/O&#xff09;是 Java 1.4 版本引入的一组用于进行非阻塞 I/O 操作的 API。相比于传统的 Java I/O&#xff08;或称为 IOStream&#xff09;&#xff0c;Java NIO 提供了更为灵活、可扩展和高性能的 I/O 处理方式。 Java NIO 的核…

【昕宝爸爸小模块】深入浅出之Java 8中的 Stream

深入浅出之Java 8中的 Stream 一、&#x1f7e2;典型解析1.1 &#x1f7e0;Java 8中的Stream 都能做什么1.2 &#x1f7e0;Stream的创建 二、✅ Stream中间操作2.1 &#x1f7e0;Filter2.2 &#x1f7e0;Map2.3 &#x1f7e0;limit / skip2.4 &#x1f7e0;sorted2.5 &#x1…

FFmpeg编程录制音频(Mac OS)

之前我们使用FFmpeg命令行工具进行了简单的音视频操作&#xff0c;这次在Mac OS环境下编写代码实现简单的音频录制功能。 FFmpeg命令行音频录制 首先回顾一下Mac OS环境下简单的音频录制命令行实现&#xff1a; ffmpeg -f avfoundation -i ":0" -t 20 -acodec pcm…

电商平台如何引爆用户自主裂变:从策略到实践的全面解析

在当今竞争激烈的电商市场中&#xff0c;用户裂变成为企业持续增长的关键。如何引导用户自发传播&#xff0c;实现口碑与销量的双赢&#xff0c;是电商平台必须面对的挑战。本文将深入探讨电商平台如何通过精心策划和实施策略&#xff0c;激发用户自主裂变&#xff0c;助力企业…

蓝屏代码0x000007E解决办法

概述 出现该问题&#xff1a; 1、硬件冲突造成的蓝屏 驱动冲突&#xff1a;与其他设备或应用程序的驱动冲突可能会引起系统崩溃。 2、内存虚拟不足造成的蓝屏 错误配置&#xff1a;不正确的配置或设置可能会导致蓝屏错误。 3、超频后也可能出现蓝屏 CUP超频或者显卡超频后出现蓝…

水汽稳定度修正函数\Psi_q对潜热通量影响--模式验证工作

我之前提出了一个水汽通量廓线关系&#xff0c;这项工作偏理论&#xff0c;如果对下面说的背景不了解的话可以看下 https://agupubs.onlinelibrary.wiley.com/share/YNSG74MV8B8BAAUMCHN3?target10.1029/2022JD036708 那会没把提出的水汽稳定度修正函数加到CAS-ESM,当时对CAS-…

Ubuntu20.04-剪贴板

针对图形界面用户 1.两种方式 1.1 安装Parcellite 简单轻量级剪贴板管理器 sudo apt install parcellite 1.2 安装Gpaste 更强大的剪贴板管理器&#xff0c;包含历史记录和同步功能 sudo apt install gpaste

仿真验证方法(1)——动态验证

一、概述 1.1 验证的目的和方法 在现代集成电路设计中&#xff0c;验证所占工作量超过70%。验证要求真实而完备&#xff0c;它决定了设计的成败与成本。 验证的目的 原始描述是否正确&#xff1f;&#xff08;代码&#xff09; 逻辑功能是否正确&#xff1f;&#xff08;功能…

MATLAB--pie函数绘制分类饼图(1)--附案例代码

MATLAB–pie函数绘制分类饼图&#xff08;1&#xff09; 目录 MATLAB--pie函数绘制分类饼图&#xff08;1&#xff09;摘要1. pie函数概述2. 使用pie函数绘制分类图的步骤步骤1&#xff1a;准备数据步骤2&#xff1a;调用pie函数步骤3&#xff1a;定制图形&#xff08;可选&…

从事铁路工作保护足部,穿什么劳保鞋更安全

铁路运输在我国交通运输业中起着骨干作用&#xff0c;为国民经济的可持续发展和人口流动做出了巨大贡献。安全是铁路运输不可忽视的问题&#xff0c;在作业场地随处能见到“安全就是生命&#xff0c;责任重于泰山”的安全标语&#xff0c;由此可见安全问题是放在首位的。 铁路施…

2023年全球软件质量效能大会(QECon上海站):核心内容与学习收获(附大会核心PPT下载)

会议聚焦于软件质量和效能的提升。在智能时代&#xff0c;随着数字化的深入人心&#xff0c;软件正在随着云计算、移动互联网、物联网等的发展而不断进化&#xff0c;软件对企业的发展愈加重要&#xff0c;大家对软件的质量要求也在从传统功能、性能、安全这些基础层面向着用户…

GVM垃圾收集器

Serial收集器&#xff08;新生代&#xff09; Serial&#xff08;串行&#xff09;收集器是最基本、历史最悠久的垃圾收集器&#xff0c;采用“标记-复制”算法负责新生代的垃圾收集。它是Hotspot虚拟机运行在客户端模式下的默认新生代收集器。 它是一个单线程收集器。它会使用…

C桑(Cython)从入门到入土(2): np数组操作对比

C桑(Cython)从入门到入土 2. np数组操作对比 Node sc518 Copy has image data of type unsigned long long实际上, &#x1f446;&#x1f3fb;这个错误是我探索Cython的缘起… code1: Form: 更现代的方法是使用内存视图而不是指针&#xff1a; cdef np.uint32_t[:,:,::1] …

大模型学习产品,一个月顶一年 | 对话网易有道周枫

OpenAI CEO奥特曼曾表示&#xff1a;“AI女友只不过是一个美丽的陷阱&#xff0c;AI教育才是最应该去发力的一个领域。” 场景的确定性&#xff0c;是OpenAI等一众公司尤为重视教育领域的原因所在。教与学是教育场景中的核心&#xff0c;但再将两个字进行拆解&#xff0c;教学…