当前位置: 首页 > 知识库问答 >
问题:

如何简化这段代码,让它变得容易得多?

呼延才俊
2023-03-14

嘿,各位程序员们,我有一个很有趣的问题,也很简单。我正在与esp32和那里我正在与2个多路复用7段显示器。我已经创建了我的代码,它也在工作,但我想让我们说一个更漂亮的方式来编码这些行。我已经将我的数字拆分为2个数字(例如34-->[3,4]),然后我用这个if-elif来查看,并添加正确的行(用于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代码,但这应该很清楚。

最诚挚的问候

共有2个答案

武晨
2023-03-14

您可以将所有可能的值放在一个列表中,并简单地选择带有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])
帅锦
2023-03-14

你可以把它压缩成一个指令:

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])
 类似资料:
  • 本文向大家介绍让代码变得更易维护的7个Python库,包括了让代码变得更易维护的7个Python库的使用技巧和注意事项,需要的朋友参考一下 随着软件项目进入“维护模式”,对可读性和编码标准的要求很容易落空(甚至从一开始就没有建立过那些标准)。然而,在代码库中保持一致的代码风格和测试标准能够显著减轻维护的压力,也能确保新的开发者能够快速了解项目的情况,同时能更好地全程保持应用程序的质量。 使用外部库

  • 如何在PHP Smarty中优化这段代码? 现在我有一个代码让我困惑,有一个简单的代码。 当我搜索需要推送值的代码时。 优化如何发挥作用?我能写到数组吗?如果它可以写入数组,我该怎么办?

  • 我希望直接使用div,progress,它们需要保持响应式,如何简化呢? ...

  • 我写了一些欧拉问题35的代码: 我想知道为什么这个代码(上图)运行得这么快,当我设置在函数中。这段代码的运行时间约为8秒。最初,我没有设置,我的函数是这样的: 我的初始代码(没有)运行了很长时间,我没有等它完成。我很好奇,为什么这两段代码在运行时间上存在如此大的差异,因为我不相信会有任何重复项,这会使迭代花费如此长的时间,以至于迭代。也许我对set()的想法是错误的。欢迎任何帮助。

  • 虽然vue3能够把相关的代码写在一起,但是感觉所有代码都在同一层级,除了增加换行、增加region折叠外,寻找起代码来还是很痛苦,尤其是并不是总能清晰地按相关度分隔。请教各位大佬,你们是如何做的?

  • 这个代码基本上是将一个数字作为字符串,我的目标是获取字符串的每个索引并将其值传输到整数数组的索引,以便我的数字在整数数组中,并且数组的每个索引表示数字的一个数字