在Python中使用while循环而不是for循环

时间:2018-02-20 14:41:37

标签: python python-2.7 for-loop while-loop

我被要求用Python编写一个Python类的基本程序,用于打印用户输入的3个数字的平均值。

我想出了以下内容:

num1 = raw_input("Please enter your first number: ")
num2 = raw_input("Please enter your second number: ")
num3 = raw_input("Please enter your third number: ")

my_list = [float(num1), float(num2), float(num3)]

total = 0

for i in my_list:
    total += i
    average = total / len(my_list)

print("They average of the 3 numbers is: " + str(average))

作为第二个问题,我被要求使用while循环而不是for循环重写此代码。谁能告诉我这是如何工作的?感谢

5 个答案:

答案 0 :(得分:1)

解决方案很简单:

i = 0
total = 0
while i < len(my_list):
    total += my_list[i]
    average = total / len(my_list)
    i += 1

答案 1 :(得分:0)

您可以像这样简化练习并使用while循环:

  NUM = 3 
  count = 1 
  my_list = []
  while True:
      input_num = raw_input("Please enter number {}: ".format(count))
      my_list.append(float(input_num))
      if count == NUM:
          break
      count += 1

  average = sum(my_list) / NUM 
  print("They average of the {} numbers is: {}".format(NUM, average))

答案 2 :(得分:0)

谁能告诉我这是如何工作的?问两种类型的循环有什么区别:

for循环通过序列

迭代

while循环测试条件的真实性

因此它们用于不同的目的。就个人而言,我会({1}}在while之前教授for

可以使用while循环,但你必须自己进行迭代:

i = 0
total = 0

while i < len(my_list):
    total += my_list[i]
    i += 1

average = total / len(my_list)

请注意,average的计算在循环之外。

查询:你为什么教老蟒蛇2.7?

答案 3 :(得分:0)

试试这段代码!

代码:

num1 = input("Please enter your first number: ")
num2 = input("Please enter your second number: ")
num3 = input("Please enter your third number: ")

my_list = [float(num1), float(num2), float(num3)]

total = 0
i=0
while (i<len(my_list)):
    total += my_list[i]
    i=i+1
average = total / len(my_list)

print("They average of the 3 numbers is: " + str(average))

输出:

Please enter your first number:  2
Please enter your second number:  3
Please enter your third number:  4
They average of the 3 numbers is: 3.0

答案 4 :(得分:0)

我们在Python中不使用相同的范例。看到所有这些&#34;答案&#34;我很难过。使用for / while循环。

这将更加pythonic(Python方式):

average = sum(my_list) / len(my_list)

在Python中,我们很少(几乎从不)做经典的C for循环(它实际上没有在语言中实现)。如果您碰巧做了一件事,那么您最有可能做错了。

您可以查看此视频(和其他R. Hettinger的视频)以了解原因。这个核心开发者解释清楚。 https://www.youtube.com/watch?v=OSGv2VnC0go