为了账号安全,请及时绑定邮箱和手机立即绑定

Python函数之返回多值一元二次方程的定义是:ax² + bx + c = 0请参考求根公式:x = (-b±√(b²-4ac)) / 2a

1#import math

def quadratic_equation(a, b, c):
    de=b**2-4*a*c
    if de>=0:
        x1=(-b+math.sqrt(de))/(2*a)
        x2=(-b-math.sqrt(de))/(2*a)
        return x1,x2
    else:
        return

print quadratic_equation(2, 3, 0)
print quadratic_equation(1, -6, 5)

3#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)

2#import math

def quadratic_equation(a, b, c):
    if (b*b-4*a*c)<0:
        return "no real root"
    else:
        x=b*b-4*a*c
        return (-b+math.sqrt(x))/(2*a),(-b-math.sqrt(x))/(2*a)

print quadratic_equation(2, 3, 0)
print quadratic_equation(1, -6, 5)

一元二次方程虽然我现在只上高中知道怎么在作业本上解但是在python完全不能理解def quadratic_equation(a, b, c):下面的计算过程谁能帮我理解一下?

print quadratic_equation(2, 3, 0)
print quadratic_equation(1, -6, 5)

def quadratic_equation(a, b, c):
这3个代码里面不变的是什么?

计算公式吧#de=b**2-4*a*c
   if de>=0:
       x1=(-b+math.sqrt(de))/(2*a)
       x2=(-b-math.sqrt(de))/(2*a)
       return x1,x2

#def quadratic_equation(a, b, c):
   t = math.sqrt(b * b - 4 * a * c)
   return (-b + t) / (2 * a),( -b - t )/ (2 * a)

#def quadratic_equation(a, b, c):
   if (b*b-4*a*c)<0:
       return "no real root"
   else:
       x=b*b-4*a*c
       return (-b+math.sqrt(x))/(2*a),(-b-math.sqrt(x))/(2*a)

正在回答

2 回答

你首先要想明白一件事,方法并不是在解一元二次方程,

def quadratic_equation(a, b, c)  你是在定义一个方法,它的意义是你传给这个方法a,b,c 三个参数,然后回传给你返回值,你想要得到的结果是   x = (-b±√(b²-4ac)) / 2a  ,是两个值所以要有两个返回值,

而这个返回值是通过计算得出的结果X1,X2 或者 (-b+math.sqrt(x))/(2*a),  (-b-math.sqrt(x))/(2*a) 或者(-b + t) / (2 * a),  ( -b - t )/ (2 * a) 

再来分开说,下边是计算的过程

def quadratic_equation(a, b, c):         #这个方法需要传入a,b,c三个参数

        de=b**2-4*a*c                            #de=b的平方-4*a*c ( δ 二次方程的判别式)

        if de>=0:                                    #如果de大于0 (一元二次方程有解的要求)

        x1=(-b+math.sqrt(de))/(2*a)      #x1=(-b+( 根号下(de) ) )除以(2*a)     #de=b**2-4*a*c

        x2=(-b-math.sqrt(de))/(2*a)        #同上

        return x1,x2                                #将方法中定义的 x1,x2 返回

现在稍微理解了么 

def jiafa(a,b):                #定义一个方法 方法的名字是 jiafa 需要传入a,b 两个参数

    qiuhe=a+b                # = =~就是 a+b

    return qiuhe                # 将结果返回

这就是一个简单的加法,将return 换一下

def jiafa2(a,b):                #定义一个方法 jiafa2 需要传入a,b 两个参数

    qiuhe=a+b                # = =~就是 a+b

    return a+b                # 将结果返回 (这样第二行的qiuhe就没意义了 可以删掉)

两个方法完全相同

print jiafa(1,3)                #打印 jiafa(1,3)  

print jiafa2(1,3)                #打印 jiafa2(1,3) 

结果是一样的

还有不管什么情况下,只要方法中走到 return 的时候,就会退出该方法,不在继续

(希望能帮助你,python 学起来还算简单,在遇到卡住的时候,一行一行的看,每一行都用#写注解,能够帮助你更直观的看代码)

2 回复 有任何疑惑可以回复我~
#1

雪乃 提问者

非常感谢!
2018-01-22 回复 有任何疑惑可以回复我~

def 是定义 函数名字和函数内容  +   quadratic_equation(括号里面的 是 一元二次方程里面的  a,b,c)这是函数名  +   函数名下面是  定义的函数如何计算, 也就是求根公式。 

print  +  函数名 quadratic_equation()    是调用你定义的函数的计算方法。

quadratic_equation(括号里面的 是 一元二次方程里面的  a   b   c)也就是带入参数在函数里面计算。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758623    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

Python函数之返回多值一元二次方程的定义是:ax² + bx + c = 0请参考求根公式:x = (-b±√(b²-4ac)) / 2a

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信