【发布时间】:2015-12-01 17:10:23
【问题描述】:
我必须编写一个程序,它接受三个输入并使用这些输入来确定如何显示由文本文件定义的 ASCII 艺术字字体。我得到的输出几乎是正确的,但是我的程序错误地处理了空格,完全从诸如 HOW DO 之类的东西中省略了它们。 这是我的代码:
hi = input('Height: ')
wi = input('Width: ')
tx = input('Text: ')
hi = int(hi)
output = [[] for _ in range(hi)]
with open("font.txt") as fi:
lines = fi.readlines()
for character in tx:
offset = int(cd[character])
start = offset * hi
end = start + hi
letter = lines[start:end]
for outputline, letterline in zip(output, letter):
outputline.append(letterline.rstrip('\n'))
for line in output:
print(''.join(line))
还有我的输出
Height: 8
Width: 9
Text: APPLE STORES ARE BAD FOR YOUR HEALTH
_______ _______ _______ _ _______ _______ _________ _______ _______ _______ _______ _______ _______ _______ ______ _______ ______ _______ _______ _______ _______ _______ _______ _______ _ _________
( ___ )( ____ )( ____ )( \ ( ____ \( ____ \\__ __/( ___ )( ____ )( ____ \( ____ \( ___ )( ____ )( ____ \( ___ \ ( ___ )( __ \ ( ____ \( ___ )( ____ )|\ /|( ___ )|\ /|( ____ )|\ /|( ____ \( ___ )( \ \__ __/|\ /|
| ( ) || ( )|| ( )|| ( | ( \/| ( \/ ) ( | ( ) || ( )|| ( \/| ( \/| ( ) || ( )|| ( \/| ( ) )| ( ) || ( \ )| ( \/| ( ) || ( )|( \ / )| ( ) || ) ( || ( )|| ) ( || ( \/| ( ) || ( ) ( | ) ( |
| (___) || (____)|| (____)|| | | (__ | (_____ | | | | | || (____)|| (__ | (_____ | (___) || (____)|| (__ | (__/ / | (___) || | ) || (__ | | | || (____)| \ (_) / | | | || | | || (____)|| (___) || (__ | (___) || | | | | (___) |
| ___ || _____)| _____)| | | __) (_____ ) | | | | | || __)| __) (_____ )| ___ || __)| __) | __ ( | ___ || | | || __) | | | || __) \ / | | | || | | || __)| ___ || __) | ___ || | | | | ___ |
| ( ) || ( | ( | | | ( ) | | | | | | || (\ ( | ( ) || ( ) || (\ ( | ( | ( \ \ | ( ) || | ) || ( | | | || (\ ( ) ( | | | || | | || (\ ( | ( ) || ( | ( ) || | | | | ( ) |
| ) ( || ) | ) | (____/\| (____/\/\____) | | | | (___) || ) \ \__| (____/\/\____) || ) ( || ) \ \__| (____/\| )___) )| ) ( || (__/ )| ) | (___) || ) \ \__ | | | (___) || (___) || ) \ \__| ) ( || (____/\| ) ( || (____/\ | | | ) ( |
|/ \||/ |/ (_______/(_______/\_______) )_( (_______)|/ \__/(_______/\_______)|/ \||/ \__/(_______/|/ \___/ |/ \|(______/ |/ (_______)|/ \__/ \_/ (_______)(_______)|/ \__/|/ \|(_______/|/ \|(_______/ )_( |/ \|
注意空格(应该与其他字符大小相同)不显示的方式。
【问题讨论】:
-
cd在哪里定义? [你似乎有一些不必要的初始化程序 - 重复hi和不必要的wi和 'fi'] -
这是cd:
cd = {'A' : 0, 'B': 1, 'C': 2, 'D': 3, 'E': 4, 'F': 5, 'G': 6, 'H': 7, 'I': 8, 'J': 9, 'K': 10, 'L': 11, 'M': 12, 'N': 13, 'O': 14, 'P': 15, 'Q': 16, 'R': 17, 'S': 18, 'T': 19, 'U': 20, 'V': 21, 'W': 22, 'X': 23, 'Y': 24, 'Z': 25, ' ': 28} -
你确定在 font.txt 文件的适当位置有几行空格,
print("XXX{}XXX".format(lines[28*hi]))?cd中的' '索引是 28 而不是 26 的任何原因?
标签: python python-3.x fonts io ascii