如何通过给定数字查找和打印属性的内容?

how can I find and print the content of an attribute by a given number?

所以程序是这样工作的,我需要输入一个数字,一旦我的程序识别出 class 中的数字,它就会以 LCD 格式 (7-segment display) 打印给定的数字。

class lcd:
  def numbers():
    0 = ["_","| |","_"]
    1 = ["|","|","|"]
    2 = ["_","_|","|_"]
    3 = ["_","_|","_|"]
    4 = ["|_|"," |"]
    5 = ["_","|_"," _|"]
    6 = ["_","|_","|_|"]
    7 = ["_"," |"," |"]
    8 = ["_","|_|","|_|"]
    9 = ["  _","|_|"," _|"]

def numgen(num):
  print("Type the number you want to print in LCD: ")
  num = lcd()
  for i in range (lcd):
    if hasattr(num,'numbers'):
      for i in range (3):
        print("\n")
 return  

if __name__ == '__main__':
  num = int(input())
  numgen()
  print(num)

问题是我不知道该如何继续,我一直在阅读一些函数,但其​​中 none 有效。我试过了,你可以看到 hasattr 的一种奇怪方式,但显然它没有用。在最后一个循环中,我尝试为我的属性中的每个对象打印 space,这样数字将正确打印。 我将不胜感激任何帮助。

IIUC,您想以 LCD 格式(或 7 段)打印数字。

这是它的最小代码。最重要的部分是使用 zip 构建线条。

注意。我不得不更正您不正确的数字段。

digits = {
    0 : [" _ ","| |","|_|"],
    1 : [" ","|","|"],
    2 : [" _ "," _|","|_ "],
    3 : ["_ ","_|","_|"],
    4 : ["   ", "|_|","  |"],
    5 : [" _ ","|_ "," _|"],
    6 : [" _ ","|_ ","|_|"],
    7 : ["_ "," |"," |"],
    8 : [" _ ","|_|","|_|"],
    9 : [" _ ","|_|"," _|"],}

def print_num(num):
    parts = [digits[int(d)] for d in str(num)]
    print('\n'.join(' '.join(line) for line in zip(*parts)))
    
print_num(1234567890)

输出:

   _  _       _   _  _   _   _   _ 
|  _| _| |_| |_  |_   | |_| |_| | |
| |_  _|   |  _| |_|  | |_|  _| |_|