类型错误: ** 或 pow() 不支持的操作数类型:“str”和“int”

2023-12-12

我只是在尝试并享受 Python 2.7 的乐趣,我正在尝试编写一个二次方程求解器。当被数为正时,我让它工作,但当它为负时,我收到错误。即使在这个 if else 语句之后。它也不适用于大数字。谢谢您的帮助。

import math
a = raw_input("a = ")
b = raw_input("b = ")
c = raw_input("c = ")
float(a)
float(b)
float(c)
radicand = ((b**2)-4*a*c)
if radicand >= 0:
    print(((0-b) + math.sqrt((b**2)-4*a*c))/(2*a))
    print(((0-b) - math.sqrt((b**2)-4*a*c))/(2*a))
else:
    print "Imaginary Radical"

当我用根替换 (b**2)-4*a*c 时,我收到无效语法错误,并且打印以红色突出显示。 错误消息说 类型错误: ** 或 pow() 不支持的操作数类型:“str”和“int”
再次感谢您提供的任何见解...


你应该更换:

float(a)

with:

a = float(a)

对于其他变量也是如此。

该声明float(a)实际上并没有转动a into a float,它只是简单地转换它,根据以下记录:

>>> a = raw_input("a? ")
a? 4.5

>>> type(a)
<type 'str'>

>>> float(a)
4.5

>>> type(a)
<type 'str'>

>>> a = float(a)

>>> type(a)
<type 'float'>

你可以看到类型a is still str表演后立即float(a)但是,当你执行作业时a = float(a),类型变为float.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

类型错误: ** 或 pow() 不支持的操作数类型:“str”和“int” 的相关文章

随机推荐