Python函数之返回多值

Python函数之返回多值

函数能够返回多个值吗?答案是确定的。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打印返回结果,原来返回值是一个tupleip

可是,在语法上,返回一个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)
相关文章
相关标签/搜索