1. 程式人生 > 程式設計 >python中函式返回多個結果的例項方法

python中函式返回多個結果的例項方法

其實有一個疑惑一直在小編心中,每一個程式碼段編寫裡,總會出現好多個函式,也許有人和小編有一樣的認同感,後來,小編明白,每一個函式本身都是都有各自的目的,有的是需要去必須返回一個字串,有的是必須要去返回浮點數,還有的是需要去返回多個值,這也是大家所需要的,下面給大家演示。

函式返回多個結果

$ 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,math.pi / 6)
>>> print(r)
(151.96152422706632,70.0)

原來返回值是一個tuple!但是,在語法上,返回一個tuple可以省略括號,而多個變數可以同時接收一個tuple,按位置賦給對應的值,所以,Python的函式返回多值其實就是返回一個tuple,但寫起來更方便。