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

ВАЖНО, ИНАЧЕ МЫ НЕ НАЙДЕМ ВАШИ РАБОТЫ!!!

Все файлы с программами сохраняйте в папку ~/term1/block2/homeworks, название скрипта – <название_задания>.py (aminoacid.py etc.)

== 1. aminoacid ==

Пользователь вводит один из однобуквенных кодов аминокислот (в любом из регистров). Если введённый код соответствует ароматической аминокислоте, то программа выводит: "aromatic". Если код соответствует алифатической аминокислоте, программа выводит "aliphatic". Если код соответствует аминокислоте, которая не относится ни к ароматическим, ни к алифатическим, программа выводит "other". Если был введен не код аминокислоты, программа выводит "error".

Пример входа:
{{{
F
}}}

Пример выхода:
{{{
aromatic
}}}

[[https://kodomo.fbb.msu.ru/FBB/BasicData/aa_properties/AA_groups.gif|Подсказка]]

Ещё подсказка: перечитайте в [[https://kodomo.fbb.msu.ru/FBB/year_19/basics2/Basics_Lecture2.html|лекции]] раздел "операции над списками".

== 2. squares ==

Выведите все квадраты натуральных чисел, которые строго меньше введённого натурального числа. 

Пример входа:
{{{
10
}}}

Пример вывода:
{{{
1 
4
9
}}}


== 3. power-of-three ==

Программа приглашает пользователя ввести целое положительное число. 

Программа выводит "TRUE", если число является степенью тройки.
Иначе программа выводит "FALSE".

Пример входа:
{{{
19683
}}}

Пример вывода:
{{{
TRUE
}}}


== 4. head ==
Программа имитирует работу программы head <имя_входного_файла> -n <число выводимых строк>
На вход программа принимает имя файла. Затем она принимает на вход число строк из файла, которые надо вывести. 
Если введённое число больше, чем число строк в файле, то программа выводит все строки в файле
Пример входа:
{{{
in.txt
2
}}}

Пример вывода:
{{{
One ring to rule them all,
   one ring to find them,
}}}

Файл '''in.txt''': {{{
One ring to rule them all,
   one ring to find them,
One ring to bring them all
   and in the darkness bind them.
}}}

== 5. grep  ==
Программа имитирует работу программы grep <строка> <имя_входного_файла> 

На вход программа принимает имя файла. Затем она принимает на вход строку. 
Затем программа выводит все строки файла, содержащие эту подстроку.

Пример входа:
{{{
in.txt
безумн
}}}

Пример вывода:
{{{
И лишь безумному - вера под стать
А, переделав наш мир, всем безумными стать?
}}}

Файл '''in.txt''':
{{{
Только дурак может вверх устремляться
И лишь безумному - вера под стать
Может быть, братцы, нам всем постараться
Не доверяться шутам и паяцам
А, переделав наш мир, всем безумными стать?
}}}


== 6. seqnames ==
Программа читает файл input-seqnames.fasta с последовательностями в fasta-формате и создаёт файл output-seqnames.txt с именами этих последовательностей, по одному в строке.

[[2019/1/pr7/fasta|описание фаста-формата]]

''Указание: если строка начинается с ">", надо разделить её по пробелам и записать в выходной файл первый элемент получившегося списка, не забыв убрать '>' в начале и добавить '\n' в конце.''

''Убрать начальный символ из строки можно, взяв "срез" с символа 1 до конца. Если в переменной `s` хранится строка, то `s[1:]` будет означать ту же строку без начального символа (напоминаем, что номер начального символа в строке — 0). ''

''Для любопытных: посмотреть, что делает метод строки `str.startswith`''

Пример входного '''файла''':
{{{
>FOXB1 binding motif 1; score 0.058994
CGATCTGAGCAGAAGTCATACACATGGGAATGTATATAAGTCGAATCGTATGCC
CATGGGAATGTATATAAGTCGAATCGTATGCCATACACATGATACACATGATAC
CATGGGAATGTATATAAGTCGAATCGTATGCCATACACAATACACATGTATACA
ATACACATGAAGTCGAATCGTATGCCAT
>FOXB2 binding motif 2; score 0.074589
CGATCTGAGCAGCATAATGTCAATATTTACATAAGGAATCGCGAATC
>GABPA binding motif 3; score 0.128900
GGGGAAGGGCACGAGGCGGGAGGCGAGGCG
}}}

Пример '''файла''' на выходе:
{{{
FOXB1
FOXB2
GABPA
}}}

== 7. average  ==
Файл input-average.txt содержит числа, по одному в строке. Программа читает этот файл и выдаёт на консоль среднее значение.

''Указание: заведите переменную-счётчик и другую переменную для суммы чисел.''


Пример входного '''файла''':
{{{
10
8
22
340
123419
-10
22.4
13
331
}}}

Пример вывода в '''консоли''':
{{{
The arithmetic mean of the numbers in the file is 13795.044444444444.
}}}

Еще один пример входного '''файла''':
{{{
-1E10
     
 

1E8
}}}

Пример вывода в '''консоли''':
{{{
The arithmetic mean of the numbers in the file is -4950000000.0.
}}}

''Замечание: в python (и в большинстве программ и языков программирования) вместо "1000000.0" можно писать "1E6", что означает единицу, умноженную на десять в шестой степени. float переводит вторую строку в число не хуже, чем первую; правда, для int такая запись не подойдёт.''