#pragma css /css/2016.css
<<BI>>

= Контрольная 2a =
'''Часть 1.''' Написать функцию, имеющую единственный аргумент типа str (строка) и возвращающую первую (самую левую) подстроку входной строки, имеющую форму HTML-тэга, то есть начинающуюся с "&lt;", заканчивающуюся "&gt;" и не содержащую других символов "&lt;" или "&gt;", кроме начального "&lt;" и конечного "&gt;". Если тэгов в строке нет, должна возвращаться пустая строка.

Модуль с функцией может называться произвольно, но должен лежать в директории `H:\term1\block3\test2` и вызываться программой части 2.

=== Примеры применения ===
Пусть функция называется "`foo`" и лежит в файле "myfunc.py".
{{{
>>> from myfunc import foo
>>> s = "abc <P> def"
>>> foo(s)
'<P>'
>>> s1 = "<HTML><BODY><TITLE>"
>>> foo(s1)
'<HTML>'
>>> s2 = "This string contains no tags"
>>> foo(s2)
''
>>> s3 = "Here only unfinished tags are presented: <A "
>>> foo(s3)
''
}}}

'''Часть 2.''' Написать программу, которая читает файл, чьё имя вводится как первый аргумент командной строки, и печатает для каждой строки этого файла, содержащей завершённые тэги, номер этой строки в файле (первая строка имеет номер 1), затем через табулятор число завершённых тэгов, затем, опять через табулятор, конкатенацию этих тэгов (сумму соответствующих строк). Программа должны вызывать функцию части 1. Пустых строк и строк, соответствующих строкам исходного файла без тэгов, в выдаче быть не должно.

=== Пример ===
Содержимое входного файла:
{{{
<HTML>
  <HEAD><TITLE>Something</TITLE></HEAD>
  <BODY>
    <H1>Title</H1>
    <A 
      href = "http://www.google.com">
      Google</A>
    That is all
  </BODY>
</HTML>
}}}

Вывод программы:
{{{
1       1       <HTML>  
2       4       <HEAD><TITLE></TITLE></HEAD>
3       1       <BODY>
4       2       <H1></H1>
7       1       </A>
9       1       </BODY>
10      1       </HTML>
}}}

Программу назвать "`cw2a.py`" и положить в директорию `H:\term1\block3\test2` (т.е. туда же, куда модуль с функцией).
Оба файла должны быть готовы к 11:45.