Python实现无if-else语句的学生成绩评级程序(面向初学者)
不用if-else实现成绩等级判断
可以利用Python中布尔值可转换为整数(True=1,False=0)的特性,通过条件的累加结果作为索引,从预定义的等级元组中获取对应等级,完全不需要if-else语句。
修改后的完整代码如下:
#We Really Stalk Code!! :) M = int(input("Enter The Marks Of Maths(Out OF 100) ")) S = int(input("Enter The Marks Of Science(Out OF 100) ")) E = int(input("Enter The Marks Of English(Out OF 100) ")) TOT = M + S + E print("Total Marks", TOT, sep=" ") PER = (M + S + E) / 3 print("Percentage", round(PER, 2), sep=" ") # 无需if-else的等级判断 grades = ('C', 'B', 'A') # 布尔值相加得到索引:0→C,1→B,2→A grade_index = (PER > 0) + (PER > 50) print(grades[grade_index])
逻辑说明
- 当
PER == 0时,PER > 0和PER > 50都为False(即0),索引为0,取'C' - 当
0 < PER ≤50时,PER > 0为True(1),PER > 50为False(0),索引为1,取'B' - 当
PER > 50时,两个条件都为True(1+1=2),索引为2,取'A'
内容的提问来源于stack exchange,提问作者Piyush Baweja
相关产品推荐
相关产品推荐

