python返回多个参数

Posted Valentino的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python返回多个参数相关的知识,希望对你有一定的参考价值。

返回多个值

函数可以返回多个值吗?答案是肯定的。

比如在游戏中经常需要从一个点移动到另一个点,给出坐标、位移和角度,就可以计算出新的新的坐标:

import math

def move(x, y, step, angle=0):
    nx = x + step * math.cos(angle)
    ny = y - step * math.sin(angle)
    return nx, ny

 

import math语句表示导入math包,并允许后续代码引用math包里的sincos等函数。

然后,我们就可以同时获得返回值:

>>> x, y = move(100, 100, 60, math.pi / 6)
>>> print(x, y)
151.96152422706632 70.0

 

但其实这只是一种假象,Python函数返回的仍然是单一值:

>>> r = move(100, 100, 60, math.pi / 6)
>>> print(r)
(151.96152422706632, 70.0)

原来返回值是一个tuple!但是,在语法上,返回一个tuple可以省略括号,而多个变量可以同时接收一个tuple,按位置赋给对应的值,所以,Python的函数返回多值其实就是返回一个tuple,但写起来更方便。

 

再python的迭代语法中也可以看到这种返回tuple的语法

>>> d = {a: 1, b: 2, c: 3}
>>> for key in d:
...     print(key)
...
a
c
b

 

因为dict的存储不是按照list的方式顺序排列,所以,迭代出的结果顺序很可能不一样。

默认情况下,dict迭代的是key。如果要迭代value,可以用for value in d.values(),如果要同时迭代key和value,可以用for k, v in d.items()

 以上内容参考了廖雪峰的网站:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014317793224211f408912d9c04f2eac4d2af0d5d3d7b2000

以上是关于python返回多个参数的主要内容,如果未能解决你的问题,请参考以下文章

如何增加 Sqlite FTS4 片段大小

scrapy按顺序启动多个爬虫代码片段(python3)

python系统学习12函数

如何从 FragmentPagerAdapter 返回多个片段

URL 片段中的多个参数

Python代码阅读(第19篇):合并多个字典