FastAPI
FastAPI — это фреймворк для создания лаконичных и довольно быстрых HTTP API-серверов со встроенными валидацией, сериализацией и асинхронностью, что называется, из коробки. Стоит он на плечах двух других фреймворков: работой с web в FastAPI занимается Starlette, а за валидацию отвечает Pydantic.
Ключевые особенности FastAPI:
• очень высокая производительность, наравне с NodeJS и Go;
• встроенная документация на основе Swagger;
• использование веб-сокетов;
• лёгкая интеграция с базами данных;
• основан на стандартах OpenAPI и полностью совместим с ними.
Подробнее👇
#фреймворки_библиотеки
@python_practics
FastAPI — это фреймворк для создания лаконичных и довольно быстрых HTTP API-серверов со встроенными валидацией, сериализацией и асинхронностью, что называется, из коробки. Стоит он на плечах двух других фреймворков: работой с web в FastAPI занимается Starlette, а за валидацию отвечает Pydantic.
Ключевые особенности FastAPI:
• очень высокая производительность, наравне с NodeJS и Go;
• встроенная документация на основе Swagger;
• использование веб-сокетов;
• лёгкая интеграция с базами данных;
• основан на стандартах OpenAPI и полностью совместим с ними.
Подробнее👇
#фреймворки_библиотеки
@python_practics
👍9❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Создаем красивую анимацию на модуле turtle
@python_practics
from turtle import Screen, Pen#sandbox
import colorsys
screen = Screen()
screen.title("Rainbow Spiral")
pen = Pen()
pen.speed('fastest')
hue = 0.0 # range is 0.0 to 1.0
for i in range(200):
color = colorsys.hsv_to_rgb(hue, 1, 1) # pen wants RGB
pen.pencolor(color)
pen.forward(i * 2) # double size
pen.right(121) # 120 degrees is an equilateral triangle
hue += 0.005 # increment by 1/200
pen.hideturtle()
screen.exitonclick()
@python_practics
🥱11👍8💩4
Проблемы современных конструкторов чат-ботов
Конструкторы стали популярными инструментами для создания чат-ботов. Но работа с ними зачастую полна проблем. В этой статье мы рассмотрим некоторые из них:
• необходимость программировать;
• ограниченные возможности интеграции;
• низкая точность распознавания речи;
• обучение;
• безопасность.
Подробнее👇
#статьи
@python_practics
Конструкторы стали популярными инструментами для создания чат-ботов. Но работа с ними зачастую полна проблем. В этой статье мы рассмотрим некоторые из них:
• необходимость программировать;
• ограниченные возможности интеграции;
• низкая точность распознавания речи;
• обучение;
• безопасность.
Подробнее👇
#статьи
@python_practics
👍7
Python Concurrency with asyncio by Matthew Fowler
Эта книга знакомит с асинхронным, параллельным и многопоточным программированием на практических примерах Python. Трудные для понимания темы параллелизма разбиты на простые блок-схемы, позволяющие легко увидеть, как выполняются ваши задачи. Вы узнаете, как преодолеть ограничения Python с помощью asyncio для ускорения медленных веб-серверов и микросервисов. Вы даже сможете комбинировать asyncio с традиционными методами многопроцессорной обработки для огромного повышения производительности.
Книга в формате pdf👇
#курсы_книги
@python_practics
Эта книга знакомит с асинхронным, параллельным и многопоточным программированием на практических примерах Python. Трудные для понимания темы параллелизма разбиты на простые блок-схемы, позволяющие легко увидеть, как выполняются ваши задачи. Вы узнаете, как преодолеть ограничения Python с помощью asyncio для ускорения медленных веб-серверов и микросервисов. Вы даже сможете комбинировать asyncio с традиционными методами многопроцессорной обработки для огромного повышения производительности.
Книга в формате pdf👇
#курсы_книги
@python_practics
👍9❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Создаем красивую анимацию на модуле turtle
@python_practics
import random#sandbox
from turtle import Turtle, Screen
tim = Turtle()
tim.shape("classic")
def turtle_color():
R = random.random()
G = random.random()
B = random.random()
return tim.pencolor(R, G, B)
tim.speed("fastest")
for _ in range(72):
turtle_color()
tim.circle(100)
tim.left(5)
screen = Screen()
screen.exitonclick()
@python_practics
🥱8👎4🔥3💩2❤1👍1
Как защитить свой Python-код
Безопасностью кода студентов озадачивают нечасто. Нас знакомят с некоторыми устоявшимися приемами, вроде применения виртуального окружения, но в систему это складывается только во время работы.
Чтобы ускорить процесс и избавить вас от возможных проблем на старте, автор статьи собрал топ способов сделать код защищеннее от двух видов воздействия: злонамеренного (например, использование уязвимостей сайта хакерами) и непреднамеренного (ошибки разработчика, приводящей к падению прода).
Подробнее👇
#статьи
@python_practics
Безопасностью кода студентов озадачивают нечасто. Нас знакомят с некоторыми устоявшимися приемами, вроде применения виртуального окружения, но в систему это складывается только во время работы.
Чтобы ускорить процесс и избавить вас от возможных проблем на старте, автор статьи собрал топ способов сделать код защищеннее от двух видов воздействия: злонамеренного (например, использование уязвимостей сайта хакерами) и непреднамеренного (ошибки разработчика, приводящей к падению прода).
Подробнее👇
#статьи
@python_practics
👍11
Внимание! - Вопрос!
Что такое подгенератор?
В Python 3 существуют так называемые подгенераторы (subgenerators). Если в функции-генераторе встречается пара ключевых слов yield from, после которых следует объект-генератор, то данный генератор делегирует доступ к подгенератору, пока он не завершится (не закончатся его значения), после чего продолжает своё исполнение.
На самом деле yield является выражением. Оно может принимать значения, которые отправляются в генератор. Если в генератор не отправляются значения, результат данного выражения равен None.
yield from также является выражением. Его результатом является то значение, которое подгенератор возвращает в исключении StopIteration (для этого значение возвращается при помощи ключевого слова return).
#вопросы_из_собеседований
Что такое подгенератор?
На самом деле yield является выражением. Оно может принимать значения, которые отправляются в генератор. Если в генератор не отправляются значения, результат данного выражения равен None.
yield from также является выражением. Его результатом является то значение, которое подгенератор возвращает в исключении StopIteration (для этого значение возвращается при помощи ключевого слова return).
👍17❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Создаем интересную анимацию на модуле turtle
@python_practics
import turtle#sandbox
tina = turtle.Turtle()
tina.shape('turtle')
tina.penup()
tina.goto(30,-150)
tina.pendown()
tina.circle(130)
tina.penup()
tina.goto(0,0)
tina.pendown()
tina.circle(20)
tina.circle(10)
tina.penup()
tina.forward(60)
tina.right(45)
tina.pendown()
tina.circle(30)
tina.circle(10)
tina.penup()
tina.right(90)
tina.forward(90)
tina.pendown()
tina.circle(40)
tina.penup()
tina.goto(25,-25)
@python_practics
👍19💩5👎3❤1🔥1🥱1
👍20😁1
Получить цифры числа
Функция
#полезные_сниппеты
@python_practics
Функция
map() принимает желаемый тип выходных данных (в нашем случае это int, целые числа) и итерируемый объект (строку, список или кортеж), элементы которого можно превратить в элементы этого типа. После этого другая функция list() преобразует результат в список.#полезные_сниппеты
@python_practics
👍26❤1😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Создаем красивую анимацию на модуле turtle
Полный код можно посмотреть по ссылке👇
#sandbox
@python_practics
Полный код можно посмотреть по ссылке👇
#sandbox
@python_practics
🥱7🔥5👍2
Задача:
Вам нужно создать функцию, которая принимает список неотрицательных целых чисел и строк и возвращает новый список с отфильтрованными строками.
Пример:
@python_practics
Вам нужно создать функцию, которая принимает список неотрицательных целых чисел и строк и возвращает новый список с отфильтрованными строками.
Пример:
filter_list([1,2,'a','b']) == [1,2]#задачник
filter_list([1,'a','b',0,15]) == [1,0,15]
filter_list([1,2,'aasf','1','123',123]) == [1,2,123]
@python_practics
👍16
Tensor Flow
Широко распространенная библиотека с открытым исходным кодом. Изначально Tensor Flow предназначен для работы с Python, однако она предоставляет доступ и к базовому API C++.
В отличие от других МО/ГО библиотек, Tensor Flow разрабатывался для использования не только в исследованиях и разработках, но для производственных целей. Среди наиболее ярких проектов, созданных с его помощью, можно выделить самообучающийся алгоритм Google Rank Brain и нейронную сеть DeepDream.
Особенности Tensor Flow:
• программный продукт для свободного использования под лицензией Apache 2.0;
• библиотека TensorFlow позволяет оптимизировать модели для их развертывания в условиях ограниченных ресурсов. Это возможно при использовании специального фреймворка — TensorFlow Serving;
• большое сообщество. Библиотека создавалась корпорацией Google, которая и по сей день работает над улучшением стабильности.
Подробнее👇
#фреймворки_библиотеки
@python_practics
Широко распространенная библиотека с открытым исходным кодом. Изначально Tensor Flow предназначен для работы с Python, однако она предоставляет доступ и к базовому API C++.
В отличие от других МО/ГО библиотек, Tensor Flow разрабатывался для использования не только в исследованиях и разработках, но для производственных целей. Среди наиболее ярких проектов, созданных с его помощью, можно выделить самообучающийся алгоритм Google Rank Brain и нейронную сеть DeepDream.
Особенности Tensor Flow:
• программный продукт для свободного использования под лицензией Apache 2.0;
• библиотека TensorFlow позволяет оптимизировать модели для их развертывания в условиях ограниченных ресурсов. Это возможно при использовании специального фреймворка — TensorFlow Serving;
• большое сообщество. Библиотека создавалась корпорацией Google, которая и по сей день работает над улучшением стабильности.
Подробнее👇
#фреймворки_библиотеки
@python_practics
🔥9❤1👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Создаем красивую анимацию на модуле turtle
@python_practics
import turtle#sandbox
t = turtle.Turtle()
list1 = ["purple","red","orange","blue","green"]
turtle.bgcolor("black")
for i in range(200):
t.color(list1[i%5])
t.pensize(i/10+1)
t.forward(i)
t.left(59)
@python_practics
💩9👍6🔥2❤1🤮1