博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python- 如何return返回多个值
阅读量:7110 次
发布时间:2019-06-28

本文共 2238 字,大约阅读时间需要 7 分钟。

函数的return 语句只能返回一个值,可以是任何类型。

因此,我们可以“返回一个 tuple类型,来间接达到返回多个值 ”。

例:   x 除以 y 的余数与商的函数

def    F1 ( x, y ):

         a = x % y

         b = (x-a) / y

         return ( a,b )     # 也可以写作 return a, b

(c, d )= F1( 9, 4)        # 也可以写作 c , d = F1 ( 9, 4 )

print c ,d

结果显示: 1, 2

 与大多数其它语言一样有局部变量和全局变量之分, 但是它没有明显的变量声明。变量通过首次赋值产生, 当超出作用范围时自动消亡。

例 3.17. 定义 myParams 变量

if __name__ == "__main__":     myParams = {
"server":"mpilgrim", / "database":"master" , / "uid" :"sa" , / "pwd" :"secret" / }

首先注意缩进。 if 语句是代码块, 需要像函数一样缩进。

其次, 变量的赋值是一条被分成了多行的命令, 用反斜线 (“/ ”) 作为续行符。

注意
当一条命令用续行符 (“/ ”) 分割成多行时, 后续的行可以以任何方式缩近, 此时Python 通常的严格的缩近规则无需遵守。如果您的 Python IDE 自由对后续行进行了缩近, 您应该把它当成是缺省处理, 除非您有特别的原因不这么做。

严格地讲, 在小括号, 方括号或大括号中的表达式 (如  ) 可以用或者不用续行符 (“/ ”) 分割成多行。甚至在不是必需的时候, 我也喜欢使用续行符, 因为我认为这样会让代码读起来更容易, 但那只是风格的问题。

第三, 您从未声明过变量 myParams , 您只是给它赋了一个值。这点就象是VBScript 没有设置 option explicit 选项一样。幸运的是, 与 VBScript 不同的是,Python 不允许您引用一个未被赋值的变量, 试图这样做会引发一个异常。

3.4.1. 变量引用

例 3.18. 引用未赋值 的变量

>>> x Traceback (innermost last):   File "
", line 1, in ? NameError: There is no variable named 'x' >>> x = 1 >>> x 1

迟早有一天您会为此而感谢 Python 。

3.4.2. 一次赋多值

Python 中比较 “酷” 的一种编程简写是使用序列来一次给多个变量赋值。

例 3.19. 一次赋多值

>>> v = ('a', 'b', 'e') >>> (x, y, z) = v     >>> x 'a' >>> y 'b' >>> z 'e'
v 是一个三元素的 tuple, 并且 (x, y, z) 是一个三变量的 tuple。将一个 tuple 赋值给另一个 tuple, 会按顺序将 v 的每个值赋值给每个变量。

这种用法有许多种用途。我经常想要将一定范围的值赋给多个变量。在 C 语言中, 可以使用 enum 类型, 手工列出每个常量和其所对应的值, 当值是连续的时候这一过程让人感到特别繁琐。而在 Python 中, 您可以使用内置的 range 函数和多变量赋值的方法来快速进行赋值。

例 3.20. 连续值 赋值

>>> range(7)                                                                    [0, 1, 2, 3, 4, 5, 6] >>> (MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY) = range(7) >>> MONDAY                                                                      0 >>> TUESDAY 1 >>> SUNDAY 6
内置的 range 函数返回一个元素为整数的 list。这个函数的简化调用形式是接收一个上限值, 然后返回一个初始值从 0 开始的 list, 它依次递增, 直到但不包含上限值。 (如果您愿意, 您可以传入其它的参数来指定一个非 0 的初始值和非 1的步长。也可以使用 print range.__doc__ 来了解更多的细节。)
MONDAY , TUESDAY , WEDNESDAY , THURSDAY , FRIDAY , SATURDAY 和 SUNDAY 是我们定义的变量。 (这个例子来自 calendar 模块。它是一个很有趣的打印日历的小模块, 象 UNIX 的 cal 命令。这个 calendar 模块定义了一星期中每天的整数常量表示。)
现在每个变量都拥有了自己的值: MONDAY 的值为 0 , TUESDAY 的值为 1 , 等等。

您也可以使用多变量赋值来创建返回多个值的函数, 只要返回一个包含所有值的 tuple 即可。调用者可以将其视为一个 tuple, 或将值赋给独立的变量。许多标准的 Python 库都是这样做的, 包括 os 模块。

转载地址:http://ltlhl.baihongyu.com/

你可能感兴趣的文章
[译] Swift 5.0 新特性
查看>>
自动化功能测试平台TestComplete的分布式测试教程(二)
查看>>
Chrome Network 下边栏中 Finish 的含义
查看>>
Webpack 4.x 配置教程
查看>>
Android RecyclerView多类型布局卡片解决方案
查看>>
算法之「克鲁斯克尔(Kruskal)算法」
查看>>
小程序
查看>>
最全分布式架构知识体系,你离架构就差一个体系
查看>>
spring-boot使用spring-security进行身份认证(2)
查看>>
Tensorflow catdog-checkpoint
查看>>
学习springBoot(9)RabbitMQ
查看>>
Python爬虫 Selenium初探
查看>>
第二节:Web前端-ASP.NET之C#基础
查看>>
银行卡 验证
查看>>
开发者论坛一周精粹(第十一期):阿里怎么发工资?自研薪酬管理系统首次曝光...
查看>>
Derek解读Bytom源码-P2P网络 upnp端口映射
查看>>
(深度学习)损失函数随记
查看>>
GMQ交易所带你走进Token
查看>>
剑走偏锋还是欲盖弥彰,北汽新能源的“天选之路”还在继续?
查看>>
git 操作说明
查看>>