[英]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.