加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-16 22:31:29 所属栏目:Python 来源:网络整理
导读:我对python比较陌生,所以我甚至不确定我是否以正确的方式接近它.但我在任何地方都找不到好的解决方案. 为了避免非常丑陋和重复的代码,我想循环if语句的elif部分. 这是我想修复的丑陋代码: def codeToChar(code):chars = "QWERTYUIOPASDFGHJKLZXCVBNMqwertyu

我对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"

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读