gpt4 book ai didi

python - 由字母组成的字母

转载 作者:行者123 更新时间:2023-11-28 20:37:04 24 4
gpt4 key购买 nike

我是 python(3.4 版)的新手,我想知道如何编写与此类似的代码:

#block letters 
B1 = ("BBBB ")
B2 = ("B B ")
B3 = ("B B ")
B4 = ("BBBB ")
B5 = ("B B ")
B6 = ("B B ")
B7 = ("BBBB ")
B = [B1, B2, B3, B4, B5, B6, B7]

E1 = ("EEEEE ")
E2 = ("E ")
E3 = ("E ")
E4 = ("EEEEE ")
E5 = ("E ")
E6 = ("E ")
E7 = ("EEEEE ")
E = [E1, E2, E3, E4, E5, E6, E7]

N1 = ("N N")
N2 = ("NN N")
N3 = ("N N N")
N4 = ("N N N")
N5 = ("N N N")
N6 = ("N NN")
N7 = ("N N")
N = [N1, N2, N3, N4, N5, N6, N7]
for i in range(7):
print(B[i], E[i], N[i])

我当前代码的输出如下所示:

BBBB   EEEEE  N    N
B B E NN N
B B E N N N
BBBB EEEEE N N N
B B E N N N
B B E N NN
BBBB EEEEE N N

但我想知道如何制作一个可以接受用户输入并以上述样式打印的。我已经尝试了几个小时但无法提出解决方案,很高兴看到其他人如何做/已经做到了。我认为当屏幕上放不下字母时会变得更加困难,所以我只想打印 10 个字母。谢谢

最佳答案

Assumption: you have all the letters constructed and that all letters have the same number of rows.

在这种情况下,您可以构建字典,例如:

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)
<b>print()</b>

这会产生:

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

关于python - 由字母组成的字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43893431/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com