gpt4 book ai didi

python - 类型错误 : unsupported operand type(s) for ** or pow(): 'str' and 'int'

转载 作者:行者123 更新时间:2023-12-04 04:53:45 32 4
gpt4 key购买 nike

我只是在试验 Python 2.7 并从中获得乐趣,我正在尝试编写一个二次方程求解器。当 radicand 为正时我让它工作,但当它为负时我得到一个错误。即使在这个 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"

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

最佳答案

你应该替换:

float(a)

与:

a = float(a)

其他变量也类似。

语句 float(a) 实际上并没有将 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'>

执行完float(a)可以看到a的类型还是str,但是,当你执行 w 赋值 a = float(a) 时,类型变为 float

关于python - 类型错误 : unsupported operand type(s) for ** or pow(): 'str' and 'int' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17056264/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com