问题是:
询问用户她有多少孩子。输入每个孩子的年龄(确保该值是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
?它总体上看起来不错吗?
答案 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))