Python :(计算正数和负数并计算数字的平均值)

时间:2014-10-15 23:31:50

标签: python nested-loops python-3.4

  

问题陈述:编写一个读取未指定数量的整数的程序,确定读取了多少正值和负值,并计算输入值的总和和平均值(不计算零)。程序以输入0结束。将平均值显示为浮点数。

示例输出(忽略项目符号,不知道如何将文本格式化为控制台输出):

  • 输入一个整数,输入结束,如果它是0:1
  • 输入一个整数,输入结束,如果它是0:2
  • 输入一个整数,输入结束,如果它是0:-1
  • 输入一个整数,输入结束,如果它是0:3
  • 输入一个整数,输入结束,如果它是0:0
  • 您没有输入任何数字
  • 积极数为3
  • 否定数量为1
  • 总数为5
  • 平均值为1.25

尝试解决方案:

def main():
    i = int( input ("Enter an interger, the input ends if it is 0: "))
    count_pos = 0
    count_neg = 0
    total = 0
    if (i != 0):
        while (i != 0):
            if (i > 0):
                count_pos += 1
            elif (i < 0):
                count_neg += 1
            total += i
            i = int( input ("Enter an interger, the input ends if it is 0: "))
            count = count_pos + count_neg
            average = total / count

        print ("The number of positives is", count_pos)
        print ("The number of negatives is", count_neg)
        print ("The total is", total)
        print ("The average is", float(average))
    else:
        print ("You didn't enter any number.")

main()

2 个答案:

答案 0 :(得分:0)

您不需要此行(这就是您的错误发生的原因):

main(i)

要连续获取用户输入,请使用无限循环,并测试条件以打破循环。

while (true):
    i = input("Enter an integer (0 to stop): ")
    if(i == 0)
        break
    sum1 += i
    if (i > 0):
      count_pos += 1
    elif (i < 0):
      count_neg += 1

然后计算并返回平均值。

答案 1 :(得分:0)

您正在使用参数&#39; i&#39;来调用主函数,该函数不存在。您不能使用在该函数之外的函数中声明的变量

退房:Python Scopes