繁体   English   中英

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

[英]How to simplify this code and make it much easier?

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

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

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

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

此致

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

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

...或列表:

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

您可以将所有可能的值放在一个列表中,然后只需 select 将相关索引与number

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM