在我的三角学课上,我们被指派找到方程的判别和圆锥曲线..
我写了一个计算判别式的函数,然后根据判别式的值打印出圆锥曲线......
我只是好奇是否有更好,更有效的方法来写这个:
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):
我想是更干净的方法。
我真的很感激任何人提供的任何反馈。提前谢谢!
答案 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!")