Модули-расширения языка
Долги по прошлой лекции:
Что есть полезного в __builtins__
В частности, getattr(), setattr() и hasattr()
Итераторы с явным индексом ограничены sys.maxint (i586: 2147483647)
Разбор задачи-однострочника:
(DiffLet) Количество разных символов
Ввести строку (слова, разделенные пробелами), и вывести через пробел вначале слова, состоящие из повторения единственного символа (если таковые имеются), затем ? слова, образованные всего из двух символов в любом количестве и сочетании, затем ? из трех и т. д. Слова с одинаковым количеством символов выводить в порядке их появления в строке.
sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list
--> new list sorted key=None, cmp=None, reverse=False) sorted(iterable,
Функциональное программирование
filter(), map(), reduce()
Гвидо и reduce(): в блоге, на слэшдоте
lambda и списковые конструкторы
functools.html: partial()
Итераторы (itertools.html):
Бесконечные (.stop() или другое частичное вычисление)
.i*()-аналоги и некоторые другие манипуляции последовательностями
- Комбинаторика
Надстройки над стандартными структурами данных
deque ? быстрая стеко-очередь
defaultdict ? словарь со значением по умолчанию
OrderedDict ? словарь с постоянным порядком ключей
Counter ? словарь для подсчета всего
Куча (heapq.html): ?The interesting property of a heap is that a[0] is always its smallest element?
weakref.html: Слабые ссылки
Разное
inspect.html: анализ кода
?Массивы? и проблемы представления: array.html
Д/З
- Прочитать:
(одним глазом) functions.html ? список стандартных функций
Про функциональное программирование в учебнике
Мнение Гвидо по ссылкам выше
Документацию по functools.html и itertools.html
Документацию по collections.html и heapq.html
Про модули и пакеты в учебнике (modules.html)
(KdigNbase) K-значные N-ричные
Ввести через запятую K и N (1<N<17), вывести в столбик все K-значные N-ричные числа в порядке возрастания (латинские буквы для цифр ? большие, незначащие нули или пробелы не считаются).
2,4
10 11 12 13 20 21 22 23 30 31 32 33
(ParamForm) Параметрическая формула
Первая строка содержит Python-совместимую формулу, в которой могут присутствовать названия переменных и элементы модуля math. В следующей строке через пробел в виде переменная=значение или переменная=начало_диапазона,конец_диапазона указаны допустимые целочисленные значения переменных (целочисленный диапазон включает и начальное, и конечное значения). Вывести наибольшее значение формулы на всех допустимых целочисленных значениях переменных.
Param**2+Fun/6-Result+1 Param=3 Fun=-21,45 Result=5,15
12
Ввести строку (слова через пробел), вывести ее таким образом, что все вхождения слов, кроме первого, опущены. В случае, если слово встречалось в исходной строке более одного раза, после слова в скобках без пробела следует номер ? позиция последнего вхождения.
qwe sdf tyu qwe sdf try sdf qwe sdf rty sdf wer sdf wer