给出实数 a、b、c。求二次方程 ax2 + bx + c = 0 的所有解。给定三个实数,a 不等于 0。如果方程有两个根,则打印两个实数,如果有一个根,则打印一个实数。如果没有真正的根,则不需要输出任何内容。
出于某种原因,他写了错误的解决方案。
a = int(input())
b = int(input())
c = int(input())
d = (b**2) - (4*a*c)
l = 2 * a
if d == 0:
print(-b/(2*a))
elif d > 0:
print((-b + (d**(1/2))) / l, (-b - (d**(1/2))) / l)
这都是关于动态类型的。
d = (b**2) - (4*a*c)
- 变量类型 d - float/intd = d ** (1/2)
- 在这里,当你试图找到一个数字的根时,如果它是负数 - d 采用“复数”类型。也就是说,如果你把否定的根源。numbers - python 会给出一个复数,它已经是不同的数据类型,不能和 0 比较。
在计算根之前将 d 与 0 进行比较
该条件表示您将输入实数(它们可以是整数、实数等),但您只接受整数作为输入。将 int(input()) 更改为 float(input()),也许这会对您有所帮助。