用python求二元一次方程的根,显示math domain error,错在哪?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用python求二元一次方程的根,显示math domain error,错在哪?相关的知识,希望对你有一定的参考价值。
import math
a = int(raw_input('a:'))
b = int(raw_input('b:'))
c = int(raw_input('c:'))
i = math.sqrt(b*b-4*a*c)
e = -b + i
f = -b - i
answer1 = e/(2*a)
answer2 = f/(2*a)
print"x1=",answer1
print"x2=",answer2
楼上说的非常正确,给大家个参考程序吧,我也正遇到过,使用Python的错误判断输出结果就可以了
import mathdef calcRoot(a, b, c):
# a,b,c = int(a), int(b), int(c)
try:
value = b**2 - 4*a*c # b*b - 4*a*c
sq = math.sqrt(value)
x1 = (-b + sq) / (2 * a)
x2 = (-b - sq) / (2 * a)
if x1 == x2:
# return x1
print('x1=x2= %.2f' % x1)
else:
# return '%.2f'%x1, round(x2,2)
print('x1= %.2f\\nx2= %.2f' % (x1, x2))
except:
print('该方程无根')
calcRoot(13,-100,31)
# print(re)
运行以上程序,就能看到下面效果了;输出加了格式化,否则输出的是一长串浮点数
参考技术A 测试下b*b-4*a*c是否大于等于0a不等于0
(31-33)判断两个实型数据是否相等,求一元二次方程的根,逻辑型数据
(31)判断两个实型数据是否相等
1.abs求一个整型数据的绝对值,fabs,求一个浮点型数据的绝对值
(32)求一元二次方程的根
#include<stdio.h>
#include<math.h>
int main(void)
{
double a,b,c,d;
printf("请依次输入二元一次方程的洗漱:\n");
scanf("%lf%lf%lf",&a,&b,&c);
if (a==0)
{
printf("请输入正确的洗漱");
return 0;
}
d=b*b-4*a*c;
if (d<0)
printf("无解");
else if(fabs(d)<1e-6)
printf("%lf",-b/(2*a));
else
printf("%lf,%lf",(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a));
return 0;
}
(33)逻辑型数据
1.bool型变量有false==0和true==1
2.bool型只占一个字符
3. 布尔型数据也是整形数据的一种
以上是关于用python求二元一次方程的根,显示math domain error,错在哪?的主要内容,如果未能解决你的问题,请参考以下文章