【问题标题】:Take a few numbers and give the average of the numbers取几个数字并给出这些数字的平均值
【发布时间】:2021-08-16 17:14:25
【问题描述】:

我想从用户那里得到一些数字,这样就可以一直持续到用户按下数字 -1。在达到数字 -1 后,程序会给他之前数字的平均值。我的代码有效,但计算错误。有什么问题?

  sum = 0
  count = 0 
  x = []
  while x != -1 :
      x = int(input())
      sum += x
      count += 1

  averagex = sum / count 
  print(averagex)


   

【问题讨论】:

标签: python loops while-loop numbers average


【解决方案1】:

您的循环在用户输入-1 之后结束。这意味着在最后一次迭代中,将从总数中减去 1,count 将比它应该的高一个。试试这个:

  while True:
      x = int(input())
      if x == -1:
          break
      sum += x
      count += 1

【讨论】:

  • 很高兴为您提供帮助!如果它回答了您的问题并且您认为它可能对其他人有帮助,请随时将此答案标记为正确:)
【解决方案2】:

现在您对输入的验证是在while x != -1 完成的,它在输入、总和和计数部分之后执行,所以-1 将成为结果的一部分,事情你不想要的。

一个简单的if 就可以解决这个问题:

total, count, x = 0, 0, 0
while True:
    x = int(input("Enter a value: "))
    if x == -1:
        break
    total += x
    count += 1

避免使用内置函数名,例如sum,用于变量命名

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-11
    • 1970-01-01
    • 1970-01-01
    • 2013-04-21
    • 1970-01-01
    • 2012-10-01
    • 2022-12-19
    相关资源
    最近更新 更多