2017-01-16 9 views
-1

コードのコンパイル中にエラーが発生しました。'int'オブジェクトはPythonでは反復できません3

リストに入力を格納することで、ユーザーの入力から最小値と最大値を見つけようとしました。 「int型のオブジェクトの問題を繰り返すない後、あなたは間違っている数を反復処理しようとしている

largest=0 
smallest=0 
num=[] 
while True: 
    num = int(input("Please enter a number: ")) 

    for i in num: 
     if i>largest: 
      largest=i 
    for j in num: 
     if j<smallest: 
      smallest=j 
    if num==12: 
     break    
print(largest) 
print(smallest) 
+0

ユーザー入力の変数名を、別のものに変更します(nとします)。 'num.append(n)'を追加して、ユーザ入力をnumリストの中に格納します。 – marmeladze

+0

また、 'smallest = 0'で始まります。ゼロより大きい数字だけを入力したときにどうなるか考えてみてください。 –

答えて

0

そのデータのintタイプです。

num = int(input("Please enter a number: ")) 

わかりますように、単一の整数値の場合は何も繰り返しません。

適切な解決策は、入力を別の変数に読み込んでリストに追加することです。

input_num = int(input("Please enter a number: ")) 
num.append(input_num) 

さらに、あなたがもし条件でlen(num) == 12を使用し、その後、12入力した後にループを停止することを望む場合は、あなたの出口句

if num==12: 
    break 

の値を変更する必要があります。入力番号が12の場合はbreakループにしたい場合は、条件がif input_num == 12の場合

注:アルゴリズムにも論理エラーがあります。 smallest0に割り当てています。ユーザーがすべての正の整数を入力として入力した場合、結果は正しくありません。

0

さらに進めることができませんでした、あなたは整数にあなたのnum個のリストを上書きしています。代わりに、次の:

num = int(input("Please enter a number: ")) 

あなたは、いくつかの他の変数に番号を保存しなければならないなどのnumリストに追加しません:あなたは、コードの行numの下に発行した瞬間ではなく、もはやリストである

x = int(input("Please enter a number: ")) 
num.append(x) 
+0

@CodeManga num(リスト)をx(整数)に上書きするので、 'num = x'を実行することはできません。あなたは 'num.append(x)'や 'num = num + x'のように、numにxを追加したいでしょう –

関連する問題