Задачки
Для написания скриптов и модулей я советую использовать вот эти заготовки.
Каждая из функций должна по разуму сопровождаться документацией и тестами.
Создайте репозиторий1 для маленьких задач этого семестра
- Напишите мне письмо с адресом этого репозитория
Создайте в репозитории модуль task1.py
В нём опишите функцию squares(n), которая возвращает список квадратов чисел от 0 до n (исключая n).
Опишите функцию parse_people(file), которая получает на вход объект CSV-файла со строками вида Vasily, Pupkin, 21 и возвращает список туплей вида: ("Vasily", "Pupkin", 21) – т.е. выбрасывает лишние пробелы и преобразует третью колонку в число.
Опишите функцию keys(dict, value), которая возвращает список ключей словаря dict, которые имеют значение value.
Опишите функцию html_list(list), которая получает на вход питонский список, а возвращает строку, с этим списком, отформатированным по правилам языка html.
Опишите функцию as_dict(list), которая получает на вход список и возвращает словарь, отображающий каждый из элементов этого списка с нечётным номером на соответствующий элемент этого списка с чётным номером
План рассказа
List comprehensions = Выделение списков2
разбор csv: [math.radians(float(s)) for s in line.split() if s]
noprimes = [j for i in range(2, 8) for j in range(i*2, 50, i)]; primes = [x for x in range(2, 50) if x not in noprimes]
[n for n in range(2,100) if all([n%p != 0 for p in range(2,n)])]
ls.py (сначала директории, потом файлы)
разбор формата: items = [line.strip(" \t*") for line in page.get_lines() if line.strip().startswith("*")]
разбор формата: vars = dict([i.split('=', 1) for i in line.split()])
field (из задачки про шахматы): [[None]*n_columns for _ in range(n_rows)]
штука: ''.join([ a + b for a, b in zip(str(x), reversed(str(y)))])