Python2.7.5,数组平均数的显示,语法是否正确,循环是否有空格?

Python2.7.5,数组平均数的显示,语法是否正确,循环是否有空格?,python,arrays,list,Python,Arrays,List,试图显示数组中有多少值高于计算平均值的计数,当我出于某种原因运行代码时,它跳过了计数高于平均值的学生年龄的计数器循环:我用3个年龄值35、25和50加载数组,希望显示有多少值高于平均值的计数,但它跳过了这个?请协助, 另外,如果我想退出循环,并且不在if/else中的else上放置任何内容,那么如果您想在else上放置空白空间,那么什么内容都不会改变呢?以下是我目前的代码: st_age = [0] * 3 for g in range(0,3): st_age[g] = int(in

试图显示数组中有多少值高于计算平均值的计数,当我出于某种原因运行代码时,它跳过了计数高于平均值的学生年龄的计数器循环:我用3个年龄值35、25和50加载数组,希望显示有多少值高于平均值的计数,但它跳过了这个?请协助, 另外,如果我想退出循环,并且不在if/else中的else上放置任何内容,那么如果您想在else上放置空白空间,那么什么内容都不会改变呢?以下是我目前的代码:

st_age = [0] * 3 
for g in range(0,3):
    st_age[g] = int(input("Enter student age "))

g = 0 
sum = 0
count = 1
count2 = 0

while g < len(st_age):
    sum = sum + st_age[g]
    g += 1
average = sum / len(st_age) #the average calc. 
print "the average is:", average 
#starting counter loop here: 
g = 0
while g < len(st_age):
    if st_age[g] > average:
        count = count + 1 
    else: count = count + 1 # I don't know what to put here, it skips the whole thing

print "the number above the average is:", count
st_age=[0]*3
对于范围(0,3)内的g:
st_年龄[g]=int(输入(“输入学生年龄”))
g=0
总和=0
计数=1
count2=0
当g平均值:
计数=计数+1
否则:count=count+1#我不知道该放在这里什么,它跳过了整个过程
打印“高于平均值的数字为:”,计数

您没有义务放置
else
块。如果列表元素满足您的条件,只需将1添加到
count
,并且不要忘记在每种情况下增加
g
,因为您实际上并没有遍历列表,而是始终引用它的第一个元素

我的主张:

for age in st_age: # examine all items in st_age one by one
    if age > average:
        count += 1

print "the number above the average is:", count
  • 要对所有列表元素求和,可以使用内置的
    sum()
    函数
  • 您按
    g
    循环,但在循环中从不更改
    g
    。换句话说,
    g
    始终等于0,而
    循环永远不会结束
  • 您可以使用列表理解来写这篇文章,这要容易得多。例如:
  • 
    打印长度(如果年龄>平均值,则以st_年龄表示年龄)
    

    如果您是初学者,则应注意不要将函数名用作变量:

    age = [3,14,55]  
    sum_age = 0
    count = 1
    count2 = 0
    g = 0  
    
    while g < len(age):
        sum_age += age[g]
        g += 1 
    average = sum_age / len(age) #the average calc. 
    print "The average is:", average  
    
    g = 0
    while g < len(age):
        if age[g] > average:
            count = count + 1  
        g += 1 
    print "The number above the average is:", count
    
    age=[3,14,55]
    总年龄=0
    计数=1
    count2=0
    g=0
    而g平均值:
    计数=计数+1
    g+=1
    打印“高于平均值的数字为:”,计数
    
    “另外,如果我想退出循环,并且不在if/else中的else上放置任何内容,那么如果您想在else上放置空白空间,以便不发生任何更改,您可以放置什么内容?”

    你可以写 通过 在其他方面什么也不做

    可能的解决办法是:

    st_age = [0] * 3 
    for g in range(0,3):
        st_age[g] = int(input("Enter student age "))
    
    average = sum(st_age)/len(st_age)
    print "the number above the average is:", sum([1 for eachAge in st_age if eachAge>average])
    
    您可能想使用“原始输入”而不是“输入”。