2017-01-10 4 views
0

Ich versuche, eine kleine Gleichung durch Inkrementieren einer Variablen (t) zu erstellen, aber drucke die Ergebnisse nur alle 500 Mal. Ich verwende eine Zählerfunktion und Rest, um anzuzeigen, wenn ich eine ganze Ganzzahl für den Wert habe und dann drucken. In diesem Code wird nichts gedruckt. Wenn ich den Zähler auf "counter = counter + 5" setze, wird er ausgeführt und um 5 erhöht, aber jedes Mal gedruckt. Kannst du sehen, was falsch ist? Sie können sehen, dass ich einige Dinge kommentiert habe, die ich versucht habe. Ich denke, die Lösung ist so etwas, aber ich kann es nicht herausfinden!Hinzufügen einer Zähleranweisung, um Werte alle 1 Minute zu drucken

t = 0 
counter = 0 
#mass rocket = 4390 
#mass fuel at launch = 
mass= 13000 
v = 0 
a = 0 
d = 0 
deltat=.001 

#gd = gdisplay(x=0, y=0, width=100, height=4000, title='v vs. t', xtitle='t', ytitle='v',foreground=color.black, background=color.white, xmax=70, xmin=0, ymax=4000, ymin=0) 
while (t<=65): 
    t = t + deltat 
    mass = 13000 - (130*t) 
    v = v + ((1880*(130*deltat))/(mass)) 
    a = ((1880/(mass))*((130*deltat)/(deltat))) 
    d = d + ((v*deltat)+((.5)*a*(deltat*deltat))) 
    #counter += .001 
    counter = counter + t 
    #counter%5==0 
    if counter %5 == 0: 
     print (counter) 
     print (t) 
     print (v) 
     #print a 
     print (d) 

Ich habe das versucht und es läuft nicht. Keine Fehler, es tut einfach nichts.

t = 0 
counter = 0 
#mass rocket = 4390 
#mass fuel at launch = 
mass= 13000 
v = 0 
a = 0 
d = 0 
deltat=.001 

#gd = gdisplay(x=0, y=0, width=100, height=4000, title='v vs. t', xtitle='t', ytitle='v',foreground=color.black, background=color.white, xmax=70, xmin=0, ymax=4000, ymin=0) 
while (t<=65): 
    t = t + deltat 
    mass = 13000 - (130*t) 
    v = v + ((1880*(130*deltat))/(mass)) 
    a = ((1880/(mass))*((130*deltat)/(deltat))) 
    d = d + ((v*deltat)+((.5)*a*(deltat*deltat))) 
    #counter = counter + 5.0 
    if t % 1.0 == 0: 
     #print (counter) 
     print (t) 
     print (v) 
     print (d) 

Jeepers- Entschuldigung, ich bin so bescheuert. Ich müde dies und es läuft nur einmal:

t = 0 
counter = 0 
#mass rocket = 4390 
#mass fuel at launch = 
#mass= 13000 
v = 0 
a = 0 
d = 0 
deltat=.001 

#gd = gdisplay(x=0, y=0, width=100, height=4000, title='v vs. t', xtitle='t', ytitle='v',foreground=color.black, background=color.white, xmax=70, xmin=0, ymax=4000, ymin=0) 
while (t<=65): 
    t = t + deltat 
    mass = 13000 - (130*t) 
    v = v + ((1880*(130*deltat))/(mass)) 
    a = ((1880/(mass))*((130*deltat)/(deltat))) 
    d = d + ((v*deltat)+((.5)*a*(deltat*deltat))) 
    #counter += 1 
    if counter % 500 == 0: 
     print (counter) 
     print(t) 
     print(v) 
     print(d) 
     counter += 1 

Wenn ich den Zähler über dem if-Anweisung erhöhen, wird es durch .5s t erhöht wird und nicht .001, und Erhöhen Zählung x 500. Ich bin verwirrt.

t = 0 
counter = 0 
#mass rocket = 4390 
#mass fuel at launch = 
#mass= 13000 
v = 0 
a = 0 
d = 0 
deltat=.001 

#gd = gdisplay(x=0, y=0, width=100, height=4000, title='v vs. t', xtitle='t', ytitle='v',foreground=color.black, background=color.white, xmax=70, xmin=0, ymax=4000, ymin=0) 
while (t<=65): 
    t = t + deltat 
    mass = 13000 - (130*t) 
    v = v + ((1880*(130*deltat))/(mass)) 
    a = ((1880/(mass))*((130*deltat)/(deltat))) 
    d = d + ((v*deltat)+((.5)*a*(deltat*deltat))) 
    counter += 1 
    if counter % 500 == 0: 
     print (counter) 
     print(t) 
     print(v) 
     print(d) 
+0

By the way, wenn Sie Python verwenden 3, 'print' ist eine Funktion, so dass es shouldn‘ t sei ein Leerzeichen zwischen 'print' und den Klammern. Eine andere Sache: Sie definieren "Masse" als 13000, aber dann Code 1300 am Anfang Ihrer Schleife. – Jakub

+0

Ist das nicht was du wolltest? Ihre Schleife wird Ihre if-Anweisung alle 500 Iterationen eingeben. Alle 500 Iterationen hat Ihre t-Variable 500 * 0,001 = 0,500 erhöht. –

+0

Ja- Sie sind richtig und ich denke, es funktioniert. Ich danke dir sehr!! – ericbikes

Antwort

0

Zähler erhöhen als solche:

counter += 1 

und drucken wie diese

if counter % 500 == 0: 
    print (counter) 
+0

Ich habe gerade meine Frage aktualisiert - aber lass mich deinen Vorschlag ausprobieren - danke! – ericbikes

+0

In Ihrem Fall muss ich "Zeit" definieren oder importieren? Ich bin Neuling, der gerade versucht, das zu lernen. Ich will nur eine einfache Funktion, die in Englisch sagt "Wenn" t "ist ein ganzzahliger Wert in Vielfachen von x, dann drucken Sie die Ergebnisse." Hier ist eine Beispielausgabe, aber es sollte zum Beispiel nur alle 500 Mal gedruckt werden. – ericbikes

+0

5,0 0,001 0,01880018800188002 2.820028200282003e-05 10,0 0,002 0,03760056400940017 7.520103401598027e-05 – ericbikes

Verwandte Themen