我正在尝试编写一个程序,该程序将单词或短语作为输入,然后在终端中垂直打印出字符串,并且字符串中的字母采用自定义ASCII艺术风格。
这是我到目前为止所拥有的:
input_string = input('Please enter a word or phrase: ')
string = input_string.upper()
H = '''
|| ||
|| ||
||||||||
|| ||
|| ||
'''
I = '''
||||||||
||
||
||
||||||||
'''
letter_dict = {'H' : H, 'I' : I}
for letter in string:
if letter in letter_dict:
print(letter_dict(letter), sep='\n')
我目前正在用字母“ h”和“ i”对其进行测试(我将最终为每个字母定制样式)。我试图输入“ hi”作为输入,然后将其打印在终端中,如下所示:
|| ||
|| ||
||||||||
|| ||
|| ||
||||||||
||
||
||
||||||||
我得到的错误是“ TypeError:'dict'对象不可调用”。我不确定要对字典进行哪些更改才能使代码正常工作。
任何帮助将不胜感激!:)
使用square_braces(索引运算符)访问字典值。您必须使用letter_dict[letter]
。
TL / DR:如果要在同一行中打印字母。您可以使用以下代码:
input_string = input('Please enter a word or phrase: ')
string = input_string.upper()
H = '''
|| ||
|| ||
||||||||
|| ||
|| ||
'''
I = '''
||||||||
||
||
||
||||||||
'''
letter_dict = {'H' : H, 'I' : I}
max_lines = lambda w: max([len(letter_dict[x].splitlines()) for x in w])
for i in range(max_lines(string)):
for c in string:
print(letter_dict[c].splitlines()[i], end=' ')
print('')
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句