2017-09-23 40 views
-3

我現在正在使用for循環,並且假設糖果可以以某種方式自行超時,它總是以一個糖果開始並在1秒內乘以y = ax + b的函數並將結果的y值延續到時間= 2秒。例如:從for循環中打印一個迭代

a = 3 #this is a in ax+b 
b = 1 #this is b in ax+b 
t = 3 #this is time in seconds 

x = 1 
for t in range(t): 
    t+=1 
    x=(a*x)+b 
    print('str(x) + ' candies after '+str(t)+' seconds') 

這段代碼給了我三個輸出,這是

4 candies after 1 seconds 
13 candies after 2 seconds 
40 candies after 3 seconds 

的數字是正確的,但問題是,我只是想打印的最後一條語句。有沒有辦法做到這一點?

+2

至於印刷,在** for'循環之後這樣做**。只是unindent'印刷線'。 –

+0

我的壞處應該是t – Kiki

+0

您不應該在總時間和循環迭代值中重複使用名稱't'。另外,python不會限制你使用1個字符的變量,如果你使用'candies'而不是'x'和'second'代替't','time'代替't',代碼會更清晰以秒爲單位的總時間等。 –

回答

0

您可以通過出移動打印語句for循環

for t in range(t): 
    t+=1 
    x=(a*x)+b 
print(str(x) + ' candies after '+str(t)+' seconds') 
# 40 candies after 3 seconds 

您也可以改變一個變量噸至其他變量做到這一點。 例如。

a = 3 #this is a in ax+b 
b = 1 #this is b in ax+b 
t = 3 #this is time in seconds 

x = 1 
for i in range(t): 
    i+=1 
    x=(a*x)+b 
print(str(x) + ' candies after '+str(i)+' seconds') 
+0

如果要在循環中將't'更改爲'i',則需要在'for'行之後替換**所有其他't'事件**。 –