Учебная страница курса биоинформатики,
год поступления 2020
ВАЖНО, ИНАЧЕ МЫ НЕ НАЙДЕМ ВАШИ СКРИПТЫ!!!
Все файлы со скриптами сохраняйте в папку ~/term1/block2/homeworks, название скрипта – <название_задания>.py
1. e_cline
Программа принимает в качестве первого аргумента командной строки неотрицательное целое число. Пользователь может не передать аргумента, может передать в качестве аргумента не целое число. В этом случае программа должна сообщать об ошибке строкой, содержащей "error"
Программа печатает числа e, округленное с заданной точностью. Пример вызова
python3 e_cline.py 3
Пример вывода
2.718
2. fixed_float
Программа принимает в качестве первого аргумента командной строки файл с числами, записанными по одному на каждой строке.
Вторым аргументов программа принимает имя выходного файла.
Если в переданном файле какая-то строка содержит не число, то эта строка не записывается в выходной файл, кроме того, программа сообщает на консоль информацию о номере строки, которую пропустила. Все остальные строки надо записать в выходной файл.
Пример вызова
python3 fixed_float.py /home/students/y13/darkvampirewolf/mat/wrong_format2.txt fixed.txt
Пример входного файла
10 -7 asd 9.16 eee 9.24 1e-15 5
Пример вывода
Not a number at line 3 Not a number at line 5
Пример выходного файла
10 -7 9.16 9.24 1e-15 5
3. randprotseq
Программа принимает как аргумент командной строки целое положительное число и создаёт файл random.fasta, который содержит одну случайную последовательность аминокислот (однобуквенные обозначения) в fasta формате, длины, заданной в командной строке. Именем последовательности должно быть слово random, без описания.
Если задано не число или число не целое положительное, программа должна понятными словами сообщать об этом и штатно завершать работу, пустой файл в этом случае создаваться не должен.
Пример запуска:
python3 randprotseq.py 10
Пример выходного файла при таком запуске:
>random WEERTYYAAM
4. game_log
Мистер X играет в игру. В начале у него есть 100 долларов.
Каждый раунд с вероятностью 0.5 сумму, имеющуюся у него на руках, увеличивают на 50%, и с той же вероятностью её уменьшают на 40%, после чего (в обоих случаях) округляют до центов (то есть до второго знака после точки).
Программа принимает на вход один или два аргумента командной строки:
- число раундов
- (опционально) минимальная сумма, с которой возможно продолжать играть
Программа должна проверять, что число раундов — целое неотрицательное число и что минимальная сумма (если она задана) — неотрицательное число, строго большее одного цента (то есть 0.01). Если это не так, то программа должна выдать сообщение о неправильных входных данных и завершить работу.
Далее программа печатает сумму на руках у мистера X в каждом раунде. Если на какой-то момент сумма стала меньше минимальной, то программа печатает эту сумму и заканчивает работу.
Пример запуска:
python3 game_log.py 10 1.5
Пример вывода:
100.0 150.0 225.0 135.0 202.5 121.5 72.9 109.35 65.61 98.41 59.05
5. head_cline
Программа принимает на вход два (или три) аргумента командой строки:
- имя входного файла
- число строк, которые надо из него напечатать
опциональный – имя выходного файла.
Гарантируется, что все аргументы введены верно. Если число строк, переданное программе, больше числа строк в файле, то программа печатает все строки из файла и ничего больше.
Если имя выходного файла задано, то программа пишет в него результат своей работы. Если нет, то программа печатает всё на стандартный поток вывода.
Пример запуска:
python3 head_cline.py /home/students/y13/darkvampirewolf/mat/example.tab 10
Пример вывода:
7 2 3 2 4 2 8 9 16
Входной файл example.tab
7 2 3 2 4 2 8 9 16
6. mass_div
Для выполнения задания вам понадобится функция str.split() Она разбивает строку на подстроки по "пустым символам", в вашем случае пробелам и возвращает список строк
"5 6".split() -> ["5", "6"] "56".split() -> ["56"] "abc abc".split() -> ["abc", "abc"]
Программа принимает в командной строке два аргумента.
Первый аргумент – файл, в котором на каждой строке записано два значения, разделенные прробелом.
Второй аргумент – файл, куда писать результат работы программы.
Для каждой строки в выходном файле программа должна:
если строка содержит два числа, второе отлично от 0 – записать результат деления первого числа на второе, округленный до третьего знака после запятой;
если строка содержит два числа и второе равно 0 – записать "NaN";
если строка не соответствует заявленному формату – записать "NA".
Пример запуска:
python3 mass_div.py /home/students/y13/darkvampirewolf/mat/existed2.txt out.txt
Пример вывода (out.txt):
3.33 NaN -0.486 NA 0.0 NA NA 2.0
Содержимое входного файла
10 3 20 0 -3.4 7 abc 10 -1e-15 10 abcabcb 47 10 5