你正在运行一个测试,它检查多个可能的条件,并且在其中任何一个为真时执行一段代码。
我认为你想要计算有多少个分数小于50,并报告总数。
让我们先做一个简单版本,然后再逐步扩展:
student = ['KAYE', 'DAVID', 'MUSIC', '88', 'ART', '45', 'FRENCH', '36']
ALARM = 50
num_alarms = 0
if int(student[3]) < ALARM:
num_alarms += 1
print("Alarm! The " + student[2] + " grade is too low!")
if int(student[5]) < ALARM:
num_alarms += 1
print("Alarm! The " + student[4] + " grade is too low!")
if int(student[7]) < ALARM:
num_alarms += 1
print("Alarm! The " + student[6] + " grade is too low!")
if num_alarms != 0:
print("There were " + str(num_alarms) + " grades too low.")
这做了我认为你试图做的事情。但我们可以稍微整理一下:
student = ['KAYE', 'DAVID', 'MUSIC', '88', 'ART', '45', 'FRENCH', '36']
ALARM = 50
num_alarms = 0
for score in range(3,len(student), 2):
if int(student[score]) < ALARM:
print("Alarm! The " + student[score-1] + " grade is too low!")
num_alarms += 1
if num_alarms != 0:
print("There were " + str(num_alarms) + " grades too low.")
最后,我们可以"完全使用Python"并添加列表推导式:
alarms = [ student[class_] for class_ in range(2, len(student), 2) if int(student[class_ + 1]) < ALARM ]
for class_ in alarms:
print("Alarm! The " + class_ + " grade is too low!")
num_alarms = len(alarms)
if num_alarms != 0:
print("There were " + str(num_alarms) + " grades too low.")