#codeexample
Несмотря на то, что язык программирования Python с динамической типизацией, бывают случаи, когда нужно проверить тип элемента:
Несмотря на то, что язык программирования Python с динамической типизацией, бывают случаи, когда нужно проверить тип элемента:
<type> = type(<el>) # <class 'int'> / <class 'str'> / ...
from numbers import Integral, Rational, Real, Complex, Number
<bool> = isinstance(<el>, Number)
Pipenv: будущее управления зависимостями в Python
Этот доклад посвящен истории создания пакетов Python, инструментам, которые были исторически доступны для развертывания приложений, проблемам / ограничениям, представленным ими, и представляет собой целостное решение многих из этих проблем: Pipenv.
Speaker: Kenneth Reitz
https://prglb.ru/51s6g
Этот доклад посвящен истории создания пакетов Python, инструментам, которые были исторически доступны для развертывания приложений, проблемам / ограничениям, представленным ими, и представляет собой целостное решение многих из этих проблем: Pipenv.
Speaker: Kenneth Reitz
https://prglb.ru/51s6g
Как Вам, наверняка, известно, инструменты Python поддерживают функциональное программирование
#полезностьдня
Применяем функцию к каждому элементу последовательности:
Отфильтруем элементы последовательности, которые больше 5:
Следующая функция вычисляет сумму элементов последовательности:
#полезностьдня
Применяем функцию к каждому элементу последовательности:
<iter> = map(lambda x: x + 1, range(10)) # (1, 2, ..., 10)
Отфильтруем элементы последовательности, которые больше 5:
<iter> = filter(lambda x: x > 5, range(10)) # (6, 7, 8, 9)
Следующая функция вычисляет сумму элементов последовательности:
from functools import reduce
<int> = reduce(lambda out, x: out + x, range(10)) # 45
Flask Web Development
Автор: Мигель Гринберг
Автор книги познакомит вас с основным функционалом и структурой фреймворка, продемонстрировав это на создании законченного приложения социального блогинга.
#книгадня
Примеры:
https://prglb.ru/3ppwv
Скачать книгу:
https://t.me/progbook/2396
Автор: Мигель Гринберг
Автор книги познакомит вас с основным функционалом и структурой фреймворка, продемонстрировав это на создании законченного приложения социального блогинга.
#книгадня
Примеры:
https://prglb.ru/3ppwv
Скачать книгу:
https://t.me/progbook/2396
29 Python-проектов, оказавших огромное влияние на разработку
Пишете код на Python? Собрали для вас подборку полезных Python-проектов, которые спасали разработчиков на протяжении 2018 года.
#статьядня
https://prglb.ru/4jjlq
Пишете код на Python? Собрали для вас подборку полезных Python-проектов, которые спасали разработчиков на протяжении 2018 года.
#статьядня
https://prglb.ru/4jjlq
#codeexample
Разработчики Python обычно инициализируют словарь по-разному:
Безусловно, результат тот же, но давайте погрузимся глубже:
Похоже, что вторая инициализация словаря, по крайней мере, в два раза медленнее.
Давайте посмотрим, почему это происходит, используя модуль dis, который позволяет проверять внутренности байт-кода python:
Ответ очевиден - всякий раз, когда вы предпочитаете dict () вместо {}, вы теряете дополнительное время на вызов избыточной функции.
Но в большинстве приложений на Python это не имеет значения, потому что мы имеем дело с микросекундами. Во всяком случае - имейте в виду.
Разработчики Python обычно инициализируют словарь по-разному:
foo = {}
foo = dict()
Безусловно, результат тот же, но давайте погрузимся глубже:
timeit.timeit('{}', number=10**8)
2.65754420599842
timeit.timeit('dict()', number=10**8)
6.245466648993897
Похоже, что вторая инициализация словаря, по крайней мере, в два раза медленнее.
Давайте посмотрим, почему это происходит, используя модуль dis, который позволяет проверять внутренности байт-кода python:
dis.dis('foo={}')
1 0 BUILD_MAP 0
2 STORE_NAME 0 (foo)
4 LOAD_CONST 0 (None)
6 RETURN_VALUE
dis.dis('foo=dict()')
1 0 LOAD_NAME 0 (dict)
2 CALL_FUNCTION 0
4 STORE_NAME 1 (foo)
6 LOAD_CONST 0 (None)
8 RETURN_VALUE
Ответ очевиден - всякий раз, когда вы предпочитаете dict () вместо {}, вы теряете дополнительное время на вызов избыточной функции.
Но в большинстве приложений на Python это не имеет значения, потому что мы имеем дело с микросекундами. Во всяком случае - имейте в виду.
С 11 по 29 марта пройдет серия бесплатных онлайн-конференций по программированию. Ведущие специалисты страны поделятся своими знаниями и секретами.
Регистрация уже началась 👉 https://goo.gl/t1bhNG
Узнай о том, как:
✔️ правильно выбрать язык программирования;
✔️ программировать на Python, Java, C#;
✔️ создать сайт;
✔️ написать приложение и др.
Успей присоединиться — количество бесплатных мест ограничено!
Регистрация уже началась 👉 https://goo.gl/t1bhNG
Узнай о том, как:
✔️ правильно выбрать язык программирования;
✔️ программировать на Python, Java, C#;
✔️ создать сайт;
✔️ написать приложение и др.
Успей присоединиться — количество бесплатных мест ограничено!
PyTorch является одним из основных инструментов, используемых в наши дни для изучения машинного обучения. Он разрабатывался в бета-режиме уже более 2 лет, но в октябре этого года был выпущен кандидат на выпуск версии 1.0! В этом выступлении автор кратко представит библиотеку, а затем перейдет к демонстрации новейших функций.
#видеодня
EVENT: PyData Warsaw 2018
Speaker: Adam Paszke
https://prglb.ru/4swyq
#видеодня
EVENT: PyData Warsaw 2018
Speaker: Adam Paszke
https://prglb.ru/4swyq
Библиотека Matplotlib построена на принципах ООП, но имеет процедурный интерфейс pylab, который предоставляет аналоги команд MATLAB
#youtubeдня
https://prglb.ru/5ezs6
#youtubeдня
https://prglb.ru/5ezs6
Когда вы пишете надежный код, тесты необходимы для проверки правильности, надежности и эффективности логики вашего приложения. Однако ценность ваших тестов зависит от того, насколько хорошо они демонстрируют эти критерии. Препятствия, такие как сложная логика и непредсказуемые зависимости, затрудняют написание ценных тестов. Библиотека фиктивных объектов Python, unittest.mock, может помочь вам преодолеть эти препятствия.
#статьядня
https://prglb.ru/3lsbb
#статьядня
https://prglb.ru/3lsbb
👍1
#codeexample
Python 3.5+ позволяет передавать несколько наборов
аргументов ключевого слова («kwargs») для функции в пределах одного вызова, используя синтаксис «»:
Python 3.5+ позволяет передавать несколько наборов
аргументов ключевого слова («kwargs») для функции в пределах одного вызова, используя синтаксис «»:
def process_data(a, b, c, d):
print(a, b, c, d)
x = {'a': 1, 'b': 2}
y = {'c': 3, 'd': 4}
process_data(**x, **y)
# 1 2 3 4
process_data(**x, c=23, d=42)
#1 2 23 42
The Quick Python Book
Автор: Naomi Ceder
Вместе с автором вы пройдёте путь от начинающего разработчика, изучив массивы, основы работы с функциями, регулярные выражения, а также базовые концепции объектно-ориентированного программирования.
#книгадня
Скачать книгу:
https://t.me/progbook/2626
Автор: Naomi Ceder
Вместе с автором вы пройдёте путь от начинающего разработчика, изучив массивы, основы работы с функциями, регулярные выражения, а также базовые концепции объектно-ориентированного программирования.
#книгадня
Скачать книгу:
https://t.me/progbook/2626
Самый полный видеокурс по Django от установки до проекта
Занимательный видеокурс по Django на примере создания интернет-магазина.
#статьядня
https://prglb.ru/2vfep
Занимательный видеокурс по Django на примере создания интернет-магазина.
#статьядня
https://prglb.ru/2vfep
Когда вы разветвляете свой процесс, случайное начальное число, которое вы используете, копируется между процессами. Это может привести к тому, что процессы будут давать одинаковый «случайный» результат.
Чтобы избежать этого, вы должны вручную вызывать
Однако, если вы используете multiprocessing, он делает это за вас.
# Результат:
4 4 4 5 5
1 4 1 3 3
2 2 2 2 2
Более того, если вы используете Python 3.7 или новее,
Вывод приведенного выше кода для Python 3.7:
1 2 2 1 5
4 4 4 5 5
2 4 1 3 1
Чтобы избежать этого, вы должны вручную вызывать
random.seed()
в каждом процессе.Однако, если вы используете multiprocessing, он делает это за вас.
import multiprocessing
import random
import os
import sys
def test(a):
print(random.choice(a), end=' ')
# a = [1, 2, 3, 4, 5]
for _ in range(5):
test(a)
print()
for _ in range(5):
p = multiprocessing.Process(
target=test, args=(a,))
p.start()
p.join()
print()
for _ in range(5):
pid = os.fork()
if pid == 0:
test(a)
sys.exit()
else:
os.wait()
print()
# Результат:
4 4 4 5 5
1 4 1 3 3
2 2 2 2 2
Более того, если вы используете Python 3.7 или новее,
os.fork
делает то же самое, благодаря новому хуку at_fork
.Вывод приведенного выше кода для Python 3.7:
1 2 2 1 5
4 4 4 5 5
2 4 1 3 1
Инструменты Python: лучшая шпаргалка для начинающих
Большая шпаргалка для питониста на любой случай. Рассмотрены основные инструменты Python с примерами. Осторожно: много кода!
#статьядня
https://prglb.ru/1gzq2
Большая шпаргалка для питониста на любой случай. Рассмотрены основные инструменты Python с примерами. Осторожно: много кода!
#статьядня
https://prglb.ru/1gzq2
Управление несколькими версиями Python с помощью pyenv
Из данной статьи вы узнаете:
Установите несколько версий Python
Установите последнюю версию Python для разработки
Переключение между установленными версиями
Используйте виртуальные среды с pyenv
Активируйте разные версии Python и виртуальные среды автоматически
#статьядня
https://prglb.ru/j69v
Из данной статьи вы узнаете:
Установите несколько версий Python
Установите последнюю версию Python для разработки
Переключение между установленными версиями
Используйте виртуальные среды с pyenv
Активируйте разные версии Python и виртуальные среды автоматически
#статьядня
https://prglb.ru/j69v
Realpython
Managing Multiple Python Versions With pyenv – Real Python
In this step-by-step tutorial, you'll learn how to install multiple Python versions and switch between them with ease, including project-specific virtual environments, even if you don't have sudo access with pyenv.
Как создать приложение с графическим интерфейсом Python с помощью wxPython
- Начало работы с wxPython
- Определение GUI
- Создание скелетного приложения
- Создание рабочего приложения
#статьядня
https://prglb.ru/22iq4
- Начало работы с wxPython
- Определение GUI
- Создание скелетного приложения
- Создание рабочего приложения
#статьядня
https://prglb.ru/22iq4
Будущие питонисты и те, кто уже вышел на этот тернистый путь)
У нас появился канал с вакансиями специально для Вас!
Подписывайтесь и следите за обновлениями, а мы постараемся радовать Вас только самыми свежими и интересными предложениями на рынке!
Ждем Вас здесь: @pydevjob
У нас появился канал с вакансиями специально для Вас!
Подписывайтесь и следите за обновлениями, а мы постараемся радовать Вас только самыми свежими и интересными предложениями на рынке!
Ждем Вас здесь: @pydevjob
Библиотека питониста | Python, Django, Flask pinned «Будущие питонисты и те, кто уже вышел на этот тернистый путь) У нас появился канал с вакансиями специально для Вас! Подписывайтесь и следите за обновлениями, а мы постараемся радовать Вас только самыми свежими и интересными предложениями на рынке! Ждем…»