Kodomo

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

Учебная страница курса биоинформатики,
год поступления 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%, после чего (в обоих случаях) округляют до центов (то есть до второго знака после точки).

Программа принимает на вход один или два аргумента командной строки:

  1. число раундов
  2. (опционально) минимальная сумма, с которой возможно продолжать играть

Программа должна проверять, что число раундов — целое неотрицательное число и что минимальная сумма (если она задана) — неотрицательное число, строго большее одного цента (то есть 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

Программа принимает на вход два (или три) аргумента командой строки:

  1. имя входного файла
  2. число строк, которые надо из него напечатать
  3. опциональный – имя выходного файла.

Гарантируется, что все аргументы введены верно. Если число строк, переданное программе, больше числа строк в файле, то программа печатает все строки из файла и ничего больше.

Если имя выходного файла задано, то программа пишет в него результат своей работы. Если нет, то программа печатает всё на стандартный поток вывода.

Пример запуска:

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"]

Программа принимает в командной строке два аргумента.

Первый аргумент – файл, в котором на каждой строке записано два значения, разделенные прробелом.

Второй аргумент – файл, куда писать результат работы программы.

Для каждой строки в выходном файле программа должна:

  1. если строка содержит два числа, второе отлично от 0  – записать результат деления первого числа на второе, округленный до третьего знака после запятой;

  2. если строка содержит два числа и второе равно 0 – записать "NaN";

  3. если строка не соответствует заявленному формату – записать "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