2016-12-11 27 views
0

forループを使用してリストの平均を探しようとしています。私はwhileループでやった。forループwhileループforループ

これをforループに変換することはできますか?

List_1 =[] 

while (True): 

    val_1 = float(input("Enter a number: ")) 
    List_1.append (val_1) 

    if len(List_1)>=5: 

     List_sum = sum(List_1) 
     List_avg = (List_sum/len(List_1)) 

     print("AVG:",List_avg) 

     break 

これは私が作ってみたものです:ループ、代わりに、ループ内で、リストの末尾(あなたの例では5の長さ)をチェックする

val_1 = int(input("Enter a number: ")) 
List_1 = [] 
List_1.append (val_1) 
List_sum = 0 
List_len = 0 
List_avg = 0 

for i in range (List_1): 
    List_sum = sum(numbers) 
    List_len = len(numbers) 

    if len(numbers) >=5: 
     List_avg = List_sum/List_len 
     print (List_avg) 
+0

1)ループの中にあった 'input(..)'と同様に、forループのバージョンもループ内にあるはずですか? 2) 'range(List_1)'が間違っています。 'range(..)'は整数をとります。あなたが反復したい回数を指定する整数です。 – SuperSaiyan

+0

代わりに 'sum(list)/ len(list)'を使用すると、ループよりも効率的です。 –

答えて

0
L = [] 
for _ in range(5): 
    L.append(float(input("Enter a number: "))) 

print("The length is", len(L)) 
print("The total is", sum(L)) 
print("The average is", sum(L)/len(L)) 
0

その長さの範囲(リストはrange関数の適切な引数ではありません)に変換し、その後に結果を出力します。リストを使う必要はありません。

list_len = 5 
result = 0 
for i in range(list_len): 
    result += float(input('Enter a number: ')) 

print(result/list_len)