首页 > 解决方案 > 使用字典将字符串打印为终端中的垂直横幅。Python3

问题描述

我正在尝试编写一个程序,该程序将单词或短语作为输入,然后在终端中垂直打印出字符串,字符串中的字母采用自定义 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'对象不可调用'。我不确定要对我的字典进行哪些更改才能使我的代码正常工作。

任何帮助将不胜感激!:)

标签: pythonpython-3.xstringdictionaryfor-loop

解决方案


您正在使用括号来访问字典元素。你应该做letter_dict[letter]而不是letter_dict(letter).


推荐阅读