【问题标题】:Covert while loop to for loop将while循环转换为for循环
【发布时间】:2017-04-26 05:12:01
【问题描述】:

我正在尝试使用 for 循环来查找列表的平均值。我已经用一个while循环完成了。

是否可以将其转换为 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

这是我想出的:

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)

【问题讨论】:

  • 1) 就像input(..) 在循环中一样,您不认为for-loop 版本也应该在循环中包含一个吗? 2)range(List_1) 是错误的。 range(..) 取整数;一个整数,(有点)表示你想要迭代多少次。,
  • 改用sum(list)/len(list),它比循环更有效。

标签: python list python-3.x for-loop while-loop


【解决方案1】:
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))

【讨论】:

    【解决方案2】:

    不是在循环中检查列表的结尾(在您的示例中长度为 5),而是在该长度的范围内循环(列表不是 range 函数的适当参数),并且之后打印结果。您也不需要使用列表。

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

    【讨论】:

      猜你喜欢
      • 2018-02-22
      • 2018-08-19
      • 1970-01-01
      • 1970-01-01
      • 2022-12-04
      • 2020-06-20
      • 1970-01-01
      相关资源
      最近更新 更多