Python 3平均答案函数整数不是iterab

2024-09-28 03:25:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我试过几次,但我不知道我的代码哪里出错了。我已经正确地分配了代码的几个属性,但是我的代码仍然出现语法错误。我打算返回用户生成的列表中的数字量,以及列表中的最低值和最高值,以及它的总和、平均值和中位数。具体地说,当我试图打印最后一行时,我不断地返回错误

def average_ans(numbers):
    lowest = None
    highest = None
    total = 0
    numbers = []
    while True:
        try:
            line = input("enter a number or Enter to finish: ")
            if not line:
                break
            count=0
            while count<len(numbers):
                count+=1
            number = int(line)
            numbers+=number
            i=0
            while i<len(numbers):
                total=total+numbers[i]
            mean=int(total/count)
            lowest=min(numbers)
            highest=max(numbers)
            median=((highest-lowest)/2)+lowest
        except ValueError as err:
            print(err)
    if numbers=="":
        print("numbers:", numbers)
        print("count =", count)
        print("lowest =", lowest)
        print("highest =", highest)
        print("mean =", mean)
        print("median =", median)        

Tags: 代码nonenumber列表ifcountlinemean
1条回答
网友
1楼 · 发布于 2024-09-28 03:25:27

不能使用+=将数字添加到numbers列表中(您可以使用它向列表中添加另一个iterable。)

而不是

numbers += number

numbers.append(number)

除此之外,还有其他一些非Pythonisms我会修复(而且median的定义对我来说似乎不确定,但我没有改变它)。我就是这样写的

def print_stats(numbers):
    count = len(numbers)
    total = sum(numbers)
    mean = int(total / count)
    lowest = min(numbers)
    highest = max(numbers)
    median = ((highest - lowest) / 2) + lowest
    print("numbers:", numbers)
    print("count =", count)
    print("lowest =", lowest)
    print("highest =", highest)
    print("mean =", mean)
    print("median =", median)


def average_ans(numbers):
    numbers = []
    while True:
        line = input("enter a number or Enter to finish: ")
        if not line:
            break
        numbers.append(int(line))
    if not numbers:
        return
    print_stats(numbers)

相关问题 更多 >

    热门问题