Python tricks | Хитрости Питона
5.76K subscribers
2.21K photos
26 videos
1 file
2.52K links
Здесь вы найдете лучшие практики и приёмы, которые используют опытные программисты.

Сотрудничество: @SIeep_Token

Мы на платформе: https://telegram.me/python_tricks

Ссылка на канал: https://t.me/+QayZf6ccsQllZTYy
Download Telegram
Напишите функцию на Python, которая принимает строку и возвращает словарь, содержащий количество вхождений каждого слова в строке. Считайте, что слова в строке разделяются пробелами, и игнорируйте знаки препинания.

Для начала используем метод translate для удаления знаков препинания из исходной строки. Модуль string предоставляет строку punctuation, содержащую все знаки препинания. Метод translate использует таблицу перевода для удаления указанных символов.

Затем приводим текст к нижнему регистру, чтобы учесть все слова независимо от регистра. После этого используем метод split() для разделения текста на список слов.

Создаём пустой словарь word_count для подсчета вхождений каждого слова. Затем, используя цикл for, проходимся по списку слов и обновляем счетчик в словаре. Если слово уже есть в словаре, увеличиваем его счетчик на 1; если нет, добавляем его в словарь с начальным счетчиком 1.

Наконец, возвращаем словарь word_count, который содержит количество вхождений каждого слова в тексте.

🔗 Python tricks
string.strip

Метод strip() удаляет все начальные и конечные пробелы из заданной строки. С помощью параметра chars ты указываешь набор символов, которые необходимо удалить как из левой, так и из правой частей строки.

🔗 Python tricks
Рандомные координаты

Про комикс, который вызывается с помощью import antigravity слышали все (если  вы его не видели, то ловите). Но если покопаться, можно найти пасхалку в пасхалке: в модуле antigravity.py  можно найти функцию geohash, которая открывает другой комикс и генерирует случайные координаты.

🔗 Python tricks
Шифр Цезаря

Модуль this.py, который выводит Zen of Python, выглядит так.

Строка s зашифрована с помощью ROT13 — все буквы сдвинуты на 13 позиций. Кстати, так же иногда скрывают спойлеры, что многих бесит.

🔗 Python tricks
string.lower

Метод lower() преобразует все символы верхнего регистра в строке в символы нижнего регистра. Если символы верхнего регистра отсутствуют, возвращается исходная строка. Для преобразования строки в верхний регистр используй upper().

🔗 Python tricks
Классика: Zen of Python от Тима Питерса

Zen of Python — 19 принципов программирования на Python, написанные разработчиком Тимом Питерсом. И единственная «пасхалка», которую официально указали в Руководстве.

🔗 Python tricks
Мысли о любви

В дополнение к тому, каким должен быть код, Python любит порассуждать и о любви (и рассказать что любовь — это любовь, а что-то там еще).

🔗 Python tricks
set.isdisjoint

Метод isdisjoint() возвращает значение True, если два множества не имеют между собой общих элементов. В противном случае возвращается False. Ты также можешь передавать итерации, такие как список, кортеж, словарь или строку. В этом случае isdisjoint() сначала преобразует итерации в множества. Затем происходит проверка, не являются ли они непересекающимися.

🔗 Python tricks
Дядя Барри

1 первого апреля 2009 года Гвидо ван Россум заявил, что уходит в отставку, чтобы сосредоточиться на покорении Эвереста, и теперь официально значится как Benevolent Dictator Emeritus Vacationing Indefinitely from the Language (BDEVIL) — или Великодушный почетный диктатор, отдыхающий от языка в течение неопределенного срока. На его место якобы пришел Барри Уорсоу (или Дядя Барри). И тут же ввел несколько изменений и обругал Python 3.0 и Си.

Все это оказалось первоапрельской шуткой, отголоски которой все еще можно найти в интерпретаторе.

🔗 Python tricks
Хэши

Хеш — фиксированное целое число, идентифицирующее конкретную величину. Можно ли найти хеш бесконечности или NaN? В Python да.

🔗 Python tricks
Типы не для слабонервных

Если проверить справку для types.CodeType, то можно узнать, что на эту тему думает создатель языка.

🔗 Python tricks
Превращение списка в одну строку

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

Но есть более быстрый и эффективный способ выполнения той же задачи с помощью одной строки кода.

🔗 Python tricks
Get Method для словаря

Большинство разработчиков используют скобки, чтобы получить значение из словаря. Но сейчас рекомендуется использовать Get method.

При использовании метода скобок выдается ошибка, если ключ отсутствует. С помощью Get method вы получите “None” .

🔗 Python tricks
string.swapcase

Метод swapcase() возвращает строку, преобразуя все символы в противоположный регистр (прописные буквы в строчные и наоборот). Для преобразования строки в нижний регистр используй метод lower(). Аналогично, если для преобразования строки в верхний регистр используй upper().

🔗 Python tricks
Никаких фигурных скобок

В Python, в отличие от, например, C, C ++ или Java используются отступы вместо фигурных скобок. И даже если попытаться импортировать их, можно увидеть это.

🔗 Python tricks
Целых 4 отсылки на Монти Пайтон

Гвидо ван Россум любит это шоу, и даже в документации указал, что: «Язык назван в честь шоу Би-би-си “Летающий цирк Монти Пайтона” и не имеет никакого отношения к рептилиям. Ссылки на скетчи Монти Пайтон в документации не только разрешены, но и поощряются!». Так что неудивительно, что в самом языке есть несколько отсылок к шоу.

🔗 Python tricks
Конвертер валюты

С помощью этого небольшого кода ты можешь реализовать конвертер валюты. Пользователь сам вводит сумму и валюту. Предварительно нужно установить библиотеку forex-python.

from forex_python.converter import CurrencyRates

c = CurrencyRates()

amount = float(input("Введите сумму: "))
from_currency = input("Введите исходную валюту: ").upper()
to_currency = input("Введите желаемую валюту для конвертации: ").upper()

result = c.convert(from_currency, to_currency, amount)
print(f"{amount} {from_currency} равно {result} {to_currency}")


🔗 Python tricks
Можно и нужно использовать try — except
KeyError

Если при чтении файла метод json.loads() возвращает вместо словаря список, то при попытке обратиться к ключу message можно схватить такое исключение.

Эту ошибку легко допустить, когда не знаешь тип возвращаемого объекта.

Представьте, что мы выгружаем логи бота по дням, а в выходные не случилось ни одной беседы. Тогда программа вернет объект None («ничего») про воскресенье, и у него тоже нет ключа ‘message’. Здесь try — except играет важную роль: навесив такой блок, мы обработаем ситуацию с пустотами.

🔗 Python tricks
IndexError

Допустим, мы и дальше получаем список реплик бота, причем каждый день длина этого перечня разная. Если все же приходится при создании цикла опираться на некую константу, которая с количеством реплик не всегда совпадает, try — except поможет справиться с ошибкой индекса.

Указываем во второй части конструкции, с какой ошибкой может столкнуться скрипт.

🔗 Python tricks
⁉️ Готов стать профи в разработке на Python?- или будешь довольствоваться средним уровнем?

Всего за 5 месяцев можно освоить широкий стек технологий на онлайн-курсе «Python Developer. Professional» и вырасти в доходе и должности. 

➡️  Пройди тест по Python и проверь свои знания.

Ответишь — пройдешь на продвинутый курс "Python Developer. Professional" от OTUS по специальной цене 

🔥 Выбери светлую сторону силы и приходи на курс.