其实有一个疑惑一直在www.887551.com心中,每一个代码段编写里,总会出现好多个函数,也许有人和www.887551.com有一样的认同感,后来,www.887551.com明白,每一个函数本身都是都有各自的目的,有的是需要去必须返回一个字符串,有的是必须要去返回浮点数,还有的是需要去返回多个值,这也是大家所需要的,下面给大家演示。

函数返回多个结果

$ vim e3.py
def damage(skill1,skill2):
  damage1 = skill1 * 3
  damage2 = skill2 * 2 + 10
  return damage1,damage2
skill1_damage,skill2_damage = damage(3,6) 
print(skill1_damage,skill2_damage)

执行结果

$ python2.7 e3.py

(9, 22)

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

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

>>> 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,但写起来更方便。