Python TypeError:^:'float'和'int'不支持的操作数类型

Posted

技术标签:

【中文标题】Python TypeError:^:\'float\'和\'int\'不支持的操作数类型【英文标题】:Python TypeError: unsupported operand type(s) for ^: 'float' and 'int'Python TypeError:^:'float'和'int'不支持的操作数类型 【发布时间】:2016-03-19 10:22:27 【问题描述】:

我编写了一个简单的程序,它使用数值积分来近似评估定积分。但是,当谈到为什么我在标题中出现错误时,我感到很困惑。请记住,我已经有一年半没有接触过 python 了,所以我可能会很明显地错过了一些东西,但是如果你能帮助我,我仍然会很感激 :) 这是代码:

import math
def f(x):
    f=math.sqrt(1+(6*x+4)^2)
    return f


lbound=int(input("Input lower bound for the integral"))
ubound=int(input("Input upper bound for the integral"))
n=int(input("Input number of intervals"))
dx=((ubound-lbound)/n)
integral=0
for i in range(1,n):
    integral=integral+dx*f(i*dx)

print (integral)

这是 IDLE 在尝试运行代码时给我的完整错误报告:

Traceback (most recent call last):
  File "C:\Users\******\Desktop\integrals.py", line 13, in <module>
    integral=integral+dx*f(n*dx)
  File "C:\Users\******\Desktop\integrals.py", line 3, in f
    f=math.sqrt(1+(6*x+4)^2)
TypeError: unsupported operand type(s) for ^: 'float' and 'int'

【问题讨论】:

【参考方案1】:

Python 的幂运算符是**,而不是^^ 是按位异或。

f=math.sqrt(1+(6*x+4)**2)

【讨论】:

非常感谢,没想到会这么傻!那么,python 中的 ^ 运算符到底是什么意思? @Aris Pap: ^ 是 XOR 运算符,不能应用于 float

以上是关于Python TypeError:^:'float'和'int'不支持的操作数类型的主要内容,如果未能解决你的问题,请参考以下文章

python numpy错误“TypeError:'numpy.float64'对象不能解释为整数”

python - TypeError:不可排序的类型:str()> float()

TypeError:不能将序列乘以“float”类型的非整数(python 2.7)

Python TypeError: 'float' object is not iterable ​

Ode 集成器 Python TypeError 'float' 对象不可下标

python中的ValueError和TypeError