Python Learning
35K subscribers
1.9K photos
8 videos
7 files
901 links
№ 4974297878

Обучающий канал по Python

Ссылка для друга - https://t.me/+I7jrAQKR5xAyYTAy

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Python_per_month
Download Telegram
Создаем бесконечный итератор

Функция cycle() из модуля itertools принимает на вход итерируемый объект и создает бесконечный итератор, циклически возвращающий элементы данного объекта.

Фишка в том, что когда элементы последовательности заканчиваются, итерация начинается вновь с первого элемента.

Но если вы проходитесь циклом по такому итератору, то важно предусмотреть выход из цикла, иначе он станет бесконечным (как у нас в первом случае на картинке).

Мы также можем воспользоваться islice(), который вернет итератор по подмножеству переданного объекта.
defaultdict

Класс defaultdict() модуля collections ни чем не отличается от обычного словаря за исключением того, что по умолчанию всегда вызывается функция, которая возвращает значение по умолчанию для новых значений. Другими словами Класс defaultdict() представляет собой словарь со значениями по умолчанию.

Подробнее с классом можно ознакомиться здесь.
Что выведет код сверху?
Anonymous Quiz
16%
new
29%
init
24%
newinit
16%
None
14%
Error
Определяем язык текста

В данном посте покажем, как с помощью библиотеки langdetect определить язык текстового фрагмента. Для начала необходимо поставить библиотеку - pip install langdetect.

Заметим, что код импортирован на питон из гугловской библиотеки language-detection, поэтому качество распознавания языка находится на уровне.

По умолчанию поддерживается 55 языков.
Что выведет код сверху?
Anonymous Quiz
26%
[1]
35%
[1, 1]
23%
[1, 1, 1]
16%
Error
Перевод текста с помощью Python

Перевод текстов с одного языка на другой становится все более распространенным явлением для различных веб-сайтов, поскольку они ориентированы на международную аудиторию. Пакет python, который помогает нам сделать это, называется translate.

Установка пакета - pip install translate.

В нашем примере мы переводим английскую фразу на испанский язык.
Что выведет код сверху?
Anonymous Quiz
26%
[1, 2, 4]
27%
[4, 2, 3]
21%
[1, 2, 3]
26%
Error
Работа с регистрами

Форматирование текста — это боль каждого data scientist’а. Слова и предложения в разных форматах создают много проблем при очистке данных. Однако и для этих задач в Python есть нужные функции.
Что выведет код сверху?
Anonymous Quiz
5%
1 2 3+
43%
1 2+ 3++
7%
1 2+ 3+
7%
1 2 3++
22%
1 2 2+ 3+ 3++
16%
Error
Разбиение на фрагменты

Этот пример покажет, как разбить список на фрагменты и разделить его на меньшие части.
Рекурсия и Фибоначчи

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

В примере вы можете наблюдать функцию, которая использует рекурсию для вычисления чисел из ряда Фибоначчи — это ряд чисел, в котором первые два числа являются 0 и 1, а каждое последующее число — сумма двух предыдущих.

Программа годится как учебный пример, однако на больших числах начинает зависать и медленно работать — требуется оптимизация.
Хвостовая рекурсия

Это особый вид рекурсии, когда функция заканчивается вызовом самой себя без дополнительных операторов. Когда это условие выполняется, компилятор разворачивает рекурсию в цикл с одним стек-фреймом, просто меняя локальные переменные от итерации к итерации.

Так, классическое определение рекурсивного факториала return N * fact(N - 1) не поддерживает хвостовую рекурсию, потому что для каждого стек-фрейма придется хранить текущее значение N.

Чтобы сделать рекурсии хвостовой, добавляют параметры-аккумуляторы. Благодаря им функция знает о своем текущем состоянии. Пусть параметр acc по умолчанию равен 1. Тогда запись с хвостовой рекурсией будет выглядеть так(см картинку).
Генерируем пароли и токены

Модуль secrets используется для генерации криптографически сильных случайных чисел, подходящих для управления такими данными, как пароли, аутентификация учетной записи, токены безопасности и связанные секреты.

В частности, secrets следует использовать по умолчанию вместо генератора псевдослучайных чисел модуля random, который в свою очередь предназначен для моделирования и симуляции, а не для защиты или криптографии.

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

Подробнее про модуль secrets можно почитать здесь.
#Вопросы_с_собеседования

Что плохого в следующем коде?

Ответ:
В Python нет объявлений переменных, поэтому он должен сам определить их область действия. Если внутри функции имеется обращение к переменной, то она считается локальной. Переменная count выше является глобальной, поэтому код выбрасывает ошибку.
Узнаем погоду с помощью Python

PyOWM — это клиентская библиотека-оболочка Python для веб-API OpenWeatherMap (OWM). Это позволяет быстро и легко использовать данные OWM из приложений Python с помощью простой объектной модели и удобным для человека способом.

Установка библиотеки - pip установить pyowm.

Для того чтобы воспользоваться данной библиотекой нужно зарегистрироваться на данном сайте(очень быстрая регистрация) и получить токен на почту.

В нашем примере мы узнаем погоду в данный момент в городе Мадрид(Испания).

Документацию пакета можно найти здесь.