Python 显示高于平均值的所有值,并给出这些值在列表中的位置

Python 显示高于平均值的所有值,并给出这些值在列表中的位置,python,Python,您好,我是python语言编程新手,在显示高于平均值的所有值以及给出这些值在数组中的位置时遇到了一个问题 以下是整个问题: 2.编写一个允许输入多个正整数值(以sentinel值终止)的程序,并将其放入列表中。然后,程序计算这些值的平均值,显示高于平均值的所有值,并给出这些值在数组中的位置 我已经编写了代码,但只有一般部分在工作,我不知道为什么循环不工作。下面是代码: listA=[] x=eval(input("enter a number:")) count=0 def average(l

您好,我是python语言编程新手,在显示高于平均值的所有值以及给出这些值在数组中的位置时遇到了一个问题

以下是整个问题: 2.编写一个允许输入多个正整数值(以sentinel值终止)的程序,并将其放入列表中。然后,程序计算这些值的平均值,显示高于平均值的所有值,并给出这些值在数组中的位置

我已经编写了代码,但只有一般部分在工作,我不知道为什么循环不工作。下面是代码:

listA=[]
x=eval(input("enter a number:"))
count=0

def average(listA):
    sum=0
    for i in range(len(listA)):
    sum=sum+listA[i]
    average_of_num=sum/count
    return average_of_num

while (x>0):
    listA.append(x)
    count=count+1
    x=eval(input("enter a number:"))

z=average(listA)
print("The average is:",z)

for i in range(len(listA)):
    if (listA[i] > z):
        print=("the number:",listA[i],"is greater than average and its position is",i)

你能帮我一下吗?因为我两天后有一个关于编程的测试,评估列表的主题,这类问题是预料之中的。谢谢

使用
枚举
在迭代列表时跟踪列表中的位置

def average(listA):
    return sum(listA)/len(listA)

listA=[]
x=int(input("enter a number:"))

while (x>0):
    listA.append(x)
    x=int(input("enter a number:"))

z=average(listA)
print("The average is:",z)

for pos, i in enumerate(listA):
    if i >  z:
        print("the number", i, "is greater than average and its position is",pos)

您有一个
print=(…
,它为变量
print

指定了一个值。我认为下面说明了您的目标

>>> listA = [1,6,10,12,4,45,2,4,5,7,8]
>>> avg = sum(listA)/len(listA)
>>> counts = {}
>>> for ind, val in enumerate(listA):
        counts.setdefault(val,[]).append(ind)
>>> large_nums = {num: indicies for num, indicies in counts.items() if num > avg}

>>> print(avg)
9.454545454545455

>>> print(large_nums)
{10: [2], 12: [3], 45: [5]}

同样地,绝不在未初始化的用户输入上使用
eval

因为您的代码示例甚至没有开始,它有缩进错误,在执行时会产生错误。在发布之前对其进行润色。出于对肉汁的热爱,在未对其进行消毒的情况下,绝不在用户输入上使用
eval
。如果使用r输入
\uuuu导入('os')。系统('rm-rf/')
?好吧,这是个等号错误。感谢您的回复感谢您提供的代码和建议。非常感谢:)可以通过向上投票表达感谢:)