Kodomo

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

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

Домашнее задание 3

Файлы с программами должны иметь имена вида <задание>.py (например, trigonometry.py для первого задания) и лежать в директории ~/term1/block2/homeworks к утру 1 ноября.

1. trigonometry (3 или 4 балла)

Программа принимает первым аргументом командной строки слово "sin" или "cos", а вторым — число. Если всё введено корректно, то программа печатает строку вида:

fun(x) = y

где:

Если же первый аргумент не "sin" и не "cos" или если второй аргумент не может быть истолкован как число, то программа печатает строку:

I can’t compute fun(x)!

где fun — первый, а x — второй аргумент командной строки.

4 балла вместо 3, если при неверном числе аргументов командной строки программа сообщает пользователю о некорректном вводе и штатно завершает работу.

Примеры:

python3 trigonometry.py cos 60
cos(60) = 0.5000 

python3 trigonometry.py tg 60
I can’t compute tg(60)!

2. randseq (3 балла)

Программа принимает как аргумент командной строки целое положительное число и создаёт файл random.fasta, которые содержит одну случайную последовательность нуклеотидов (то есть из букв a, t, g, c) в fasta формате, длины, заданной в командной строке. Именем последовательности должно быть слово random, описанием — "sequence of length n", где n — заданная длина.

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

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

python3 randseq.py 10

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

>random sequence of length 10
attgatttgc

3. deriv (2 балла)

Программа принимает в командной строке произвольное количество чисел и создаёт файл output-deriv.txt, в котором первая строка имеет вид:

x    f    f’

(через табулятор)

Каждая из оставшихся строк выходного файла отвечает одному из аргументов командной строки. Эти строки должны содержать по три числа, через табулятор, в экспоненциальном формате с тремя знаками после точки. Первое число такой строки файла — это соответствующий аргумент командной строки, обозначим его x. Второе число — это значение функции f(x) = ln(1+x2) в точке х. Третье число — это значение производной той же функции в точке x.

4. files (2 балла)

Программа принимает в командной строке произвольное количество имён файлов и выводит на консоль для каждого файла его имя и через табулятор — число строк в нём. Если какого-то файла не существует (или он закрыт на чтение, иными словами, если open("<файл>", "r") выдаёт ошибку), то в соответствующей строке вместо числа строк должно выводиться слово "unavailable".

См. также дополнительное задание (срок — 15 ноября)