【问题标题】:Quadratic equation: TypeError: bad operand type for unary -: 'str'二次方程:TypeError:一元操作数类型错误-:'str'
【发布时间】:2021-11-06 13:03:48
【问题描述】:

我是 Python 新手,一直在尝试编写二次方程,但我一直遇到这个错误: TypeError: 一元操作数类型错误 -: 'str'

def quad_gleichung():
a = input('a:')
b = input('b:')
c = input('c:')

x1 = int(-b + (b**2 - (4*a*c))**(0.5)) / (2*a)
x2 = int(-b - (b**2 - (4*a*c))**(0.5)) / (2*a)


print('Lösung 1:', x1)
print('Lösung 2:', x2)

quad_gleichung()

谁能帮帮我?

谢谢!

【问题讨论】:

  • 将您的输入转换为数字类型!

标签: python string quadratic operands


【解决方案1】:

input 的返回类型是字符串。它需要转换为某种数字类型,floatint,具体取决于用例。

因此,将a, b, c 的分配更改为:

a = int(input("a: ")) # or float(input("a: "))
b = int(input("b: ")) # or float(input("b: "))
c = int(input("c: ")) # or float(input("c: "))

【讨论】:

  • 有了这个“解决方案”,你必须希望用户只输入数字
  • @BrutusForcus:没错,但我想在这种情况下我们可以假设一个人愿意。当然你可以做一些其他花哨的东西,但这是最简单的。也可以用 try except 或其他东西包围所有内容。
猜你喜欢
  • 2013-03-28
  • 2021-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-02
  • 1970-01-01
相关资源
最近更新 更多