生成多个变量输出而不使用if语句

Jer*_*ise 3 python string variables int if-statement

我在这里没有具体编码的问题,而是更多关于如何在不使用if语句的情况下生成特定变量输出的查询.

为了让它更清楚,这里是一个例子:史密斯先生正在发出5分测验,这些测验按照5-A,4-B,3-C,2-D,1-E,0-F的等级进行评分.创建一个接受测验分数(1-5)作为输入的程序,并打印出相应的等级而不使用if语句.

所以希望这让我的困境更加清晰.我正在寻找一种方法来将等级(AF)与相应的测验分数(1-5)相关联,而不使用if语句.我仍然是相当新的python,你可以称我为一个缓慢的学习者,但任何帮助表示赞赏!

Chr*_*gan 6

最简单灵活的方法是使用字典:

>>> score_grade_mapping = {6: 'A+', 5: 'A', 4: 'B', 3: 'C', 2: 'D', 1: 'E', 0: 'F'}
>>> score_grade_mapping[4]
'B'
>>> score_grade_mapping[6]
'A+'
Run Code Online (Sandbox Code Playgroud)

虽然它只是一个数字序列,从零开始,映射到单个字母,但您可以使用字符串索引更有效地(尽管不那么明显)使用字符串.

>>> score_grade_mapping = 'FEDCBA'
>>> score_grade_mapping[4]
'B'
Run Code Online (Sandbox Code Playgroud)

如果您需要多个单独的字母,但仍然具有从零开始的一系列分数,您可以使用索引来使用列表(可变)或元组(不可变,因此对于您不更改它的事情更有效):

>>> score_grade_mapping = 'F', 'E', 'D', 'C', 'B', 'A', 'A+'
>>> score_grade_mapping[4]
'B'
>>> score_grade_mapping[6]
'A+'
Run Code Online (Sandbox Code Playgroud)