Задание
- Скачать pycharm community edition. Лучше через JetBrains Toolbox, а не напрямую. Или сразу Ultimate Edition, получив лицензию для студентов на сайте jetbrains.com.
Вспоминаем Python
- Дан список списков символов, например:
    [ ['x', 'x', 'y', 'z'], ['.', '.', '.', '.'], ['@', '@', '@', '@'] ]Распечатать его на экране в виде набора символов по строкам: xxyz .... @@@@
- Создать список списков для прошлой задачи, который при распечатывании будет выглядеть как квадрат 16 на 16 из точек, внутри которого ровно в середине еще один квадрат 8 на 8 из символов #:................ ................ ................ ................ ....########.... ....########.... ....########.... ....########.... ....########.... ....########.... ....########.... ....########.... ................ ................ ................ ................
- Еще задачи на то, чтобы вспомнить python, ищите на сайте codingbat.com. Выбирайте раздел с python, пробуйте задачи разной сложности. Английский переводите сами, с помощью друзей, меня или с помощью google translate.
Генераторы
- Создать генератор бесконечной последовательности, в которой сначала идет одна единица, потом две двойки, потом три тройки и т.д.: 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, …
- 
    Создать функцию-генератор split, которая получает на вход строку, и возвращает по очереди слова этой строки. Слова разделены пробелами. Функция должна вычислять слова постепенно, не храня их в памяти, т.е. нельзя вызвать split у строки, а потом возвращать постепенно элементы.Добавьте print() внутри функции для каждого найденного в строке слова, чтобы в будущем видеть, в какой момент реально произошло выделение очередного слова из строки. Это нужно для целей отладки. 
- Напишите выражение-генератор, которое берет генератор слов из прошлой задачи и приводит каждое слово к нижнему регистру. Возьмите из него три первых слова и убедитесь, что при этом не вычисляются следующие слова.
- Создать функцию, которая получает на вход генератор и число. Она возвращает
    - список из не более чем стольких элементов исходного генератора
- генератор из не более чем стольких элементов исходного генератора
 Например, если есть генератор чисел фибоначчи, то вызов take(10, fib()) должен вернуть [1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
Функции и лямбда выражения
- 
    Сделайте функцию fun_minдля поиска минимума другой функции.fun_minполучает на вход целые числа x1, x2, и функцию f. Функция f получает числа и возвращает числа. Нужно перебрать все числа от x1 до x2 и найти, на каком из них f дает минимальный результат. Например,fun_min(0, 10, lambda x: x * (x - 10))должно вернуть 5.
- 
    Поиск корня, для специалистов по математическому анализу. Функция find_rootдолжна получать те же аргументы, что и в прошлой задаче. При этомf(x1)иf(x2)должны иметь разные знаки, а функцияfдолжна быть непрерывна. Найдите корень функции f, деля отрезок (x1,x2) пополам и определяя на каждом шаге, в какой из половин лежит корень. Продолжать нунжо, пока отрезок с корнем не станет меньше чем1e-8.
- У вас есть устройство с двумя регистрами X и Y. После запуска устройства в них находятся числа 0. Устройство умеет выполнять следующие команды:
    - printраспечатывает значения регистров- X=, Y=
- +1увеличивает регистр X на 1.
- movзаписывает в регистр X значение из Y
- addдобавляет к значению в регистре X значение из Y.
- swapменяет местами значения регисторв X и Y
- придумайте еще, если хотите
 Напишите функцию interpret, которая получает на вход программу в виде строки для устройства и выполняет ее. Например, interpret("+1 +1 swap +1 add print")выведетX=3 Y=2.Решать нужно следующим образом. Используйте словарь, в котором названия операций — это ключи, а значения — это функции, которые получают на вход значения X и Y, а возвращают кортеж из двух новых значений X и Y. 
- Сделайте функцию рисования графиков plot, которая получает на вход числа x1, x2, y1, y2 и функцию f. Функция f должна получать на вход целое число и возвращать целое число. Например,def f(x): return x + 1 print(plot(0, 10, 0, 10, f)) print(plot(0, 10, 0, 10, lambda x: x + 1))Функция plot должна возвращать график функции f при x меняющемся от x1 до x2. График - это строка, которая при распечатке выглядит как график функции. В обоих случаях должен получиться такой результат: .........#. ........#.. .......#... ......#.... .....#..... ....#...... ...#....... ..#........ .#......... #.......... ...........Здесь левый столбец соответствует x=x1=0, правый соответствуетx=x2=10. Нижняя строчка соответствуетy=y1=0, верхняя —y=y2=10.
- Решите еще раз предыдущую задачу, но функуция не должна принимать y1 и y2, вместо этого она сама определяет минимальное и максимальное значение функции.