首页 > 解决方案 > 打印两个多行字符串,end='' 不会并排放置

问题描述

我正在尝试使用图形字符在终端中显示大量数字,例如我有:

def nos(n):
    if n == 1: return("""
#
#
#
#
#
""")
    if n == 2: return("""
###
  #
###
#
###
""")

我尝试显示这些:

for i in [1,2]:
    print(nos(i), end = " ")

所需的输出是这样的:

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

但相反,我得到

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

为什么会发生这种情况,我该如何解决?

标签: python

解决方案


您可以执行以下操作:

  1. 用新行分割每个图形数字字符串,\n
  2. 用空格连接每个数字的对应行,
    (您可能希望为每一行填充除 1 之外的其他数字)
  3. 打印结果字符串
def nos(n):
    if n == 1:
        return("""
#
#
#
#
#
""")
    if n == 2:
        return("""
###
  #
###
#
###
""")


lst = [1, 2]

def multi_num(lst):
    nums = list(nos(i).split('\n') for i in lst)
    for i in range(1, 6):
        result = ' '.join(num[i] for num in nums)
        print(result)

multi_num(lst)
# ###
#   #
# ###
# #
# ###

推荐阅读