python解决一元二次方程
题目:求一元二次方程ax*x+b*x+c=0的解
从键盘输入a,b,c的值,分多种情况输出解。
- a等于0,b也等于0时,输出“方程无解”;
- a等于0,b不等于0时,输出“方程有1个解,x= ?”;?表示方程的解
- a不等于0时,计算判别式d=b*b-4*a*c的值:
若d小于0,输出“方程无实数解”;
若d等于0,解等于-b/2a,输出“方程有两个相同的解,x1=x2=?”;?表示方程的解
若d大于0,用求根公式 求两个解,并比较大小,使x1大于x2,输出“方程有两个实数解, x1=?,x2=?”。?表示方程的解
代码如下:
a=float(input("请输入a"))
b=float(input("请输入b"))
c=float(input("请输入c"))
if a==0 and b==0:
print("方程无解")
elif a==0 and b!=0:
print("方程有一个解,x=",-c/b)
elif a!=0:
d=b*b-4*a*c
if d==0:
print("方程有一个解,x1=x2=",-b/(2*a))
elif d<0:
print("方程无实数解")
else:
e=b*b-4*a*c
x1=(-b+e**0.5)/(2*a)
x2=(-b-e**0.5)/(2*a)
if x1>x2:
print("方程有两个实数解,x1=%.1f,x2=%.1f"%(x1,x2))
else:
print("方程有两个实数解,x1=%.1f,x2=%.1f"%(x2,x1))
这道题就很简单了就是对输入的a,b,c进行if操作去选择它们应该执行的操作。整体的思路就是只用到了选择语句最多就是选择里面再加上了一个选择,是一个比较简单的问题。这个特别适合初学者在掌握选择操作时学习,这个是很经典的选择操作的语句代码之一。
Tips:python里面开根号可以 变量**0.5当然仅限于变量是正数,这样就不用调用math库和sqrt函数了。