Упрощаем разработку: асинхронные функции Python
Хотите программировать на Python асинхронно? Испытываете проблемы с многопоточностью? Расскажем, как использовать асинхронные функции в Python.
#статьядня
https://prglb.ru/1apjz
Хотите программировать на Python асинхронно? Испытываете проблемы с многопоточностью? Расскажем, как использовать асинхронные функции в Python.
#статьядня
https://prglb.ru/1apjz
Библиотека программиста
Упрощаем разработку: асинхронные функции Python
Хотите программировать на Python асинхронно? Испытываете проблемы с многопоточностью? Расскажем, как использовать асинхронные функции в Python.
Если вы хотите перебрать несколько итераций одновременно, вы можете использовать функцию zip (она не имеет ничего общего с форматом файла ZIP):
#codeexample
from datetime import timedelta
names = [
'Eleven. Return and Revert',
'Wilderness',
'The Menagerie Inside',
'Evaporate',
]
years = [
2010,
2013,
2015,
2018,
]
durations = [
timedelta(minutes=57, seconds=38),
timedelta(minutes=48, seconds=5),
timedelta(minutes=46, seconds=34),
timedelta(minutes=43, seconds=25),
]
print('Midas Fall LPs:')
for name, year, duration in zip(
names, years, durations
):
print(f' * {name} ({year}) — {duration}')
Output:
Midas Fall LPs:
* Eleven. Return and Revert (2010) — 0:57:38
* Wilderness (2013) — 0:48:05
* The Menagerie Inside (2015) — 0:46:34
* Evaporate (2018) — 0:43:25
#codeexample
from datetime import timedelta
names = [
'Eleven. Return and Revert',
'Wilderness',
'The Menagerie Inside',
'Evaporate',
]
years = [
2010,
2013,
2015,
2018,
]
durations = [
timedelta(minutes=57, seconds=38),
timedelta(minutes=48, seconds=5),
timedelta(minutes=46, seconds=34),
timedelta(minutes=43, seconds=25),
]
print('Midas Fall LPs:')
for name, year, duration in zip(
names, years, durations
):
print(f' * {name} ({year}) — {duration}')
Output:
Midas Fall LPs:
* Eleven. Return and Revert (2010) — 0:57:38
* Wilderness (2013) — 0:48:05
* The Menagerie Inside (2015) — 0:46:34
* Evaporate (2018) — 0:43:25
В SkillFactory стартует онлайн-марафон Python
для анализа данных, который гарантирует получение знаний.
Как это работает?
1. Оплатите невозвратную часть обучения за участие — 2 900 руб.
2. Выполняйте задания в установленные сроки.
3. Оплачивайте курс частями, с возможностью вернуть деньги.
4. Завершите курс с оценкой не менее установленного количества баллов.
5. Верните деньги за свое обучение.
Особенности курса:
— Понятно и интересно: существующие курсы — слишком академичны. Мы объясним сложные термины понятным языком и заложим необходимый фундамент
— С упором на практику: на курсе вы решить реальные задачи в области анализа данных
— Поддержка ментора и одногруппников: с вами будет ментор, который разберет сложности и другие участники, с которыми можно решать задачи вместе.
Старт – 16 октября, забронируйте место уже сейчас: https://clc.to/wR1ijg
для анализа данных, который гарантирует получение знаний.
Как это работает?
1. Оплатите невозвратную часть обучения за участие — 2 900 руб.
2. Выполняйте задания в установленные сроки.
3. Оплачивайте курс частями, с возможностью вернуть деньги.
4. Завершите курс с оценкой не менее установленного количества баллов.
5. Верните деньги за свое обучение.
Особенности курса:
— Понятно и интересно: существующие курсы — слишком академичны. Мы объясним сложные термины понятным языком и заложим необходимый фундамент
— С упором на практику: на курсе вы решить реальные задачи в области анализа данных
— Поддержка ментора и одногруппников: с вами будет ментор, который разберет сложности и другие участники, с которыми можно решать задачи вместе.
Старт – 16 октября, забронируйте место уже сейчас: https://clc.to/wR1ijg
Интересные новые функции в Python 3.8
Из данной статьи вы узнаете:
-Как использовать выражение присваивания для упрощения некоторых конструкций кода
-Как применять positional-only аргументы в ваших собственных функциях
-Указание более точных подсказок типа
-Как использовать f-строки для более простой отладки
#статьядня
https://prglb.ru/1w9fd
Из данной статьи вы узнаете:
-Как использовать выражение присваивания для упрощения некоторых конструкций кода
-Как применять positional-only аргументы в ваших собственных функциях
-Указание более точных подсказок типа
-Как использовать f-строки для более простой отладки
#статьядня
https://prglb.ru/1w9fd
Python Back-end Developer в GOSU.AI
➕ от 1500-2200 EUR, повышение ЗП после переезда.
➕ Full-time удаленно, дальнейшая релокация в Вильнюс (компания помогает в получением европейского ВНЖ).
➡️ Подробности: https://www.notion.so/gosu/Python-Back-end-Developer-6e9681e1e0244b8795a08d395b097d59
➕ от 1500-2200 EUR, повышение ЗП после переезда.
➕ Full-time удаленно, дальнейшая релокация в Вильнюс (компания помогает в получением европейского ВНЖ).
➡️ Подробности: https://www.notion.so/gosu/Python-Back-end-Developer-6e9681e1e0244b8795a08d395b097d59
#codeexample
Если вы хотите создать словарь из известного набора ключей и некоторого фиксированного значения для всех из них, вы можете использовать словарные выражения:
>>> keys = ['a', 'b', 'c']
>>> {k: True for k in keys}
{'a': True, 'b': True, 'c': True}
Однако, у класса dict есть метод класса fromkeys, разработанный специально для этого случая:
>>> dict.fromkeys(keys, True)
{'a': True, 'b': True, 'c': True}
Вы можете добавлять символы Юникода в строковый литерал не только по его номеру, но и по его имени.
>>> '\N{EM DASH}'
'—'
>>> '\u2014'
'—'
Это также совместимо с f-strings:
>>> width = 800
>>> f'Width \N{EM DASH} {width}'
'Width — 800'
Если вы хотите создать словарь из известного набора ключей и некоторого фиксированного значения для всех из них, вы можете использовать словарные выражения:
>>> keys = ['a', 'b', 'c']
>>> {k: True for k in keys}
{'a': True, 'b': True, 'c': True}
Однако, у класса dict есть метод класса fromkeys, разработанный специально для этого случая:
>>> dict.fromkeys(keys, True)
{'a': True, 'b': True, 'c': True}
Вы можете добавлять символы Юникода в строковый литерал не только по его номеру, но и по его имени.
>>> '\N{EM DASH}'
'—'
>>> '\u2014'
'—'
Это также совместимо с f-strings:
>>> width = 800
>>> f'Width \N{EM DASH} {width}'
'Width — 800'
10 советов о том, как научить ребенка программировать на Python
10 педагогических советов и 3 книги для тех, кто хочет помочь ребенку научиться программировать на Python.
#статьядня
https://prglb.ru/2ju06
10 педагогических советов и 3 книги для тех, кто хочет помочь ребенку научиться программировать на Python.
#статьядня
https://prglb.ru/2ju06
Библиотека программиста
10 советов о том, как научить ребенка программировать на Python
10 педагогических советов и 3 книги для тех, кто хочет помочь ребенку научиться программировать на Python.
#codeexample
f-строки позволяют указать ширину для печатаемого значения, а также другие спецификаторы формата:
>>> x = 42
>>> f'{x:5}+{x:15f}'
' 42+ 42.000000'
Они также могут содержать оцененные выражения, которые могут быть полезны, когда ширина неизвестна заранее:
def print_table(matrix):
cols_width = [
max(len(str(row[col])) for row in matrix)
for col in range(len(matrix[0]))
]
for row in matrix:
for i, cell in enumerate(row):
print(
f'{cell:{cols_width[i]}} ',
end=''
)
print()
albums = [
['Eleven. Return and Revert', 2010],
['Wilderness', 2013],
['The Menagerie Inside', 2015],
['Evaporate', 2018],
]
print_table(albums)
На выходе:
Eleven. Return and Revert 2010
Wilderness 2013
The Menagerie Inside 2015
Evaporate 2018
f-строки позволяют указать ширину для печатаемого значения, а также другие спецификаторы формата:
>>> x = 42
>>> f'{x:5}+{x:15f}'
' 42+ 42.000000'
Они также могут содержать оцененные выражения, которые могут быть полезны, когда ширина неизвестна заранее:
def print_table(matrix):
cols_width = [
max(len(str(row[col])) for row in matrix)
for col in range(len(matrix[0]))
]
for row in matrix:
for i, cell in enumerate(row):
print(
f'{cell:{cols_width[i]}} ',
end=''
)
print()
albums = [
['Eleven. Return and Revert', 2010],
['Wilderness', 2013],
['The Menagerie Inside', 2015],
['Evaporate', 2018],
]
print_table(albums)
На выходе:
Eleven. Return and Revert 2010
Wilderness 2013
The Menagerie Inside 2015
Evaporate 2018
Python sleep(): как добавить временные задержки в ваш код
Из данной статьи вы узнаете, как добавить вызовы Python sleep () с помощью:
time.sleep ()
Декораторов
Потоков
Async IO
GUI
#статьядня
https://prglb.ru/a9s3
Из данной статьи вы узнаете, как добавить вызовы Python sleep () с помощью:
time.sleep ()
Декораторов
Потоков
Async IO
GUI
#статьядня
https://prglb.ru/a9s3
Новые крутые Features в Python 3.8
Что принес Python 3.8? Документация дает хороший обзор новых функций. Тем не менее, эта статья более подробно расскажет о некоторых самых значительных изменениях и покажет, как вы можете использовать преимущества Python 3.8.
#статьядня
https://prglb.ru/1w9fd
Что принес Python 3.8? Документация дает хороший обзор новых функций. Тем не менее, эта статья более подробно расскажет о некоторых самых значительных изменениях и покажет, как вы можете использовать преимущества Python 3.8.
#статьядня
https://prglb.ru/1w9fd
Redis в Python — Полная документация на примерах
В данном руководстве вы узнаете, как использовать Python с Redis. Redis является высокопроизводительным хранилищем ключей, отличается высокой скоростью работы и широтой областей применения.
#статьядня
https://prglb.ru/4jgvy
В данном руководстве вы узнаете, как использовать Python с Redis. Redis является высокопроизводительным хранилищем ключей, отличается высокой скоростью работы и широтой областей применения.
#статьядня
https://prglb.ru/4jgvy
Poco — UI автоматизация мобильных игр на основе Python в рамках AirTest IDE
Poco — фреймворк UI автоматизации игр использующий Python в рамках AirTest IDE с возможностью комбинирования функциональности с их же Image Recognition фреймворком (AirTest).
#статьядня
https://prglb.ru/1uywx
Poco — фреймворк UI автоматизации игр использующий Python в рамках AirTest IDE с возможностью комбинирования функциональности с их же Image Recognition фреймворком (AirTest).
#статьядня
https://prglb.ru/1uywx
Хабр
Poco — UI автоматизация мобильных игр на основе Python в рамках AirTest IDE
Сегодня мы поговорим о втором главном фреймворке для автоматизации UI, который называется Poco. Poco использует Python и здесь уже не обойтись без написания кода, но давайте сначала рассмотрим для...
Введение в функциональное программирование с примерами на Python
Функциональное программирование - это довольно интересная концепция, которая получила много внимания в последнее время. В данной статье представлены наиболее важные аспекты функционального программирования в целом и предоставляет несколько примерами на Python.
#статьядня
https://prglb.ru/167yy
Функциональное программирование - это довольно интересная концепция, которая получила много внимания в последнее время. В данной статье представлены наиболее важные аспекты функционального программирования в целом и предоставляет несколько примерами на Python.
#статьядня
https://prglb.ru/167yy
DEV Community
Introduction to functional programming with Python examples
This article was originally published at: https://www.blog.duomly.com/the-most-important-aspects-of-f...
Скрапинг 180 тысяч продуктов класса «Люкс» с помощью Python
В данной статье рассказывается, как найти незадокументированное API на FarFetch и создать пакет Python с тремя инструментами: Firefox Web Developer, Requests & Pandas.
#статьядня
https://prglb.ru/4m435
В данной статье рассказывается, как найти незадокументированное API на FarFetch и создать пакет Python с тремя инструментами: Firefox Web Developer, Requests & Pandas.
#статьядня
https://prglb.ru/4m435
Medium
Scraping 180k Luxury Fashion Products with Python
How to find undocumented API on FarFetch and create Python package with 3 tools; Firefox Web Developer, Requests & Pandas.
Python и быстрые HTTP-клиенты
Существует множество HTTP-клиентов для Python. Самым распространённым и легким в работе можно назвать requests. Сегодня этот клиент является стандартом де-факто. О нем и поговорим в данной статье
#статьядня
https://prglb.ru/3jaz4
Существует множество HTTP-клиентов для Python. Самым распространённым и легким в работе можно назвать requests. Сегодня этот клиент является стандартом де-факто. О нем и поговорим в данной статье
#статьядня
https://prglb.ru/3jaz4
BeautifulSoup – парсинг HTML в Python на примерах
Данная инструкция по BeautifulSoup является вводным руководством по использованию библиотеки BeautifulSoup Python. В примерах показано использование тегов, модификация документа и перебор его элементов, а также парсинг веб-страниц.
#статьядня
https://prglb.ru/4n39g
Данная инструкция по BeautifulSoup является вводным руководством по использованию библиотеки BeautifulSoup Python. В примерах показано использование тегов, модификация документа и перебор его элементов, а также парсинг веб-страниц.
#статьядня
https://prglb.ru/4n39g
Python глазами нейрофизиологов
Наталья Баль, кандидат биологических наук, научный сотрудник Института высшей нервной деятельности и нейрофизиологии Российской академии наук обсудит как поставить Python на службу науке.
#видеодня
https://prglb.ru/1ag37
Наталья Баль, кандидат биологических наук, научный сотрудник Института высшей нервной деятельности и нейрофизиологии Российской академии наук обсудит как поставить Python на службу науке.
#видеодня
https://prglb.ru/1ag37
Сглаживание в Python
Приведенные ниже методы сглаживают потенциально глубокий список с помощью рекурсии
#полезностьдня #codexample
def spread(arg):
ret = []
for i in arg:
if isinstance(i, list):
ret.extend(i)
else:
ret.append(i)
return ret
def deep_flatten(xs):
flat_list = []
[flat_list.extend(deep_flatten(x)) for x in xs] if isinstance(xs, list) else flat_list.append(xs)
return flat_list
deep_flatten([1, [2], [[3], 4], 5]) # [1,2,3,4,5]
Приведенные ниже методы сглаживают потенциально глубокий список с помощью рекурсии
#полезностьдня #codexample
def spread(arg):
ret = []
for i in arg:
if isinstance(i, list):
ret.extend(i)
else:
ret.append(i)
return ret
def deep_flatten(xs):
flat_list = []
[flat_list.extend(deep_flatten(x)) for x in xs] if isinstance(xs, list) else flat_list.append(xs)
return flat_list
deep_flatten([1, [2], [[3], 4], 5]) # [1,2,3,4,5]
__init__ позволяет изменить объект сразу после создания. Если вы хотите контролировать то, что уже создано, используйте __new__:
#codeexample
from typing import Tuple, Dict
from cached_property import cached_property
class Numbers:
_LOADED: Dict[Tuple[int, ...], 'Numbers'] = {}
def __new__(cls, ints: Tuple[int, ...]):
if ints not in cls._LOADED:
obj = super().__new__(cls)
cls._LOADED[ints] = obj
return cls._LOADED[ints]
def __init__(self, ints: Tuple[int, ...]):
self._ints = ints
@cached_property
def biggest(self):
print('calculating...')
return max(self._ints)
print(Numbers((4, 3, 5)).biggest)
print(Numbers((4, 3, 5)).biggest)
print(Numbers((4, 3, 6)).biggest)
#codeexample
from typing import Tuple, Dict
from cached_property import cached_property
class Numbers:
_LOADED: Dict[Tuple[int, ...], 'Numbers'] = {}
def __new__(cls, ints: Tuple[int, ...]):
if ints not in cls._LOADED:
obj = super().__new__(cls)
cls._LOADED[ints] = obj
return cls._LOADED[ints]
def __init__(self, ints: Tuple[int, ...]):
self._ints = ints
@cached_property
def biggest(self):
print('calculating...')
return max(self._ints)
print(Numbers((4, 3, 5)).biggest)
print(Numbers((4, 3, 5)).biggest)
print(Numbers((4, 3, 6)).biggest)
Каким был ваш любимый пет-проект?
У некоторых из вас наверняка были свои проекты, которые вы писали или пишите сейчас. Если не секрет, о чем они? Что вас вдохновило их сделать? Писали ли вы их вместе с кем-то или в одиночку?
Поделитесь в комментариях: https://proglib.io/p/kakim-byl-vash-lyubimyy-sayd-proekt-podelites-v-kommentariyah-2019-10-30
У некоторых из вас наверняка были свои проекты, которые вы писали или пишите сейчас. Если не секрет, о чем они? Что вас вдохновило их сделать? Писали ли вы их вместе с кем-то или в одиночку?
Поделитесь в комментариях: https://proglib.io/p/kakim-byl-vash-lyubimyy-sayd-proekt-podelites-v-kommentariyah-2019-10-30
Библиотека программиста
Каким был ваш любимый пет-проект? Поделитесь в комментариях
У некоторых из вас наверняка были свои проекты, которые вы писали или пишите сейчас. Если не секрет, о чем они? Что вас вдохновило их сделать? Писали ли вы их вместе с кем-то или в одиночку? Поделитесь в комментариях.