我想通過增加一個變量(t)來運行一個小方程式,但每隔500秒只打印一次結果。我正在使用一個計數器函數和其餘部分來指示何時我有一個整數的值,然後打印。在此代碼中,它不打印任何內容。如果我將計數器設置爲「counter = counter + 5」,它將運行並遞增x 5,但每次都打印一次。你能看到什麼是錯的嗎?你可以看到我評論了一些我正在嘗試的東西。我認爲解決方案是這樣的,但我無法弄清楚!添加一個計數器語句,每1分鐘打印一次數值
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)
我試過這個,它不運行。沒有錯誤,它只是沒有做任何事情。
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-對不起,我太傻了。我厭倦了這樣的,它只是運行一次:
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
如果我增加if語句高於櫃檯,它是由,5S遞增噸和不.001,並增加計數x 500.我很困惑。
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)
順便說一句,如果你正在使用Python 3,'print'是一個功能,所以不該有」 t是「print」和括號之間的空格。另一件事:你將'mass'定義爲13000,但在你的循環開始時將硬編碼爲1300。 – Jakub
這不是你想要的嗎?你的循環將每500次迭代進入你的if語句。每500次迭代,你的t變量增加了500 * 0.001 = 0.500。 –
是的,你是對的,我認爲它是有效的。非常感謝!! – ericbikes