找到大道的python程序

时间:2012-02-13 16:37:06

标签: python

  

持续要求用户输入数字,直到用户输入大于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

2 个答案:

答案 0 :(得分:1)

欢迎使用python,Stackoverflow和家庭作业。我能用你的代码看到的唯一问题是你定义了“coum”,并没有再次使用它,然后要求计数,而不是事先定义。

您需要做的是:

  • 创建一个增量,用于计算之前输入的数量。
  • 定义一个coum或count,并在整个过程中使用它。

到目前为止你基本上都有这些。只要确保它们更明确。

答案 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将为零。我会把它留给你思考。让我们假设在本演练的其余部分中,该计算被移出循环。

接下来考虑按此顺序输入数字的情况:100200。这次会执行哪些行?

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

对数字尝试相同的事情:10050200。然后执行哪些行?想出来,看看它是否仍然满足您的要求。如果确实如此,那么请尝试下一个案例。如果没有,找出问题并尝试修复它。如果你感到难过,询问。我希望你下次在这里提问时能做得更好。