带2个变量的Elif语句

2024-04-16 19:47:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图写一个函数,返回一个分数的平均分数,我的语法显然是不对的。有什么建议吗?在

average = sum(first_score, second_score, third_score, fourth_score, fifth_score)

if average >= 90 or <= 100:
    print('A')
elif average >=80 or <= 90:
    print('B')
elif average >= 70 or <= 79:
    print('C')
elif average >= 60 or <= 69:
    print('D')
else: 
    print('F')

Tags: or函数语法分数建议firstscoresum
3条回答

首先,^{}对单个iterable求和。所以,你需要给它一个:

# Note the extra parenthesis
average = sum((first_score, second_score, third_score, fourth_score, fifth_score))

其次,不能像这样使用or。相反,您应该像这样将比较链接起来:

^{pr2}$

第三,你在else后面漏了一个冒号。在

最后,我想说你的平均数公式是错误的。一组数字的平均数是用这些数字的总和除以数字的数目来计算的。在


以下是脚本的固定版本:

scores = (first_score, second_score, third_score, fourth_score, fifth_score)
average = sum(scores)/len(scores)
if 89 < average < 101:
    print('A')
elif 79 < average < 90:
    print('B')
elif 69 < average < 80:
    print('C')
elif 59 < average < 70:
    print('D')
else:
    print('F')

另外,我稍微调整了数字,这样我就可以用<代替{}。我这样做是因为前者需要更少的语法。在

if 90<= average: return 'A'
elif 80 <= average: return 'b'

你不需要检查上限。。。因为我们已经确定的那条线不到90

首先,您的条件需要是ands,而不是{}s

if 100 >= average >= 90:  # same as if 100 >= average and average >= 90
    print('A')
elif 89 >= average >=80:
    print('B')
elif 79 >= average >= 70:
    print('C')
elif 69 >= average >= 60:
    print('D')
else:
    print('F')

相关问题 更多 >