使用模式列表打印多行字符串

2024-10-03 15:29:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个七段显示使用模式列表,但我的输出是新的一行,但我希望所有的数字在同一行平行水平,而不是在垂直形状。。请帮帮我

enter image description here

我的代码:

SevenSeg = ["""###\n# #\n# #\n# #\n###""", """#\n#\n#""", """###\n  #\n###\n#\n###""", '###\n  #\n###\n  #\n###', '# #\n# #\n###\n  #\n  #', '###\n#\n###\n  #\n###', '###\n#\n###\n# #\n###', '###\n  #\n  #\n  #\n  #', '###\n# #\n###\n# #\n###', '###\n# #\n###\n  #\n###',  ]

def SevenSegment():
    desireNum = input("Enter a number you want to display on SEVEN SEGMENT DISPLAY: ")
    indexLst = list(desireNum)
    # print(indexLst)
    str = []
    display = ''
    for i in range(len(indexLst)):
        digit= int(indexLst[i])
        str.append(SevenSeg[digit])

    for i in range(len(str)):
        print(str[i])
    return None

print(SevenSegment())

我的输出和所需的输出屏幕截图:

enter image description here


Tags: in列表forlendisplay模式range数字
1条回答
网友
1楼 · 发布于 2024-10-03 15:29:58

您好,请尝试以下代码:

SevenSeg = ["""###\n# #\n# #\n# #\n###""", """ #\n #\n #\n #\n #""", """###\n  #\n###\n#\n###""", '###\n  #\n###\n  #\n###', '# #\n# #\n###\n  #\n  #', '###\n#\n###\n  #\n###', '###\n#\n###\n# #\n###', '###\n  #\n  #\n  #\n  #', '###\n# #\n###\n# #\n###', '###\n# #\n###\n  #\n###',  ]

def SevenSegment():
    desireNum = input("Enter a number you want to display on SEVEN SEGMENT DISPLAY: ")
    indexLst = list(desireNum)
    str = []
    for i in range(len(indexLst)):
      digit = int(indexLst[i])
      str.append(SevenSeg[digit])

    print(str)
    for j in range(0, 5):
      for i in range(len(str)):
        print(str[i].split("\n")[j], end="\t")
      print("")

SevenSegment()

您以前的代码无法工作,因为您在每个for循环上打印一个完整的数字结构,这样做永远无法使其工作
相反,您需要在每个循环上打印需要在同一循环上显示的每个数字的第一行(我使用外部for on jsplit on "\n"进行此操作)。所以我修改了数字1的结构,因为每个数字都需要有相同的行数\

编辑
显然,在每个数的'#'序列的末尾需要一个\t,因此print将不会与end=" "一起,而是与end="\t"一起。感谢@Shivam Bharadwaj的建议
您可以在这里测试:https://repl.it/repls/ReadyLastingDos

相关问题 更多 >