python如何返回多个值_python- 如何返回多个值 | 学步园

如何写一个返回多个值的函数

函数的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

Python

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

例 3.17. 定义 myParams

变量

if

__name__ == "__main__"

:

myParams = {"server"

:"mpilgrim"

, /

"database"

:"master"

, /

"uid"

:"sa"

, /

"pwd"

:"secret"

/

}

首先注意缩进。 if

语句是代码块, 需要像函数一样缩进。

其次, 变量的赋值是一条被分成了多行的命令, 用反斜线 (“/

”)

作为续行符。

note.png

当一条命令用续行符 (“/

”) 分割成多行时,

后续的行可以以任何方式缩近, 此时 Python

通常的严格的缩近规则无需遵守。如果您的 Python

IDE

自由对后续行进行了缩近, 您应该把它当成是缺省处理, 除非您有特别的原因不这么做。

严格地讲, 在小括号, 方括号或大括号中的表达式 (如 定义一个 dictionary

) 可以用或者不用续行符 (“/

”) 分割成多行。甚至在不是必需的时候,

我也喜欢使用续行符, 因为我认为这样会让代码读起来更容易, 但那只是风格的问题。

第三, 您从未声明过变量 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

1.png

>>>

x

'a'

>>>

y

'b'

>>>

z

'e'

1.png

v

是一个三元素的 tuple, 并且 (x, y,

z)

是一个三变量的 tuple。将一个 tuple 赋值给另一个 tuple, 会按顺序将 v

的每个值赋值给每个变量。

这种用法有许多种用途。我经常想要将一定范围的值赋给多个变量。在 C

语言中, 可以使用 enum

类型, 手工列出每个常量和其所对应的值, 当值是连续的时候这一过程让人感到特别繁琐。而在 Python

中, 您可以使用内置的 range

函数和多变量赋值的方法来快速进行赋值。

例 3.20. 连续值

赋值

>>>

range(7)

1.png

[0, 1, 2, 3, 4, 5, 6]

>>>

(MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY) = range(7)

2.png

>>>

MONDAY

3.png

0

>>>

TUESDAY

1

>>>

SUNDAY

6

1.png

内置的 range

函数返回一个元素为整数的 list。这个函数的简化调用形式是接收一个上限值, 然后返回一个初始值从 0 开始的 list, 它依次递增,

直到但不包含上限值。 (如果您愿意, 您可以传入其它的参数来指定一个非 0

的初始值和非 1

的步长。也可以使用 print

range.__doc__

来了解更多的细节。)

2.png

MONDAY

, TUESDAY

, WEDNESDAY

, THURSDAY

, FRIDAY

, SATURDAY

和 SUNDAY

是我们定义的变量。 (这个例子来自 calendar

模块。它是一个很有趣的打印日历的小模块, 象 UNIX

的 cal

命令。这个 calendar

模块定义了一星期中每天的整数常量表示。)

3.png

现在每个变量都拥有了自己的值: MONDAY

的值为 0

, TUESDAY

的值为 1

, 等等。

您也可以使用多变量赋值来创建返回多个值的函数, 只要返回一个包含所有值的 tuple 即可。调用者可以将其视为一个 tuple,

或将值赋给独立的变量。许多标准的 Python

库都是这样做的, 包括 os

模块, 将在 第

6 章

中讨论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值