2017-09-23 29 views
-3

私は現在、forループで作業しています。キャンディーは何とかオーバータイムを掛けることができます。常に1つのキャンディで始まり、y = ax + bの関数で1秒結果としてのy値は時間= 2秒に繰り越される。例えば:forループから1つの反復を印刷する

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 

ある3つの出力を与える数字は右ですが、問題は、私はちょうど最後の文を印刷したいということです。それを行う方法はありますか?

+2

印刷に関しては、** for **ループの後に**します。 'print'行のインデントを解除するだけです。 –

+0

私は悪いはずだったはずだ – Kiki

+0

実際には、合計時間とループ反復値の両方に 't'という名前を再使用すべきではありません。また、Pythonでは1文字の変数に制限されません。 'x'の代わりに' candies'、 't'の代わりに' second'、 't'の代わりに' time'の代わりに 't'を使うとコードがより明確になります。総時間(秒)など –

答えて

0

あなたはまた、いくつかの他の変数に1変数tを変更することがありループ

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

用の外にprint文を移動することでこれを行うことができます。例えば、 。

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'を**置き換える必要があります。 –

関連する問題