Zuerst entschuldigen Sie, wenn dies ein Noob-Problem ist, aber ich bin völlig neu im Codieren.Basic Vpython-Codefehler - "TypeError: schlechter Operandentyp für unary -: 'tuple'"
Ich befolge eine Anleitung zum Aufbau eines harmonischen Oszillationssimulators in Vpython, aber jedes Mal, wenn ich versuche, das Programm auszuführen, erhalte ich diesen Fehler.
Kann mir bitte jemand den Code ansehen und mir sagen, wo ich falsch gelaufen bin. Ich bin dem Führer wortwörtlich gefolgt, weil ich nur Zeile um Zeile kopiere, was ich sagen soll. Aber es hat keine Probleme beim Fotografieren. Darin heißt es nur "Ihr Programm ist nun bereit zu laufen"
from visual import *
from visual.graph import *
L=vector(1,0,0)
s=vector(1.,0,0)
block=sphere(radius=0.25, color=color.cyan, pos=L+s)
spring=cylinder(pos=(0,0,0), axis=L+s, radius=.1)
scene.autoscale=0
posgraph=gcurve(color=color.green)
k=100,; g=9.8; mu_s=.5; mu_k=.5; m=1.; dt=.0001; d=0.; t=0.
F_mu_s=mu_s*m*g
F_spring=-k*(block.pos-L)
almost_zero_p=mag(F_spring)*dt
block.p=vector(0,0,0)
while not(mag(block.p)<almost_zero_p and F_mu_s>=mag(F_spring)):
if not(mag(block.p)<almost_zero_p):
F_mu_k=m*g*mu_k*norm(block.p)
else:
F_ms_k=vector(0,0,0)
F_spring=-k*(block.pos-L)
Fnet=F_spring+F_mu_k
block.p=block.p+Fnet*dt
block.pos=block.pos+block.p/m*dt
spring.axis=block.pos-spring.pos
d=d+mag(block.p/m)*dt
posgraph.plot(pos=(t,block.pos.x-L.x))
t=t+dt
print "Total distance traveled is", d
Ah du Legende danke. Also hatte ich ein Komma anstelle eines Punktes gesetzt, der das Tupel erzeugte. Um ehrlich zu sein, habe ich mir die Zeile unter k = 100 angeschaut, was auch keinem lol geholfen hat. – user2081549
kein Problem :) Sie hatten Glück, keine downvotes zu bekommen;), Syntaxprobleme werden in der Regel schnell abgelehnt. –