假设:您已经构建了所有字母,并且所有字母都具有相同的行数。
在这种情况下,您可以构建字典,例如:
ascii_art = { 'B': B, 'E': E, 'N': N }
当然,在现实生活中,您可以构建一个包含所有字母,可能还有空格、数字等的字典。
现在您可以将字符串作为输入:
text = input('Enter text? ')
接下来我们将字符串映射到一个可迭代的字母上:
chars = map(ascii_art.get,text)
最后我们将它们放入一个 zip 并打印出来:
for d in zip(*chars):
print(*d)
或者把它们放在一起:
ascii_art = { 'B': B, 'E': E, 'N': N }
text = input('Enter text? ')
chars = map(ascii_art.get,text)
for d in zip(*chars):
print(*d)
如果您想限制输出为每行 10 个字符,您可以将代码更改为:
ascii_art = { 'B': B, 'E': E, 'N': N }
text = input('Enter text? ')
for i in range(0,len(text),10):
chars = map(ascii_art.get,text[i:i+10])
for d in zip(*chars):
print(*d)
这会导致:
Enter text? BEBEBEBBEBEENNNENNNN
BBBB EEEEE BBBB EEEEE BBBB EEEEE BBBB BBBB EEEEE BBBB
B B E B B E B B E B B B B E B B
B B E B B E B B E B B B B E B B
BBBB EEEEE BBBB EEEEE BBBB EEEEE BBBB BBBB EEEEE BBBB
B B E B B E B B E B B B B E B B
B B E B B E B B E B B B B E B B
BBBB EEEEE BBBB EEEEE BBBB EEEEE BBBB BBBB EEEEE BBBB
EEEEE EEEEE N N N N N N EEEEE N N N N N N N N
E E NN N NN N NN N E NN N NN N NN N NN N
E E N N N N N N N N N E N N N N N N N N N N N N
EEEEE EEEEE N N N N N N N N N EEEEE N N N N N N N N N N N N
E E N N N N N N N N N E N N N N N N N N N N N N
E E N NN N NN N NN E N NN N NN N NN N NN
EEEEE EEEEE N N N N N N EEEEE N N N N N N N N
我们可以通过添加一个额外的语句来为每行添加一个空行:
ascii_art = { 'B': B, 'E': E, 'N': N }
text = input('Enter text? ')
for i in range(0,len(text),10):
chars = map(ascii_art.get,text[i:i+10])
for d in zip(*chars):
print(*d)
print()
这会生成:
Enter text? BBBEEEEEEENNNNN
BBBB BBBB BBBB EEEEE EEEEE EEEEE EEEEE EEEEE EEEEE EEEEE
B B B B B B E E E E E E E
B B B B B B E E E E E E E
BBBB BBBB BBBB EEEEE EEEEE EEEEE EEEEE EEEEE EEEEE EEEEE
B B B B B B E E E E E E E
B B B B B B E E E E E E E
BBBB BBBB BBBB EEEEE EEEEE EEEEE EEEEE EEEEE EEEEE EEEEE
N N N N N N N N N N
NN N NN N NN N NN N NN 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 N N N N N N
N NN N NN N NN N NN N NN
N N N N N N N N N N