- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
对于我们的家庭作业,我们被要求计算二次方程,然后以 ax^2 + bx + c = 0
的格式打印出来。 .
我们有以下打印条件:
我几乎可以正常工作了,但遇到了一些问题。
QuadraticEquation(a=-1,b=1,c=1)
QuadraticEquation(a=2,b=-3,c=-1)
QuadraticEquation(a=1,b=0,c=25)
QuadraticEquation(a=1.2,b=2.3,c=5.6)
QuadraticEquation(a=9.0,b=-1,c=81.0)
上面的以下函数应返回为:
-x^2 + x + 1.0 = 0
2.0x^2 – 3.0x – 1.0 = 0
x^2 – 25.0 = 0
1.2x^2 + 2.3x + 5.6 = 0
9.0x^2 - x + 81.0 = 0
但是,我的返回结果为:
-x^2 + x + 1.0 = 0
2.0x^2 - 3.0x - 1.0 = 0
x^2 + 25.0 = 0
1.2x^2 + 2.3x + 5.6 = 0
9.0x^2 - 1.0x + 81.0 = 0
有人看出我哪里搞砸了吗?
from math import sqrt
class QuadraticEquation(object):
def __init__(self, a, b, c):
self.__a = float(a)
if self.__a == 0.0:
raise ValueError("Coefficient 'a' cannot be 0 in a quadratic equation.")
self.__b = float(b)
self.__c = float(c)
@property
def a(self):
return self.__a
@property
def b(self):
return self.__b
@property
def c(self):
return self.__c
def __str__(self):
a = self.__a
b = self.__b
c = self.__c
# a
if a < 0:
a = '-x^2'
elif a == 1:
a = 'x^2'
else:
a = '%sx^2' % a
# b
if b < 0:
b = ' - %sx' % (b * -1)
elif b == 0:
b = ''
elif b == 1:
b = ' + x'
else:
b = ' + %sx' % b
# c
if c < 0:
c = ' - %s' % (c * -1)
elif c == 0:
c = ''
else:
c = ' + %s' % c
return a + b + c + ' = 0'
if __name__ == '__main__':
equation1 = QuadraticEquation(a=-1,b=1,c=1)
equation2 = QuadraticEquation(a=2,b=-3,c=-1)
equation3 = QuadraticEquation(a=1,b=0,c=25)
equation4 = QuadraticEquation(a=1.2,b=2.3,c=5.6)
equation5 = QuadraticEquation(a=9.0,b=-1,c=81.0)
print(equation1) # -x^2 + x + 1.0 = 0
print(equation2) # 2.0x^2 – 3.0x – 1.0 = 0
print(equation3) # x^2 – 25.0 = 0
print(equation4) # 1.2x^2 + 2.3x + 5.6 = 0
print(equation5) # 9.0x^2 - x + 81.0 = 0
最佳答案
所以你的问题输出“- 1.0x”而不是“- x”?你应该纠正这部分。您当前的代码适用于 b=+1,但不适用于 b=-1,因为这种情况是在“b < 0”条件下处理的。
我认为更好的解决方案是使用新变量进行输出。试试这个:
# a
a_out = ''
if a != 0:
if a < 0:
a_out += '-'
if abs(b) != 1:
a_out += '%.1fx^2' % abs(a)
else:
a_out += 'x^2'
# b
b_out = ''
if b != 0:
if b < 0:
b_out += ' - '
else:
b_out += ' + '
if abs(b) != 1:
b_out += '%.1fx' % abs(b)
else:
b_out += 'x'
# c
c_out = ''
if c != 0:
if c < 0:
c_out = ' - %.1f' % (-c)
else:
c_out = ' + %.1f' % c
return a_out + b_out + c_out + ' = 0'
关于python - 打印带条件的二次方程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36632283/
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 9 年前。 Improve th
我求解 jQuery 二次方程的代码有什么问题? a = parseFloat($('#a').val()); b = parseFloat($('#b').val()); c = parseFloa
我应该在 matlab 代码中加入什么条件才能使用这些公式得到二次方程的精确解: x1=(-2*c)/(b+sqrt(b^2-4*a*c)) x2=(-2*c)/(b-sqrt(b^2-4*a*c))
我正在做一项学校作业。我应该实现一个类并提供方法 getSolution1 和 getSolution2。但是,我的代码有 2 个我无法弄清楚的问题。 问题 #1 在这一行: solution1= (
如果这个问题很简单,我很抱歉,但我是 C++ 的新手。我正在设计一个使用二次公式计算 2 个根的程序。但是,当我的判别式为负数时,我的程序不起作用。 #define _USE_MATH_DEFINES
我对 Javascript 不太熟悉。我希望有人能简单地解释一下编辑以下代码的过程。 this.hideNextButton(); this.hidePreviousButton(); var tha
我是一名优秀的程序员,十分优秀!