Python:循环遍历if语句的elif部分

前端之家收集整理的这篇文章主要介绍了Python:循环遍历if语句的elif部分前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我对python比较陌生,所以我甚至不确定我是否以正确的方式接近它.但我在任何地方都找不到好的解决方案.

为了避免非常丑陋和重复的代码,我想循环if语句的elif部分.

这是我想修复的丑陋代码

def codetochar(code):
chars = "QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm"

if code == ord(chars[0]):   ##### SUPER UGLY
    return chars[0]
elif code == ord(chars[1]):
    return chars[1]
elif code == ord(chars[2]):
    return chars[2]
elif code == ord(chars[3]):
    return chars[3]
elif code == ord(chars[4]):
    return chars[4]
elif code == ord(chars[5]):
    return chars[5]
..... etc .....
else:
    return "wat"

如您所见,索引递增1,所以我认为循环将非常简单.但是,当我尝试以下操作时,它不起作用,因为这必须被表述为if,elif,else语句,而不是很多if语句.

我失败的尝试:

for x in xrange(0,len(chars)-1):
    if code == ord(chars[x]):
        return chars[x]
    else:
        return "wat"

我该如何循环呢?
注意:如果它有任何相关性,我使用curses模块对其进行编码,为项目构建键盘接口.
非常感谢

最佳答案
for c in chars:
    if code == ord(c):
        return c
return "wat"

只有先前没有执行过先前的返回(即没有匹配的字符),才执行第二次返回.

原文链接:https://www.f2er.com/python/438874.html

猜你在找的Python相关文章