函数能够返回多个值吗?答案是确定的。ide
好比在游戏中常常须要从一个点移动到另外一个点,给出坐标、位移和角度,就能够计算出新的坐标:函数
# math包提供了sin()和 cos()函数,咱们先用import引用它:spa
import math
def move(x, y, step, angle):
nx = x + step * math.cos(angle)
ny = y - step * math.sin(angle)
return nx, ny
这样咱们就能够同时得到返回值:code
>>> x, y = move(100, 100, 60, math.pi / 6) >>> print x, y 151.961524227 70.0
但其实这只是一种假象,Python函数返回的仍然是单一值:游戏
>>> r = move(100, 100, 60, math.pi / 6) >>> print r (151.96152422706632, 70.0)
用print打印返回结果,原来返回值是一个tuple!ip
可是,在语法上,返回一个tuple能够省略括号,而多个变量能够同时接收一个tuple,按位置赋给对应的值,因此,Python的函数返回多值其实就是返回一个tuple,但写起来更方便。it
一元二次方程的定义是:ax² + bx + c = 0io
请编写一个函数,返回一元二次方程的两个解。class
注意:Python的math包提供了sqrt()函数用于计算平方根。import
请参考求根公式:x = (-b±√(b²-4ac)) / 2a
参考代码:
import math def quadratic_equation(a, b, c): t = math.sqrt(b * b - 4 * a * c) return (-b + t) / (2 * a),( -b - t )/ (2 * a) print quadratic_equation(2, 3, 0) print quadratic_equation(1, -6, 5)