Python中的if语句太长且难看,有什么方法可以简化吗

6 投票
3 回答
1550 浏览
提问于 2025-04-18 18:34

我在Python里有一个又长又复杂的else if语句,想知道有没有办法把它简化成一两行的代码。感觉应该有办法把这样的代码缩短一下。

if p == "A": y = 10        
elif p == "B": y = 11
elif p == "C": y = 12
elif p == "D": y = 13
elif p == "E": y = 14
elif p == "F": y = 15

3 个回答

2

这段代码是无法简化的。正如你可能注意到的,Python 语言并没有提供 switch-case 这种语句。

根据你的使用情况,你可以把它改成字典,或者通过值重新计算:

values = { "A": 10, "B": 11, "C": 12, "D": 13, "E": 14, "F": 15 }
y = values[p]

或者

y = ord(p) - ord("A") + 10
2

使用字典:

choice = {
    "A": 10,        
    "B": 11,
    "C": 12,
    "D": 13,
    "E": 14,
    "F": 15
}[selected]

比如:

selected = "A"
choice = {
    "A": 10,        
    "B": 11,
    "C": 12,
    "D": 13,
    "E": 14,
    "F": 15
}[selected]

print choice
>>> 10

通过在字典的末尾直接添加 [selected],可以让字典的表现像是一个控制流语句。使用这种方式,它总是会根据情况进行评估。

6

有一个字典,里面存着在给定p的情况下y的值。

p={"A":10,.....}
y=dict[p]

撰写回答