Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python在同一行上打印多行值_Python - Fatal编程技术网

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度,然后将它们全部添加到文本块中,并在打印最终输出之前逆时针旋转该块