05 декабря 2017

Секреты питона

Пример хорошего решения задачи

Вам дано описание пирамиды из кубиков в формате XML.
Кубики могут быть трех цветов: красный (red), зеленый (green) и синий (blue).
Для каждого кубика известны его цвет, и известны кубики, расположенные прямо под ним.

Создаем свой клас HTML парсера и перегружаем своими методами поиск тегов


from html.parser import HTMLParser

d = {"red":0, "blue":0, "green":0}

class MyParser(HTMLParser):

    def __init__(self):
        HTMLParser.__init__(self)
        self.price = 0

    def handle_starttag(self, tag, attrs):
        self.price += 1
        d[attrs[0][1]] += self.price

    def handle_endtag(self, tag):
        self.price -= 1

    def handle_data(self, data):
        d[data] += self.price
s = input()
parser = MyParser()
parser.feed(s)
parser.close()

print(d["red"], d["green"], d["blue"])

Комментариев нет: