由字母组成的字母 [英] Letters Made From Letters

查看:159
本文介绍了由字母组成的字母的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am new to python(version 3.4.) and I am wondering how I can make a code similar to this one:

#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])

我当前代码的输出如下:

The output of my current code looks like this:

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个字母。
谢谢

But I want to know how to make one that can take user input and print it in the style above. I have been trying for a few hours and can't come up with a solution, it would be great to see how other people could do/have done it. I think it becomes a lot harder when ther letters do not fit on the screen, so I only want to be able to print 10 letters. Thanks

推荐答案


假设:您有 all 构造的字母,并且所有字母具有相同的行数

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

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

In that case you can construct a dictionary, like:

ascii_art = { 'B': B, 'E': E, 'N': N }

当然,在现实生活中,

of course in real life, you construct a dictionary with all letters, and perhaps spaces, digits, etc.

现在,您可以使用以下字符串作为输入:

Now you can take an string as input with:

text = input('Enter text? ')

接下来,我们将字符串映射到可迭代的字母上:

Next we map the string onto an iterable of letters:

chars = map(ascii_art.get,text)

最后,我们将其放入zip并打印:

and finally we put these into a zip and print that:

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个字符,可以将代码更改为:

In case you want to limit the output to 10 chars per line, you can alter the code to:

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

我们可以通过添加一条额外的语句为每行添加一个空行:

We can add an empty line per row, by adding a single extra statement:

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

这篇关于由字母组成的字母的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆