交作业(测试成功)
Topic sourceimport math
def quadratic(a, b, c):
if b * b - 4 * a * c > 0: # 该方程有2个解
x1 = (-b+math.sqrt(b*b-4*a*c)) / (2*a)
x2 = (-b-math.sqrt(b*b-4*a*c)) / (2*a)
return x1,x2
elif b * b - 4 * a * c == 0: # 只有一个解
x = (-b + math.sqrt(b * b - 4 * a * c)) / (2 * a)
return x
else:
return '此方程无解'
def check_abc(a,b,c):
m =''
m2 = ''
m3 = ''
if not isinstance(a,(int,float)):
m = '\'%s\'不是数字' % a
elif a==0:
return '此方程无意义'
if not isinstance(b,(int,float)):
m2 = '\n\'%s\'不是数字' % b
if not isinstance(c,(int,float)):
m3 = '\n\'%s\'不是数字' % c
if len(m+m2+m3)>0:
return a,b,c,m+m2+m3
else:
return True
def operation_abc(a,b,c):
if isinstance(check_abc(a,b,c),bool):
return quadratic(a,b,c)
else:
return '一元二次方程:%sx^2 + %sx + %s = 0,%s'% (check_abc(a,b,c)[0],check_abc(a,b,c)[1],check_abc(a,b,c)[2],check_abc(a,b,c)[3])
a = input('一元二次方程:ax^2 + bx + c = 0,请输入 a :')
while not a.isdigit():
a = input('请输入数字 a :')
b = input('一元二次方程:ax^2 + bx + c = 0,请输入 b :')
while not b.isdigit():
b = input('请输入数字 b :')
c = input('一元二次方程:ax^2 + bx + c = 0,请输入 c :')
while not c.isdigit():
c = input('请输入数字 c :')
print(operation_abc(float(a),float(b),float(c)))
- 1
qq842205264
!/usr/bin/env python
encoding: utf-8
这货是解一元二次方程的
import math a=float(input('请输入一元二次方程中a的值')) b=float(input('请输入一元二次方程中b的值')) c=float(input('请输入一元二次方程中c的值')) def wc(a,b,c): if a==0:#检验二次项系数是否为0(两个==是因为一个=是赋值的意思) if b==0: if c==0: return('此方程恒成立') elif not c==0: return('此方程无解') elif not b==0: x=-c/b return('二次项系数为0,这不是二次方程,它的根是%f' % x) else:#二次项系数不为0才行 delta=bb-4ac if delta < 0: return('此方程无实数根') elif delta >= 0: x1=(-b+math.sqrt(delta))/(2a) x2=(-b-math.sqrt(delta))/(2*a) return('这个方程的根是%f和%f' % (x1,x2))
别忘了函数用return返回值,最后要打印
print(wc(a,b,c))