七段显示不全

问题描述 投票:0回答:1

我需要创建一个七段显示器,并排打印结果,我得到的结果用 每个数字后面。

# ### ### 
#   #   # 
# ### ### 
# #     # 
# ### ### 

我尝试过 print("x",sep=" ") 但没有成功,这是我的代码:

nums = {
    '0': "###\n" + "# #\n" * 3 + "###",
    '1': "#\n" * 5,
    '2': "###\n" + "  #\n" + "###\n" + "#  \n" + "###",
    '3': "###\n" + "  #\n" + "###\n" + "  #\n" + "###",
    '4': "# #\n" * 2 + "###\n" + "  #\n" * 2,
    '5': "###\n" + "#  \n" + "###\n" + "  #\n" + "###",
    '6': "###\n" + "#  \n" + "###\n" + "# #\n" + "###",
    '7': "###\n" + "  #\n" * 4,
    '8': "###\n" + "# #\n" + "###\n" + "# #\n" + "###",
    '9': "###\n" + "# #\n" + "###\n" + "  #\n" + "  #"
}


def res(num_list):
    num_list = list(str(num_list))
    try:
        for i in num_list:
            print(nums[i], sep=" ")
    except:
        print("Invalid numbers")


res(12)

结果:

#
#
#
#
#

###
  #
###
#  
###

非常感谢任何指点。

python python-3.x
1个回答
0
投票

就像@chepner所说,你必须将所有数字一起打印,一次一行,这可以通过将数字行压缩成行来完成:

def res(num_list):
    for row in zip(*(nums[n].splitlines() for n in str(num_list))):
        print(*row)

这样:

res(1234567890)

输出:

# ### ### # # ### ### ### ### ### ###
#   #   # # # #   #     # # # # # # #
# ### ### ### ### ###   # ### ### # #
# #     #   #   # # #   # # #   # # #
# ### ###   # ### ###   # ###   # ###
© www.soinside.com 2019 - 2024. All rights reserved.