Kodomo

Пользователь

Учебная страница курса биоинформатики,
год поступления 2016

Контрольная 2a

Часть 1. Написать функцию, имеющую единственный аргумент типа str (строка) и возвращающую первую (самую левую) подстроку входной строки, имеющую форму HTML-тэга, то есть начинающуюся с "<", заканчивающуюся ">" и не содержащую других символов "<" или ">", кроме начального "<" и конечного ">". Если тэгов в строке нет, должна возвращаться пустая строка.

Модуль с функцией может называться произвольно, но должен лежать в директории 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.