我需要让用户输入“男孩”和“女孩”的等级,直到他们想停止添加等级为止。比找到男孩成绩的平均成绩和女孩成绩的平均成绩分别打印。
我的问题是我不知道该怎么做,以便用户可以为男孩和女孩添加任意数量的成绩,然后获得两个平均值。
我对python还是很陌生,不知道最好的方法是什么,比如我会以尚未学习的某种方式使用while
或if
吗?
答案 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