Посты с тэгом python3


[Перевод] А вы можете решить эти три (обманчиво) простые задачи на Python?

С самого начала своего пути как разработчика программного обеспечения я очень любил копаться во внутренностях языков программирования. Мне всегда было интересно, как устроена та или иная конструкция, как работает та или иная команда, что под капотом у синтаксического сахара и т.п. Недавно мне на глаза попалась интересная статья с примерами того, как не всегда очевидно работают mutable- и immutable-объекты в Python. На мой взгляд, ключевое — это то, как меняется поведение кода в зависимости от используемого типа данных, при сохранении идентичной семантики и используемых языковых конструкциях. Это отличный пример того, что думать надо не только при написании, но и при использовании. Предлагаю всем желающим ознакомиться с переводом.



Попробуйте решить эти три задачи, а потом сверьтесь с ответами в конце статьи.

Совет: у задач есть кое-что общее, поэтому освежите в памяти



Python и пиво — взболтать, но не смешивать



Привет, Habr! Решил описать небольшую систему автоматизации для создания чудесного напитка. Для того, чтобы пиво было вкусным важны время и температура, температура и время. Причём они настолько же необходимы, как и ингридиенты, составляющие сусло. Чтобы пройти путь до готового продукта требуется от 14 до 20 шагов с различной температурой и временем пивоварения. Для всех заинтересовавшихся этим загадочным процессом, прошу под кат.
Читать дальше →


[Из песочницы] Бот Telegram для пиццерии на Python с помощью telebot

Вступление


На Хабре уже есть статья о Telegram боте, написанном на Python с помощью telebot. Признаться, свое знакомство с чат-ботами в недавно разблокированном мессенджере я начинал с этой статьи. Моя писанина — это дополнение, включающее в себя работу с Inline кнопками и базой данных.


Установка библиотеки


Telebot — библиотека для взаимодействия с Telegram API, которая привлекла меня простотой, поэтому я считаю, что для новичков она подходит на все 100%.

Читать дальше →


[Из песочницы] Функциональное программирование на Python для самых маленьких — Часть 1 — Lambda Функция



Я решил написать эту серию статей ибо считаю что никто не должен сталкиваться с той стеной непонимания с которой столкнулся я где для того чтобы понять что то в Функциональном Программировании (Далее ФП) тебе надо уже знать многое в ФП. Эту статью я старался написать максимально просто — настолько понятно чтобы ее суть мог уловить мой племянник школьник который сейчас делает свои первые шаги в Python

Небольшое введение


Для начала давайте разберемся что такое функциональное программирование, в чем его особенности, зачем оно было придумано и где и как его использовать. Стоп… А зачем? Об этом написаны тонны материалов да и в этой статье судя по всему эта информация не особо нужна. Эта статья написана для того чтобы научились разбираться в коде который написан в функциональном стиле. Но если вы все таки хотите разобраться в истории Функционального Программирования и разоб


[Из песочницы] Питонисты, прекратите использовать квадратные скобки для получения значений из словаря

Привет, Хабр! представляю вашему вниманию перевод статьи «Stop Using Square Bracket Notation to Get a Dictionary’s Value in Python» автора Jonathan Hsu.

Выходим за рамки традиционного метода и защищаем свой код


Словарь — это не сортированный набор ключей и значений. Это значит, что:

  • Каждый элемент словаря состоит из термина (ключ) и его определения (значение).
  • Ключи должны быть уникальными для данного словаря — никаких повторений.
  • Ключи в словаре не имеют такого явного порядка расположения, который есть у элементов списка.
Читать дальше →


[Из песочницы] Установка OpenCV-Python на виртуальной среде для суперчайников

Здесь вы найдете пошаговый пример установки библиотеки OpenCV на Python.


  • Установка Python
  • Установка виртуальной среды
  • Установка OpenCV + jupiterlab, numpy, matplotlib
  • Тестирование

Все тестировала на планшете Microsoft Surface, Windows 10 Pro, c 64-битной операционной системой.


Предположим, что на вашем устройстве ничего не установлено заранее.


  1. Сначала установим Python.
    Скачиваем нужную версию и запускаем .exe файл. Не забываем установить галочку add path. Я установила Python 3.7.3 от 25 марта 2019 г., потому что новая на данный момент версия Python 3.7.4 от 8го июля 2019 г. работала некорректно, а именно в терминале некоторые команды зависали. Открываем командную строку.
  2. Устанавливаем virtualenv.
Читать


Django ORM | Оптимизируем запросы


Django ORM (Object Relational Mapping) является одной из самых мощных особенностей Django. Это позволяет нам взаимодействовать с базой данных, используя код Python, а не SQL.

Для демонстрации опишу такую модель:

from django.db import models

class Blog(models.Model):
    name = models.CharField(max_length=250)
    url = models.URLField()

    def __str__(self):
        return self.name

class Author(models.Model):
    name = models.CharField(max_length=250)

    def __str__(self):
        return self.name

class Post(models.Model):
    title = models.CharField(max_length=250)
    content = models.TextField()
    published = models.BooleanField(default=True)
    blog = models.ForeignKey(Blog, on_delete=models.CASCADE)
    authors = models.ManyToManyField(Author, related_name="posts")



[Из песочницы] Авторизация пользователя при помощи Starlette + Vue.js

Вступление




Задача — создать пример авторизации пользователя с использованием фреймворков Starlette (https://www.starlette.io/) и Vue.js *, который был бы максимально комфортным разработчикам Django для «миграции» в асинхронный стек.

Почему Starlette? В первую очередь скорость. Starlette ультимативно быстр, и в тестах уступает только BlackSheep (https://pypi.org/project/blacksheep/). Во вторых Starlette весьма прост и писать на нем в силу его продуманности легко и приятно.

В качестве ORM мы будем использовать Tortoise ORM (со моделями и выборками «аля Django ORM»).

В качестве сессионного механизма мы будем использовать JWT.

* Описание фронтенда на Vue.js не входит в данную заметку.
Читать дальше →


Как не править Python тесты

И вынести тестируемые результаты вне кода. Это статья об автоматизации и увеличения удобства тестирования на Python.



Вводная


У меня был проект, который разрабатывался уже несколько лет. В проекте отсутствовали тесты. А также у него были активные зависимости от других команд, которые также влияли на результат.


Регрессионное тестирование было одним из шагов для более уверенной разработки. Его суть в сравнении вычисленных данных с последним канонизированным результатом работы программы. 


Результаты выполнения можно проверять в python коде тестов. Это близко к контексту выполнения и зачастую удобно.


Но это также может быть неудобно когда:

Читать дальше →


Материальный Python. Кастомные карточки с OpenGL эффектами


Приветствую, уважаемые любители и знатоки Python!

В этой статье я покажу вам, как применять эффекты OpenGL к своим кастомным карточкам, если вы используете в своих приложениях такие кроссплатформенные инструменты как фреймворк Kivy и библиотеку материального дизайна для этого фреймворка — KivyMD. Погнали! Читать дальше →