寻找一种更有效的方式来编写我的python程序

时间:2016-05-24 17:18:15

标签: python python-2.7 function

在我的三角学课上,我们被指派找到方程的判别和圆锥曲线..

我写了一个计算判别式的函数,然后根据判别式的值打印出圆锥曲线......

我只是好奇是否有更好,更有效的方法来写这个:

def disc():
    a_disc = raw_input("Please enter the value of A: ")
    b_disc = raw_input("Please enter the value of B: ")
    c_disc = raw_input("Please enter the value of C: ")
    disc = b_disc**2-4*(a_disc)*(c_disc)
    print ("The discriminant is: %s") % (disc)
    if disc < 0:
        if a_disc != c_disc:
            print ("The conic is an Ellipse!")
        elif a_disc == c_disc:
            print ("The conic is a Circle!")
    elif disc > 0:
        print ("The conic is a Hyperbola!")
    elif disc == 0:
        print ("The conic is a Parabola!")
    else:
        print ("Something went wrong...")
disc()

我不完全理解在函数内部使用参数,但我想做类似的事情:

def disc(a,b,c):

我想是更干净的方法。

我真的很感激任何人提供的任何反馈。提前谢谢!

1 个答案:

答案 0 :(得分:2)

是的,您可以将disc移动到仅计算值的函数中,然后将所有输入和输出逻辑作为单独的代码。你的一些if语句也是多余的。这是一个稍微简单的版本:

def disc(a, b, c):
    return b ** 2 - 4 * a * c


a = raw_input("Please enter the value of A: ")
b = raw_input("Please enter the value of B: ")
c = raw_input("Please enter the value of C: ")

val = disc(int(a), int(b), int(c))

print ("The discriminant is: %s") % (val)

if val == 0:
    print ("The conic is a Parabola!")
elif val > 0:
    print ("The conic is a Hyperbola!")
elif a != c:
    print ("The conic is an Ellipse!")
else:
    print ("The conic is a Circle!")