gpt4 book ai didi

python -/: '_io.TextIOWrapper' and 'float' 不支持的操作数类型

转载 作者:行者123 更新时间:2023-12-01 05:48:02 29 4
gpt4 key购买 nike

我在尝试编译以下程序时收到错误消息。目标是分析非线性摆和一个特定庞加莱截面的行为。我尝试将摆的行为数据打印到一个文件,并将对应于庞加莱部分的输出打印到另一个文件。

Python shell 中列出的错误如下:

Traceback (most recent call last):
File "C:\Python32\Lib\site-packages\visual\examples\JMB312.py", line 39
thetaDotDot = -(g / L) * sin(theta) - q * thetaDot + Fd * sin(Ohm * t)
TypeError: unsupported operand type(s) for /: '_io.TextIOWrapper' and 'float'

我真的不明白为什么 io.TextIOWrapper 会出现在这个错误中,也不明白如何解决这个问题。如有任何帮助,我们将不胜感激!

代码:

from visual import *
from visual.graph import *

scene.title = 'Pendulum'
scene.autoscale = False
scene.height = scene.width = 500
pivot = array([0,0,0]) # pivot position of pendulum
scene.center = pivot # center scene on pendulum pivot
framesPerSecond = 400

myWindow1 = gdisplay(x=500, title = "Phase Space", xtitle="Theta", ytitle="ThetaDot", height=500, width=500)
f1 = gdots(gdisplay=myWindow1, color = color.cyan, size = 1)

myWindow2 = gdisplay(title="Poincare Section", xtitle="Theta", ytitle="ThetaDot",y=400, x=500, height=500, width=500)
f2 = gdots(gdisplay=myWindow2, color = color.yellow)

#initial conditions for pendulum 1
g = 9.8 # gravity
m = 1 # mass at end of rod
L = 9.8 # length of rod
theta = 0.2 # initial angle (from vertical)
thetaDot = 0 # start pendulum at rest
thetaDotDot = 0 # acceletation
dt = 0.04 # time step
t = 0 # time
Fd = 1.2 # drive force coefficient
Ohm = 2/3 # oscillatory coefficient for drive force
q = 0.5 # coefficient of friction

#pendulum 1 rod
rod = cylinder(pos=pivot, axis = (L*sin(theta),-L*cos(theta),0), radius = 0.1, color=color.cyan)

f=open('JMB312 data 1.txt','w')

g=open('JMB312 data 2.txt','w')

while t < 100000: #a lot of data
thetaDotDot = -(g / L) * sin(theta) - q * thetaDot + Fd * sin(Ohm * t)
thetaDot = thetaDot + thetaDotDot * dt
theta = theta + thetaDot * dt

time = str(t)
angle = str(theta)
angular_velocity = str(thetaDot)

if t < 750:
f.write(time)
f.write(",")
f.write(angle)
f.write(",")
f.write(angular_velocity)
f.write("\n")

f1.plot(pos=(theta,thetaDot))

if -dt**2/4 < Fd * sin(Ohm * t) < dt**2/4: #print poincare section data to separate file
g.write(time)
g.write(",")
g.write(angle)
g.write(",")
g.write(angular_velocity)
g.write("\n")

f2.plot(pos=(theta,thetaDot))

if theta > 2 * pi:
theta = theta - 2 * pi
if theta < -2 * pi:
theta = theta + 2 * pi

rod.axis = (L*sin(theta), -L*cos(theta), 0)

t = t+dt
g.close()
f.close()

最佳答案

您正在使用g要存储重力并打开文件,请更改 g=open('JMB312 data 2.txt', 'w') 中的名称。行到其他值,它应该可以工作。

关于python -/: '_io.TextIOWrapper' and 'float' 不支持的操作数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15440753/

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