其实有一个疑惑一直在小编心中,每一个代码段编写里,总会出现好多个函数,也许有人和小编有一样的认同感,后来,小编明白,每一个函数本身都是都有各自的目的,有的是需要去必须返回一个字符串,有的是必须要去返回浮点数,还有的是需要去返回多个值,这也是大家所需要的,下面给大家演示。
函数返回多个结果
1
2
3
4
5
6
7
|
$ 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中的函数是可以返回多个值
比如在游戏中经常需要从一个点移动到另一个点,给出坐标、位移和角度,就可以计算出新的新的坐标:
1
2
3
4
5
|
import math
def move(x, y, step, angle = 0 ):
nx = x + step * math.cos(angle)
ny = y - step * math.sin(angle)
return nx, ny
|
然后,我们就可以同时获得返回值:
1
2
3
|
>>> x, y = move( 100 , 100 , 60 , math.pi / 6 )
>>> print (x, y)
151.96152422706632 70.0
|
但其实这只是一种假象,Python函数返回的仍然是单一值:
1
2
3
|
>>> r = move( 100 , 100 , 60 , math.pi / 6 )
>>> print (r)
( 151.96152422706632 , 70.0 )
|
原来返回值是一个tuple!但是,在语法上,返回一个tuple可以省略括号,而多个变量可以同时接收一个tuple,按位置赋给对应的值,所以,Python的函数返回多值其实就是返回一个tuple,但写起来更方便。
原文链接:https://www.py.cn/jishu/jichu/21987.html