Python在同一行上打印多行值
我有一个关于在同一行上打印的问题 我正在努力做到以下几点: 下面是我写的代码Python在同一行上打印多行值,python,Python,我有一个关于在同一行上打印的问题 我正在努力做到以下几点: 下面是我写的代码 dic = {'1':'#\n#\n#\n#\n#', '2':'###\n #\n###\n#\n###', '3':'###\n #\n###\n #\n###', '4':'# #\n# #\n###\n #\n #', '5':'###\n#\n###\n #\n###', '6':'###\n#\n###\n# #\n###'
dic = {'1':'#\n#\n#\n#\n#',
'2':'###\n #\n###\n#\n###',
'3':'###\n #\n###\n #\n###',
'4':'# #\n# #\n###\n #\n #',
'5':'###\n#\n###\n #\n###',
'6':'###\n#\n###\n# #\n###',
'7':'###\n #\n #\n #\n #',
'8':'###\n# #\n###\n# #\n###',
'9':'###\n# #\n###\n #\n###',
'0':'###\n# #\n# #\n# #\n###'
}
value = input("Enter an integer: ")
value = str(value)
for chr in value:
print(dic[chr], sep=' ')
但当我运行代码时,它会以单独的行打印
你能帮我在同一行上打印吗
或者,如果我的代码不正确,您能建议如何正确编写吗
提前谢谢你 首先编写一个函数
combine
,将两个字符串合并为一行,方法是在换行符上拆分两个字符串,找到第一个字符串的最长部分,然后使用该部分确定填充:
def联合收割机(a、b):
a\u行=a.split(“\n”)
b_line=b.split(“\n”)
填充=最大值(a_线中的线的长度(线))
返回“\n”.join(a_-line.ljust(padding)+”“+b_-line表示a_-line,b_-line表示zip中的b_-line(a_-line,b_-line))
然后,使用它:
dic={'1':'#\n#\n#\n#\n#',
“2”:“###\n#\n##\n##\n#”,
“3”:“###\n#\n###\n##\n#”,
‘4’:‘n########################n#’,
“5”:“###\n#\n###\n##\n#”,
“6”:“####\n#\n###\n###\n#”,
“7”:“###\n#\n#\n#\n#\n#”,
‘8’:‘n#####################’,
“9”:“####################”,
“0”:“###\n##\n##\n###\n#”
}
值=输入(“输入整数:”)
value=str(值)
output=“”
对于chr的价值:
如果输出:
输出=联合收割机(输出,dic[chr])
其他:
#不要与虚无结合
输出=dic[chr]
打印(输出)
您的代码不正确。您需要连接每个数字的第一行,然后是第二行,以此类推
您可以使用将数字行组合在一起,但为了适应这种情况,您需要转换dic
,以便每行的每个数字都以单独的单位表示,如下所示:
{k: v.splitlines() for k, v in dic.items()}
您还需要固定间距,以便每个单元具有恒定的宽度
完成后,将数字放在一起,压缩并打印:
value = input("Enter an integer: ")
digits = [dic[c] for c in value]
for line in zip(*digits):
print(*line)
这使用操作符(也称为“splat”)
顺便说一句,
str(input())
是多余的,因为input()
返回一个字符串。这个练习的重点是打印每个所需数字的第一行,然后打印每个数字的第二行,依此类推。您需要分别连接每个数字的每一行,或者使用类似ncurses的方法。你不能像这样按顺序打印,因为一旦你打印了第一个数字,你就发出了换行符,并将从它们停止的底部开始打印。对于不同的数字组合,每一行都是不同的。例如,可以将字典中的数字顺时针旋转90度,然后将它们全部添加到文本块中,并在打印最终输出之前逆时针旋转该块