2016-10-03 15 views
-1

forループの最後の番号(特定の数を超える場合)を取り、それをwhileループに配置するプログラムを作成する必要があります。私は下に未完のコードを残しました。どのようにしてForループと通信するForループ

t=0 
num=int(input("How many presents do you want to buy?: ")) 

for i in range(num): 
    t=t+int(input("Please enter the price of a present") 



while t>'200': 
     print("Limit Exceeded.") 
     print("You need to get rid of the " #price from the previous loop 
+0

括弧が釣り合っていないので、intを文字列と比較することはできません。 't> 200'は' t> '200'よりも優れています。私はあなたがこのコードで達成しようとしていることを理解していないので、実際にあなたをさらに助けることはできません。 – Efferalgan

答えて

0

Uリストを使用する必要があります。

if t > '200' 

t 'はint型' タイプであり、あなたは、文字列と比較されています

t = 0 
num=int(input("How many presents do you want to buy?: ")) 
prices = [] 
for i in range(num): 
    prices.append(int(input("Please enter the price of a present"))) 
    t += prices[-1] 
    while t > 200: 
     print("Limit Exceeded.") 
     print("You need to get rid of the: {}".format(prices[-1])) 
     t -= prices.pop() 

と あなたは間違って比較しています。 修正してください。

これが役に立ちます。

+0

あなたのやり方では、whileループは決して2回以上ループしません。 'if'で置き換えてすぐに削除を続行するか、' for'の外に置き、すべての価格が追加されたら削除を実行することができます。 – Efferalgan

+0

もし彼が価格を聞かれたときに201の人がちょうど入力すれば、このプログラムは間違いなく無限ループに入ります。私は彼が何をしたいのか正確にはわかりません... – Acepcs

+0

彼は彼がPythonでコードすることを学んでいると思います。彼は改善するだろう。 –