python_practics
5.28K subscribers
1.85K photos
205 videos
119 files
60 links
Python - обучающие материалы, полезные советы и статьи.

Админ, сотрудничество, реклама: @seniorFrontPromo, @maria_seniorfront

Купить рекламу: https://telega.in/c/python_practics
Download Telegram
Внимание! - Вопрос!

Как получить из генератора список?

Передать его в конструктор списка: list(x for x in some_seq). Важно, что после этого по генератору уже нельзя будет итерироваться.

#вопросы_из_собеседований

@python_practics
🔥10👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Создаем красивую анимацию на модуле turtle

   from turtle import * 

speed(0)
pencolor('white')
bgcolor('black')

x = 0
up()
rt(45)
fd(90)
rt(135)
down()

while x < 120:
fd(200)
rt(61)
fd(200)
rt(61)
fd(200)
rt(61)
fd(200)
rt(61)
fd(200)
rt(61)
fd(200)
rt(61)

rt(11.1111)
x = x+1

exitonclick()

#sandbox

@python_practics
👍6🥰4🤮2🔥1
Можно ли импортировать модуль, который не написан на языке python?
Anonymous Quiz
55%
Да, можно
32%
Возможно, но только на некоторых языках
13%
Нет, категорически нельзя
🔥11🤯10❤‍🔥1😱1
Найти самый частый элемент

Этот короткий скрипт вернёт элемент, чаще всего встречающийся в списке.

Используются продвинутые параметры встроенной функции max():

• первым аргументом она получает множество из элементов списка (помним, что в множестве все элементы уникальны);
• затем применяет к каждому из них функцию count, подсчитывающую, сколько раз элемент встречается в списке;
• после этого возвращает элемент множества, который имеет больше всего «попаданий».

В качестве аргумента можно использовать списки, кортежи и строки.

#полезные_сниппеты

@python_practics
👍18🤔2👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Создаем красивую анимацию на модуле turtle

   import turtle

Alfred = turtle.Turtle()
Alfred.color("blue")

Alfred.penup()
Alfred.goto(-75,-75)
Alfred.pendown()

#Picking up speed
for i in range(50):
Alfred.speed(i+1)
Alfred.forward(150)
Alfred.left(85)

Alfred.penup()
Alfred.goto(-25,-25)
Alfred.pendown()
Alfred.setheading(0)

#Slowing down
for i in range(30):
Alfred.speed(30-i)
Alfred.forward(50)
Alfred.left(85)

turtle.exitonclick()

#sandbox

@python_practics
🥱8👍6💩5
Задача:

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

Пример:

   [7, 1]  =>  [1, 7]
[5, 8, 6, 3, 4] => [3, 8, 6, 5, 4]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0] => [1, 8, 3, 6, 5, 4, 7, 2, 9, 0]

#задачник

@python_practics
👍17🥱1
FastAPI

FastAPI — это фреймворк для создания лаконичных и довольно быстрых HTTP API-серверов со встроенными валидацией, сериализацией и асинхронностью, что называется, из коробки. Стоит он на плечах двух других фреймворков: работой с web в FastAPI занимается Starlette, а за валидацию отвечает Pydantic.

Ключевые особенности FastAPI:

• очень высокая производительность, наравне с NodeJS и Go;
• встроенная документация на основе Swagger;
• использование веб-сокетов;
• лёгкая интеграция с базами данных;
• основан на стандартах OpenAPI и полностью совместим с ними.

Подробнее👇

#фреймворки_библиотеки

@python_practics
👍92
This media is not supported in your browser
VIEW IN TELEGRAM
Создаем красивую анимацию на модуле turtle

   from turtle import Screen, Pen
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()

#sandbox

@python_practics
🥱11👍8💩4
Проблемы современных конструкторов чат-ботов

Конструкторы стали популярными инструментами для создания чат-ботов. Но работа с ними зачастую полна проблем. В этой статье мы рассмотрим некоторые из них:

• необходимость программировать;
• ограниченные возможности интеграции;
• низкая точность распознавания речи;
• обучение;
• безопасность.

Подробнее👇

#статьи

@python_practics
👍7
Не надо так 😐

#мемчики

@python_practics
🤣40👍3❤‍🔥1😁1
Python Concurrency with asyncio by Matthew Fowler

Эта книга знакомит с асинхронным, параллельным и многопоточным программированием на практических примерах Python. Трудные для понимания темы параллелизма разбиты на простые блок-схемы, позволяющие легко увидеть, как выполняются ваши задачи. Вы узнаете, как преодолеть ограничения Python с помощью asyncio для ускорения медленных веб-серверов и микросервисов. Вы даже сможете комбинировать asyncio с традиционными методами многопроцессорной обработки для огромного повышения производительности.

Книга в формате pdf👇

#курсы_книги

@python_practics
👍91
This media is not supported in your browser
VIEW IN TELEGRAM
Создаем красивую анимацию на модуле turtle

   import random
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()

#sandbox

@python_practics
🥱8👎4🔥3💩21👍1
Как защитить свой Python-код

Безопасностью кода студентов озадачивают нечасто. Нас знакомят с некоторыми устоявшимися приемами, вроде применения виртуального окружения, но в систему это складывается только во время работы.

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

Подробнее👇

#статьи

@python_practics
👍11
Внимание! - Вопрос!

Что такое подгенератор?

В Python 3 существуют так называемые подгенераторы (subgenerators). Если в функции-генераторе встречается пара ключевых слов yield from, после которых следует объект-генератор, то данный генератор делегирует доступ к подгенератору, пока он не завершится (не закончатся его значения), после чего продолжает своё исполнение.

На самом деле yield является выражением. Оно может принимать значения, которые отправляются в генератор. Если в генератор не отправляются значения, результат данного выражения равен None.

yield from также является выражением. Его результатом является то значение, которое подгенератор возвращает в исключении StopIteration (для этого значение возвращается при помощи ключевого слова return).

#вопросы_из_собеседований
👍172
This media is not supported in your browser
VIEW IN TELEGRAM
Создаем интересную анимацию на модуле turtle

   import turtle
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)

#sandbox

@python_practics
👍19💩5👎31🔥1🥱1
Возможно ли множественное наследование в python?
Anonymous Quiz
91%
Да
9%
Нет
👍20😁1