持续要求用户输入数字,直到用户输入大于100的数字。然后打印最后一次输入前的数字的平均值。
这是我到目前为止所拥有的
def main():
sum = 0.0
coum = 0
num = input("Enter a Number")
while num <= 100:
sum = sum + num
coum = count
num = input("Enter a Number")
ave = sum/count
print ave
答案 0 :(得分:1)
欢迎使用python,Stackoverflow和家庭作业。我能用你的代码看到的唯一问题是你定义了“coum”,并没有再次使用它,然后要求计数,而不是事先定义。
您需要做的是:
到目前为止你基本上都有这些。只要确保它们更明确。
答案 1 :(得分:1)
要对此进行测试,您应该考虑可以浏览代码并查看是否满足要求的案例。从最开始的最简单的案例开始,逐步解决更复杂的案例。
考虑第一个数字在开始时大于100的情况。什么行被执行?
sum = 0.0
coum = 0
num = input("Enter a Number") # say: num = 200
while num <= 100: # false, break out
print ave # oops, what is `ave`?
ave
的计算应该在循环之外完成。但即使这样,你仍然要担心除零问题,因为coum
将为零。我会把它留给你思考。让我们假设在本演练的其余部分中,该计算被移出循环。
接下来考虑按此顺序输入数字的情况:100
,200
。这次会执行哪些行?
sum = 0.0
coum = 0
num = input("Enter a Number") # num = 100
while num <= 100: # true, let's keep going
sum = sum + num # ok, 0.0 + 100 = 100.0
# You probably would have seen a failure there,
# depending on what version of Python you're using.
# I will assume you're using Python 2.x.
coum = count # oops, what is `count`
此处没有count
变量。所以你不能将一些未知变量分配给另一个。虽然我们试图计算数字的平均数,但我们需要的关键数字是我们平均数的“数量”。 coum
变量确实应该是count
。此时,您希望count
增加1
。弄清楚如何做到这一点。让我们继续。
num = input("Enter a Number") # num = 200
while num <= 100: # false, break out
ave = sum/count # ave = 100.0 / 1 = 100.0
print ave
对数字尝试相同的事情:100
,50
,200
。然后执行哪些行?想出来,看看它是否仍然满足您的要求。如果确实如此,那么请尝试下一个案例。如果没有,找出问题并尝试修复它。如果你感到难过,询问。我希望你下次在这里提问时能做得更好。