利用” for ”来判定集合内的元素是否符合计算要求比一般的“ if ”要简练的多。
单纯使用“ if ”语句会因为条件的叠加变得异常繁琐,在编写时漏掉一小部分条件也是难以避免的事实。
例如:分别输入五个人的成绩。求这五个人的总分、平均分。(成绩小于60分的不计算平均分)
倘若只使用“ if ”语句,仅仅在“小于60分”上面就要穷举所有的可能性,即:2*2*2*2*2=32种。
但是利用“ for ”来制定寻找元素的标准就只需浏览一遍即刻。
如下:
score1 = int(input("1:"))
score2 = int(input("2:"))
score3 = int(input("3:"))
score4 = int(input("4:"))
score5 = int(input("5:")) # 输入5个人的成绩
points = [score1,score2,score3,score4,score5]
sum = 0
count = 0
sum1 = 0
for point in points :
sum1+=point #(计算所有人的总分)
if point > 60: #(制定的标准:成绩大于60)
sum += point #(“大于60”的成绩相加,求总分)
count += 1 #(计算成绩大于60的人数)
print("成绩总分:" + str(sum1))
print("平均分:" + str(sum / count))
对上面程序进一步思考,以及进行优化——如果统计的学生人数以“十”或者“百”为单位,一个个的输入成绩未免太折磨人了,不是么。
sum=0
sum2=0#(统计及格的人的成绩总分)
count=0#(统计及格人数)
for i in range(1,6):
score=int(input("输入第"+str(i)+"个人的成绩"))#(直接输入第1人到第5人的成绩,相较于上面逐个"input"是不是简化了很多!)
sum+=score #(计算所有人的总分)
if score>=60:#(判断是否及格)
sum2+=score
count+=1
print("sum=",sum)
if count!=0:#(假设无人及格,那么count应该为0,但是0不可作为分母,所以要排除这一可能性)
print("avg=",sum2/count)#(count不能为0)
else:
print("无人及格")