小编Mat*_*res的帖子

如何简化评分系统函数中重复的 if-elif 语句?

目标是构建一个程序,将分数从“0 到 1”系统转换为“F 到 A”系统:

  • 如果score >= 0.9会打印“A”
  • 如果score >= 0.8会打印'B'
  • 0.7,C
  • 0.6, D
  • 以及低于该点的任何值,打印 F

这是构建它的方法,它适用于程序,但有点重复:

if scr >= 0.9:
    print('A')
elif scr >= 0.8:
    print('B')
elif scr >= 0.7:
    print('C')
elif scr >= 0.6:
    print('D')
else:
    print('F')
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一种方法可以构建一个函数,以便复合语句不会重复。

我是一个完全的初学者,但会在以下几行:

def convertgrade(scr, numgrd, ltrgrd):
    if scr >= numgrd:
        return ltrgrd
    if scr < numgrd:
        return ltrgrd
Run Code Online (Sandbox Code Playgroud)

可能吗?

这里的意图是稍后我们可以通过只传递 scr、numbergrade 和 letter grade 作为参数来调用它:

convertgrade(scr, 0.9, 'A')
convertgrade(scr, 0.8, 'B')
convertgrade(scr, 0.7, 'C')
convertgrade(scr, 0.6, 'D') …
Run Code Online (Sandbox Code Playgroud)

python if-statement dry

20
推荐指数
4
解决办法
4937
查看次数

标签 统计

dry ×1

if-statement ×1

python ×1