微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何简化此代码并使其更容易?

如何解决如何简化此代码并使其更容易?

嘿所有程序员,我有一个很有趣而且很简单的问题。我正在使用 esp32,在那里我正在使用 2 个多路复用 7 段显示器。我已经创建了我的代码,它也可以工作,但我想让我们说一种更漂亮的方式来编码这些行。我已将我的数字分成 2 个数字(例如 34 --> [3,4]),然后我正在查看此 if-elif 并附加正确的行(用于 GPIO 上的输出),因此 3 将是 0000110。你有什么想法可以让这段代码更容易吗?

             if number == 0:
                 dcd_input_list.append([0,1])
             elif number == 1:
                 dcd_input_list.append([1,1,1])
             elif number == 2:
                 dcd_input_list.append([0,0])
             elif number == 3:
                 dcd_input_list.append([0,0])
             elif number == 4:
                 dcd_input_list.append([1,0])
             elif number == 5:
                 dcd_input_list.append([0,0])
             elif number == 6:
                 dcd_input_list.append([0,0])
             elif number == 7:
                 dcd_input_list.append([0,1])
             elif number == 8:
                 dcd_input_list.append([0,0])
             elif number == 9:
                 dcd_input_list.append([0,0])

非常感谢您的帮助!如果我必须发送更多信息,请询问。

Ps:这是一个 Python 代码,但应该很清楚。

最好的问候

解决方法

你可以把它压缩成一个字典:

lookup = {
    0: [0,1],1: ...and so on
}
dcd_input_list.append(lookup[number])

...或一个列表:

lookup = [
  [0,[1,1,# ...and so on
]
dcd_input_list.append(lookup[number])
,

您可以将所有可能的值放在一个列表中,只需使用 number 选择相关索引:

values = [[0,1][1,[0,0],0]]
dcd_input_list.append(values[number])
,

可以简化此操作的一种方法是将所有这些列表放入另一个列表中,然后使用使用 number 的值作为列表列表索引的单行进行追加。它看起来像这样:

nums_lists = [
    [0,0]
    ]
dcd_input_list.append(nums_lists[number])

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。