Counter: подсчёт числа элементов в списке
Помимо способности collections.Counter() понимать, что именно в строке нужно подсчитать:
в случае со списком слов модуль автоматически рассчитает, как часто встречается тот или иной элемент:
#лучшиепрактики
Помимо способности collections.Counter() понимать, что именно в строке нужно подсчитать:
from collections import Counter
Counter("mississippi")
>>> Counter({'i': 4, 's': 4, 'p': 2, 'm': 1})
в случае со списком слов модуль автоматически рассчитает, как часто встречается тот или иной элемент:
party_list = ["Alice", "Bob", "Alice", "Eve", "Bob", "Eve", "Alice"]
print(Counter(party_list))
>>> Counter({'Alice': 3, 'Bob': 2, 'Eve': 2})
#лучшиепрактики
👍16❤2
Эффективный способ указывать путь к файлам
С помощью библиотеки pathlib вы можете сократить длину кода, задав переменную «домашний путь» (home):
#лучшиепрактики
С помощью библиотеки pathlib вы можете сократить длину кода, задав переменную «домашний путь» (home):
from pathlib import Path
home = Path.home()
file = home / "treasure_map.txt"
file.touch()
print(f"Ваш файл злесь: {file}")
#лучшиепрактики
🔥18🤨7👍3🤔1
Почему Python не используется для разработки больших игр
Мы знаем, какими преимуществами обладает этот язык, но почему же его не используют для разработки полноценных игр? Среди недостатков, вытолкнувших ЯП с рынка GameDev, числятся:
- низкая совместимость с игровыми движками и языками программирования;
- нельзя создать собственный игровой движок;
- ограниченное количество игровых библиотек;
- ограниченный функционал для мобильных игр.
#факты
Мы знаем, какими преимуществами обладает этот язык, но почему же его не используют для разработки полноценных игр? Среди недостатков, вытолкнувших ЯП с рынка GameDev, числятся:
- низкая совместимость с игровыми движками и языками программирования;
- нельзя создать собственный игровой движок;
- ограниченное количество игровых библиотек;
- ограниченный функционал для мобильных игр.
#факты
💩15🤔4
SQL_Pandas.pdf
515.4 KB
Шпаргалка SQL → Pandas
— выбрать один столбец или несколько из них;
— фильтрация;
— выбор уникальных значений по столбцу;
— подсчет числа значений;
— перечисление названий столбцов и т.д.
#обучение
— выбрать один столбец или несколько из них;
— фильтрация;
— выбор уникальных значений по столбцу;
— подсчет числа значений;
— перечисление названий столбцов и т.д.
#обучение
👍10
Топ реальных историй про первую работу: как начиналась карьера в IT у наших читателей
Недавно мы просили читателей Типичного рассказать о том, как они получали первую работу и какие советы дали бы начинающим специалистам, которые сейчас тоже ищут первую работу.
Делимся лучшими реальными историями про первую работу:
— Как таксист в тяжёлой депрессии стал Python-разработчиком
— С завода на завод. Как слесарь стал программистом всего за 8 месяцев
— Как пройти путь от галеры в Новосибирске до релокейта на Филиппины
— Как стать Golang-разработчиком и получить оффер на 100 000 рублей в 20 лет
— Как студент из Красноярска стал фронтенд-разработчиком
#карьера #работа
Недавно мы просили читателей Типичного рассказать о том, как они получали первую работу и какие советы дали бы начинающим специалистам, которые сейчас тоже ищут первую работу.
Делимся лучшими реальными историями про первую работу:
— Как таксист в тяжёлой депрессии стал Python-разработчиком
— С завода на завод. Как слесарь стал программистом всего за 8 месяцев
— Как пройти путь от галеры в Новосибирске до релокейта на Филиппины
— Как стать Golang-разработчиком и получить оффер на 100 000 рублей в 20 лет
— Как студент из Красноярска стал фронтенд-разработчиком
#карьера #работа
🔥6💩4👍1
Поиск в Google на Python
Библиотека googlesearch-python частично избавляет от необходимости создавать сложных пауков, имитирующих действия живого человека на selenium и позволяет тонко настраивать результаты поиска: количество, язык, подробность ответа (заголовок, URL, описание).
#лучшиепрактики
Библиотека googlesearch-python частично избавляет от необходимости создавать сложных пауков, имитирующих действия живого человека на selenium и позволяет тонко настраивать результаты поиска: количество, язык, подробность ответа (заголовок, URL, описание).
pip install googlesearch-python
from googlesearch import search
search("Поисковый запрос", advanced=True)
>>>
# - title
# - url
# - description
#лучшиепрактики
❤5👍1
Слияние словарей с double asterisk (**)
Чтобы лаконично и экономично с точки зрения памяти объединить два словаря, используйте оператор двойной звездочки:
#лучшиепрактики
Чтобы лаконично и экономично с точки зрения памяти объединить два словаря, используйте оператор двойной звездочки:
d1 = {'name': 'Александр', 'age': 25}
d2 = {'name': 'Александр', 'city': 'Санкт-Петербург'}
merged_dict = {**d1, **d2}
>>> {'name': 'Александр', 'age': 25, 'city': 'Санкт-Петербург''}
#лучшиепрактики
👍29💩5
Railway.app: сервер с бесплатным пробным тарифом
Чтобы не мучаться с серверами и портами, а также деплоить приложения из GitHub-репозитория и прочих источников можно на railway.app. Основное преимущество — выделенные бесплатные, пусть и скромные ресурсы. В trial-версии вам предоставят:
— 512 MB RAM;
— 1 Гб места;
— 5 демо-долларов или 500 часов работы;
— Поддержка на уровне Discord-чата.
#VPS
Чтобы не мучаться с серверами и портами, а также деплоить приложения из GitHub-репозитория и прочих источников можно на railway.app. Основное преимущество — выделенные бесплатные, пусть и скромные ресурсы. В trial-версии вам предоставят:
— 512 MB RAM;
— 1 Гб места;
— 5 демо-долларов или 500 часов работы;
— Поддержка на уровне Discord-чата.
#VPS
👍8👎1
Автоматическая отправка сообщения в WhatsApp
Наконец отложенные сообщения в WhatsApp! Библиотека PyWhatKit помогает отправить сообщение по времени.
Библиотека умеет еще много интересного: от преобразования картинки в ASCII-изображение до отправки мейлов.
#лучшиепрактики
Наконец отложенные сообщения в WhatsApp! Библиотека PyWhatKit помогает отправить сообщение по времени.
import pywhatkit
# Отправить сообщение в 13:30
pywhatkit.sendwhatmsg("+910123456789", "Привет", 13, 30)
Библиотека умеет еще много интересного: от преобразования картинки в ASCII-изображение до отправки мейлов.
#лучшиепрактики
👍19❤2🤡2
IDE для питонистов с хорошим UI / UX
Составили подборку из 5 хороших IDE для программирования на Python с удобной и понятной средой, которые помогают писать код, а не мешают.
#лучшиепрактики
Составили подборку из 5 хороших IDE для программирования на Python с удобной и понятной средой, которые помогают писать код, а не мешают.
#лучшиепрактики
👎7👍2🤔2❤1
Как получить расширенную информацию о картинке
Увидеть подробные метаданные изображения (с появлением цифровой фотографии это назвали EXIF): дату создания, тип камеры, и даже факт разворота позволяет утилита exifread:
#лучшиепрактики
Увидеть подробные метаданные изображения (с появлением цифровой фотографии это назвали EXIF): дату создания, тип камеры, и даже факт разворота позволяет утилита exifread:
import exifread
from PIL import Image
import logging
def _read_img_and_correct_exif_orientation(path):
im = Image.open(path)
tags = {}
with open(path, 'rb') as f:
tags = exifread.process_file(f, details=False)
if "Image Orientation" in tags.keys():
if 4 in val:
logging.debug("Изображение отзеркалено.")
im = im.transpose(Image.FLIP_TOP_BOTTOM)
#лучшиепрактики
👍9
Кстати, у нас на сайте вы можете подписаться только на интересные вам теги и отслеживать самые свежие новости и полезные статьи по этой теме.
Вот, например:
— Веб-разработка: https://tproger.ru/tag/web/
— Нейросети: https://tproger.ru/tag/neural-network/
— И геймдев: https://tproger.ru/tag/gamedev/
А ещё можно подписаться на годноту по конкретному языку:
— Python: https://tproger.ru/tag/python/
— JavaScript: https://tproger.ru/tag/javascript/
— C++: https://tproger.ru/tag/cpp/
Посмотрите все теги и выберите только те, которые интересны вам!
Вот, например:
— Веб-разработка: https://tproger.ru/tag/web/
— Нейросети: https://tproger.ru/tag/neural-network/
— И геймдев: https://tproger.ru/tag/gamedev/
А ещё можно подписаться на годноту по конкретному языку:
— Python: https://tproger.ru/tag/python/
— JavaScript: https://tproger.ru/tag/javascript/
— C++: https://tproger.ru/tag/cpp/
Посмотрите все теги и выберите только те, которые интересны вам!
👍5❤1💩1
Забытые способы указать число знаков после запятой
Помимо привычного символа f, есть еще способы форматировать числа при выводе: e и % (знак процента).
Помимо привычного символа f, есть еще способы форматировать числа при выводе: e и % (знак процента).
{1.23456:10.3f} # '1.235' – до тысячных (три знака)
{1.23456:10.3e} # '1.235e+00' – равно 1.235, то есть умножено на 10 в нулевой степени (на единицу)
{1.23456:10.3%} # '123.456%' – тоже до тысячных, но для процентов
❤5👍1
itertools.compress: удобный способ фильтрации данных
В своем уроке UProger описывает, как фильтровать первый список leaders на основе вспомогательного списка selector.
#лучшиепрактики
В своем уроке UProger описывает, как фильтровать первый список leaders на основе вспомогательного списка selector.
#лучшиепрактики
👍8
Конструкторы datetime
Модуль datetime предоставляет классы «Дата» <D>, «Время» <T>, «Временной штамп» <DT> и «Временная дельта» <TD>.
Как получить значение текущего времени в разных форматах?
#факты
Модуль datetime предоставляет классы «Дата» <D>, «Время» <T>, «Временной штамп» <DT> и «Временная дельта» <TD>.
<D> = date(year, month, day) # Only accepts valid dates from 1 to 9999 AD.
<T> = time(hour=0, minute=0, second=0) # Also: `microsecond=0, tzinfo=None, fold=0`.
<DT> = datetime(year, month, day, hour=0) # Also: `minute=0, second=0, microsecond=0, …`.
<TD> = timedelta(weeks=0, days=0, hours=0) # Also: `minutes=0, seconds=0, microseconds=0`.
Как получить значение текущего времени в разных форматах?
D/DT.today() # Текущая локальная дата (NB! в часовом поясе, где развернута машина)
DT.utcnow() # Текущие дата и время без часового пояса
DT.now(<tzinfo>) # Текущие дата и время с часовым поясом
#факты
👍5
Забавный автоперевод документации REST
"Упдейтшитпропертиесрекуест", "ОбновлениеНамедРангерекуест", "Аддшитрекуест" и прочих неведомых зверей предлагает использовать Google при обращении с API Таблиц. Забавное временное явление можно увидеть в русскоязычной версии документации.
#факты
"Упдейтшитпропертиесрекуест", "ОбновлениеНамедРангерекуест", "Аддшитрекуест" и прочих неведомых зверей предлагает использовать Google при обращении с API Таблиц. Забавное временное явление можно увидеть в русскоязычной версии документации.
#факты
😁12👍2
Как скачивать посты Instagram на Python
Opensource-библиотека instaloader позволяет обойти блокировку соцсети на территории РФ, а также скачать фотографии, теги к ним, сторис и другие медиафайлы, cгрузить комментарии. Инструмент также позволяет детально настраивать фильтры.
#лучшиепрактики
Opensource-библиотека instaloader позволяет обойти блокировку соцсети на территории РФ, а также скачать фотографии, теги к ним, сторис и другие медиафайлы, cгрузить комментарии. Инструмент также позволяет детально настраивать фильтры.
pip install instaloader
import instaloader
loader = instaloader.Instaloader()
target_profile = "<ссылка на профиль>"
loader.download_profile(target_profile, profile_pic=False, fast_update=True)
#лучшиепрактики
👍14🤔4👎3❤2