在python中计算平均值?

时间:2015-10-07 06:46:07

标签: python loops for-loop while-loop

问题是:

  

询问用户她有多少孩子。输入每个孩子的年龄(确保该值是0到100之间的数字)。计算并输出用户孩子的平均年龄。

这是我到目前为止所做的:

child = int(input("How many children do you have?"))
count = 1
total = 0
if child > 100:
    print("Invalid!")
else:
    while count <= 11:
        n = int(input("Enter child #%s" %str(count)+ " age:"))
        count += 1
        total += n

    print("Average age:", total/child)

我无法设定孩子的数量。例如,当我输入3或7个孩子的问题(你有多少个孩子?)时,它仍然允许我为11个孩子输入年龄。我知道我把它设置为&lt; = 11但是我不知道怎么做呢?另外,这是我尝试while-loop,我仍然需要使用for-loop?它总体上看起来不错吗?

6 个答案:

答案 0 :(得分:4)

你回答了自己的问题。导致while count <= 11:循环11次。

while count <= 11替换为while count <=child

答案 1 :(得分:4)

如果我正确地阅读你的问题。当它询问用户您将其存储在child变量中的子项数时,然后您使用它来比较子项的最大年龄(100)。哪个不对。 从用户获取子变量输入后,您应该使用for循环以及range()函数,如下所示:

child = int(input("How many children do you have?"))
total =0
for num in range(child):
     n = int(input("Enter child age:"))
     if n > 100:
         print "error"
     total+=n

然后拿走总数并用孩子平均。不必定义num变量,因为Python将在for循环中为您执行此操作。希望这有帮助

答案 2 :(得分:3)

更改

while count <= 11:

while count <= child:

你只循环了11次,你必须循环直到&lt; = child times。

答案 3 :(得分:3)

让我通过提供正确的代码并向您解释它的工作原理来帮助您:

child = int(input("How many children do you have?"))
count = 1
total = 0
if child > 100:
    print("Invalid!")
else:
    while count <= child:
        n = int(input("Enter child #%s" %str(count)+ " age:"))
        count += 1
        total += n

print("Average age:", total/child)

条件count <= child检查我们是否考虑了所有孩子。您可以轻松地将其更改为for循环:

child = int(input("How many children do you have?"))
total = 0
if child > 100:
    print("Invalid!")
else:
    for count in range(child): # This start counting from 0
        n = int(input("Enter child #%s" %str(count)+ " age:"))
        total += n

print("Average age:", total/child)

这个循环实际上重复numChildren次,就像我们想要的那样多。有关range的一些文档,请查看this link.

此外,由于您很可能希望为child提供正确的输入,因此您可以编写以下代码来强制用户输入正确的输入:

child = int(input("How many children do you have?"))
count = 1
total = 0
while child > 100:
    print("Invalid!")
    child = int(input("How many children do you have?"))

while count <= child:
    n = int(input("Enter child #%s" %str(count)+ " age:"))
    count += 1
    total += n

print("Average age:", total/child

答案 4 :(得分:2)

使用child代替11

要使用for循环,您可以摆脱count计数器,只需执行for i in range(child):

答案 5 :(得分:2)

奇怪的是,没有提供的答案检查给定数量的孩子是否大于零。并且没有人认为平均年龄在大多数情况下不是整数。

您必须检查是否child > 0并将最终结果计算为float

child = int(input("How many children do you have?"))
count = 1
total = 0
if child <= 0 or child > 100:
    print("Invalid!")
else:
    while count <= child:
        n = int(input("Enter child #%s" %str(count)+ " age:"))
        count += 1
        total += n

    print("Average age:", float(total)/float(child))