检查代码:import math class Equation: def __init__(self, a, b, c): self.a=a self.b=b self.c=c def getDiscriminant1(self): deta=self.b**2-4*self.a*self.c def getRoot1(self): deta=self.getDiscriminant1() if deta<0: return 0 else: return (-self.b + deta**0.5) / (2*self.a) def getRoot2(self): delta = self.getDiscriminant1() if deta < 0: return 0 else: return (-self.b - deta**0.5) / (2*self.a) p=list(map(int,input().split(','))) if __name__ == "__main__": eq=Equation(p) print("判别式:", eq.getDiscriminant()) print("根1:", eq.getRoot1()) print("根2:", eq.getRoot2()) #####
时间: 2023-06-27 18:07:21 浏览: 103
TDE.zip_TDE_matlab中TDE_parabolic equation_site:www.pudn.com_抛物方程
这段代码有一些错误,请看下面的纠正:
```python
import math
class Equation:
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def getDiscriminant(self):
deta = self.b**2 - 4*self.a*self.c
return deta
def getRoot1(self):
deta = self.getDiscriminant()
if deta < 0:
return 0
else:
return (-self.b + math.sqrt(deta)) / (2*self.a)
def getRoot2(self):
deta = self.getDiscriminant()
if deta < 0:
return 0
else:
return (-self.b - math.sqrt(deta)) / (2*self.a)
if __name__ == "__main__":
p = list(map(int,input().split(',')))
eq = Equation(*p)
print("判别式:", eq.getDiscriminant())
print("根1:", eq.getRoot1())
print("根2:", eq.getRoot2())
```
纠正的错误如下:
1. `getDiscriminant1` 方法应该改为 `getDiscriminant`。
2. 在 `getRoot1` 和 `getRoot2` 方法中,变量 `deta` 和 `delta` 拼写不一致,应该都改为 `deta`。
3. 在 `Equation` 类的构造函数中,缺少参数 `c`,应该改为 `def __init__(self, a, b, c):`。
4. 在 `if __name__ == "__main__":` 中,应该将 `p = list(map(int,input().split(',')))` 放在 `Equation` 类的实例化前面,并且调用 `Equation(*p)` 将列表的元素作为参数传递给类的构造函数。
阅读全文