Помогите пожалуйста! Мне срочно нужно написать программу, которая строит гистограмму!
Вот условие задачи:
Входной файл: input.txt
Выходной файл: output.txt
Условие
По данным целым числам a1, a2, …, aN требуется построить гистограмму. Гистограмма должна состоять из N столбцов, i-й столбец должен изображаться прямоугольником высотой ai и шириной в 3 символа. Столбцы должны быть:
заполнены символом ‘#’ (ASCII 35),
ограничены сверху и снизу символами ‘-’ (ASCII 45),
ограничены слева и справа символами ‘|’ (ASCII 124),
ограничены по углам символами ‘+’ (ASCII 43).
Промежуток между столбцами, а также поля слева, справа и сверху гистограммы должны составлять один символ. В основании (нижней строке) гистограммы промежутки и поля должны изображаться символом ‘-’ (ASCII 45), все остальные промежутки и поля — символом ‘.’ (ASCII 46).
Формат входного файла
Входной файл содержит число N, за которым следуют числа a1, a2, …, aN.
Формат выходного файла
Выходной файл должен содержать max(ai) + 3 строк длиной 6 N + 1 символов каждая — изображение гистограммы.
Пример входного файла:
2
1 6
Пример выходного файла:
………………..
………..+—+.
……….|###|.
……….|###|.
……….|###|.
……….|###|.
.+—+.|###|.
.|###|.|###|.
-+—+-+—+-
Я написала программу, но компилятор выдает синтаксическую ошибку, которую я найти не могу. Пожалуйста помогите исправить этот код.. или если есть другие варианты написать эту программу, то пишите их. Огромное всем спасибо!
def get_numbers(f):
return
def column(number, height):
edge = ‘.’ * (height - number) + ‘+’ + ‘|’ * number + ‘+’
line = ‘.’ * (height - number) + ‘-’ + ‘#’ * number + ‘-’
sep = ‘.’ * (height + 1) + ‘-’
return map(lambda x: ''.join(x), zip(edge, line, line, line, edge, sep))
def histogram(numbers):
height = max(numbers) + 1
horizontal = + \
return map(lambda *x: ‘'.join(x), *horizontal)
if _name_ == ’_main_':
try:
from sys import exit
with open('output.txt', ‘w’, encoding='utf-8') as fout, \
open('input.txt', ‘r’, encoding='utf-8') as fin:
numbers = get_numbers(fin)
print(*histogram(numbers), sep='\n', file=fout)
except Exception as e:
exit(e)