在python中从用户给定列表中查找平均值

时间:2019-02-17 07:15:57

标签: python

我需要让用户输入“男孩”和“女孩”的等级,直到他们想停止添加等级为止。比找到男孩成绩的平均成绩和女孩成绩的平均成绩分别打印。

我的问题是我不知道该怎么做,以便用户可以为男孩和女孩添加任意数量的成绩,然后获得两个平均值。

我对python还是很陌生,不知道最好的方法是什么,比如我会以尚未学习的某种方式使用whileif吗?

2 个答案:

答案 0 :(得分:0)

有很多方法可以做到这一点,一种方法是使用循环来检查用户何时说出了特定的关键字。在此示例中,关键字为“完成”:

output = []
timeToStop = False

while not timeToStop:
    userInput = input("What is the next value? ")
    if userInput == 'done':
        break
    else:
        output.append(userInput)

# Converts the list of grades from string to int
output = list(map(int, output))

从这里您将获得一个值列表,您可以根据自己的喜好对其进行操作。例如,如果您想取平均值,可以执行以下操作:

# output already has been declared above and has a value

total = 0
for grade in output:
    total += grade

print("Average is {total/len(output)}")

答案 1 :(得分:0)

bn,bs=0,0 #count of boys,Sum of grades of boys
gn,gs=0,0 #Count of girls, Sum of grades of girls
while(1):
    grades=input("Enter grades = ") #Enter grades as 10b where 10 is grade and "b"->boys "g"->girls or any other character to quit.
    if('b' in grades):
        bs+=int(grades.replace('b',''))
        bn+=1
    else:
        if('g' in grades):
            gs+=int(grades.replace('g',''))
            gn+=1
        else:
            if(bn!=0): #Divide by zero error
                print("Average of boys = "+ str(bs/bn))
            if(gn!=0):
                print("Average of girls = "+ str(gs/gn))
            break