水平打印多行文本
Print multiline text horizontally
在我的 python 程序中,我定义了一个字典。
并为其分配了用 # 符号组成的大正楷。
我需要像这样水平显示字母
# ### ###
# # # # #
##### ### #
# # # # #
# # ### ###
我的代码应该接受输入并打印与输入对应的大字母
如果输入是 abc 那么输出应该像上面那样。
代码
dic ={}
dic['A'] = '''
#
# #
#####
# #
# #'''
dic['B'] = '''
###
# #
###
# #
### '''
dic['C'] = '''
###
#
#
#
###'''
word = input('Input : ').upper()
for i in word :
s = dic[i].split('\n')
print(s[0],end=' ')
print('')
for j in word :
print(s[1],end=' ')
print('')
for k in word :
print(s[2],end=' ')
print('')
for m in word :
print(s[3],end=' ')
print('')
for n in word :
print(s[4],end=' ')
将您的字母存储在二维字符数组中。
然后合并所有的字母,你会得到一个二维数组。
然后逐行打印二维数组。
将字符存储在这样的列表中:
chars = {}
chars['A'] = [' # ',
' # # ',
'#####',
'# #',
'# #']
chars['B'] = ['### ',
'# #',
'### ',
'# #',
'### ']
chars['C'] = [' ###',
' # ',
'# ',
' # ',
' ###']
word = input('Input : ').upper()
word_chars = [chars[i] for i in word]
然后用这个函数把word_chars
中的字符组合起来:
def combineChars(chars: list[list[str]], spacing: str):
lines = []
for line_i in range(max([len(x) for x in chars])):
line = []
for char in chars:
if len(char) > line_i:
line.append(char[line_i])
lines.append(spacing.join(line))
return '\n'.join(lines)
print(combineChars(word_chars, ' ')) # in this case the chars
# are 2 spaces apart
#output:
# ### ###
# # # # #
##### ### #
# # # # #
# # ### ###
combineChars(chars, spacing)
中的第二个参数用于字符之间的间距。
还有一个简短但复杂的形式:
def combineChars(chars: list[list], spacing: str):
return '\n'.join([spacing.join([char[line_i] for char in chars if len(char) > line_i]) for line_i in range(max([len(x) for x in chars]))])
在我的 python 程序中,我定义了一个字典。
并为其分配了用 # 符号组成的大正楷。
我需要像这样水平显示字母
# ### ###
# # # # #
##### ### #
# # # # #
# # ### ###
我的代码应该接受输入并打印与输入对应的大字母 如果输入是 abc 那么输出应该像上面那样。
代码
dic ={}
dic['A'] = '''
#
# #
#####
# #
# #'''
dic['B'] = '''
###
# #
###
# #
### '''
dic['C'] = '''
###
#
#
#
###'''
word = input('Input : ').upper()
for i in word :
s = dic[i].split('\n')
print(s[0],end=' ')
print('')
for j in word :
print(s[1],end=' ')
print('')
for k in word :
print(s[2],end=' ')
print('')
for m in word :
print(s[3],end=' ')
print('')
for n in word :
print(s[4],end=' ')
将您的字母存储在二维字符数组中。 然后合并所有的字母,你会得到一个二维数组。 然后逐行打印二维数组。
将字符存储在这样的列表中:
chars = {}
chars['A'] = [' # ',
' # # ',
'#####',
'# #',
'# #']
chars['B'] = ['### ',
'# #',
'### ',
'# #',
'### ']
chars['C'] = [' ###',
' # ',
'# ',
' # ',
' ###']
word = input('Input : ').upper()
word_chars = [chars[i] for i in word]
然后用这个函数把word_chars
中的字符组合起来:
def combineChars(chars: list[list[str]], spacing: str):
lines = []
for line_i in range(max([len(x) for x in chars])):
line = []
for char in chars:
if len(char) > line_i:
line.append(char[line_i])
lines.append(spacing.join(line))
return '\n'.join(lines)
print(combineChars(word_chars, ' ')) # in this case the chars
# are 2 spaces apart
#output:
# ### ###
# # # # #
##### ### #
# # # # #
# # ### ###
combineChars(chars, spacing)
中的第二个参数用于字符之间的间距。
还有一个简短但复杂的形式:
def combineChars(chars: list[list], spacing: str):
return '\n'.join([spacing.join([char[line_i] for char in chars if len(char) > line_i]) for line_i in range(max([len(x) for x in chars]))])