5480
Python - обучающие материалы, полезные советы и статьи. Админ, сотрудничество, реклама: @seniorFrontPromo, @maria_seniorfront Купить рекламу: https://telega.in/c/python_practics
Получить размер объекта в байтах
Этот скрипт используется для измерения количества памяти, потребляемой любым объектом в Python: переменной, функцией, классом.
Обратите внимание, что учитывается только та память, которую занимает сам объект, а не те объекты, на которые он, возможно, ссылается. Размер памяти возвращается в байтах.
#полезные_сниппеты
@python_practics
Внимание! - Вопрос!
Что такое __new__? И чем он отличается от __init__? В какой последовательности они выполняются?
Основное различие между этими двумя методами состоит в том, что __new__ обрабатывает создание объекта, а __init__ обрабатывает его инициализацию.
__new__ вызывается автоматически при вызове имени класса (при создании экземпляра), тогда как __init__ вызывается каждый раз, когда экземпляр класса возвращается __new__, передавая возвращаемый экземпляр в __init__ в качестве параметра self, поэтому даже если вы сохранили экземпляр где-нибудь глобально/статически и возвращали его каждый раз из __new__, для него все-равно будет каждый раз вызываться __init__.
Из вышесказанного вытекает что сначала вызывается __new__, а потом __init__.
#вопросы_из_собеседований
@python_practics
Создаем красивую анимацию на модуле turtle
from turtle import*#sandbox
import colorsys
title("Python Turtle Art")
bgcolor("black")
tracer(90)
pensize(2)
h = 0.3
for i in range(1100):
c = colorsys.hsv_to_rgb(h,1,1)
h += 0.005
color(c)
penup()
goto(0, 0)
circle(12, 50)
forward(20)
pendown()
right(360)
fillcolor(c)
begin_fill()
circle(10, 320)
end_fill()
backward(i/4)
right(6)
done()
Python, однако, не единственный, кто так выделился
@python_practics
Создаем черепашьи гонки на модуле turtle
Полный код можно посмотреть по ссылке👇
#sandbox
@python_practics
Как защитить свой Python-код
Безопасностью кода студентов озадачивают нечасто. Нас знакомят с некоторыми устоявшимися приемами, вроде применения виртуального окружения, но в систему это складывается только во время работы.
Чтобы ускорить процесс и избавить вас от возможных проблем на старте, автор статьи собрал топ способов сделать код защищеннее от двух видов воздействия: злонамеренного (например, использование уязвимостей сайта хакерами) и непреднамеренного (ошибки разработчика, приводящей к падению прода).
Подробнее👇
#статьи
@python_practics
Создаем красивое деревце на модуле turtle
import turtle as tu#sandbox
import random # import random module
my_turtle = tu.Turtle()
my_turtle.screen.bgcolor('red')
my_turtle.left(90)
my_turtle.speed(20)
my_turtle.color('green')
my_turtle.pensize(5)
my_turtle.screen.title("My Fractal Tree")
def draw_fractal(blen):
# add these two lines
sfcolor = ["white", "blue", "purple", "grey", "magenta"]
my_turtle.color(random.choice(sfcolor))
if(blen<10):
return
else:
my_turtle.forward(blen)
my_turtle.left(30)
draw_fractal(3*blen/4)
my_turtle.right(60)
draw_fractal(3*blen/4)
my_turtle.left(30)
my_turtle.backward(blen)
draw_fractal(80)
my_turtle = tu.done()
Создаем красивую анимацию на модуле turtle
turtle import Turtle, Screen#sandbox
def draw_square(some_turtle):
for _ in range(4):
some_turtle.forward(200)
some_turtle.right(90)
def draw_art():
# Turtle Brad
brad = Turtle(shape="turtle")
brad.color("yellow")
brad.pensize(2)
brad.speed("normal") # 6/normal is the default so don't need to do it
for _ in range(36):
draw_square(brad)
brad.right(10)
# Turtle Angie
angie = Turtle(shape="turtle")
angie.color("blue")
angie.pensize(2)
angie.speed(5) # slightly slower than brad
size = 1
for _ in range(300):
angie.forward(size)
angie.right(91)
size += 1
window = Screen()
window.bgcolor("black")
draw_art()
window.exitonclick()
Напишите функцию, которая принимает массив чисел и возвращает сумму чисел.
Числа могут быть отрицательными или нецелыми. Если массив не содержит чисел, вы должны вернуть 0.
Примеры:Input: [1, 5.2, 4, 0, -1]#задачник
Output: 9.2
Input: []
Output: 0
Input: [-2.398]
Output: -2.398
@python_practics
Сжать список
Этот скрипт удаляет «ложные» значения (False, None, 0 и пустую строку ' ') из списка. Используется встроенная функция filter(): c параметром None на первом месте она удалит из списка lst все значения, которые не вернут True по умолчанию.
#полезные_сниппеты
@python_practics
Внимание! - Вопрос!
Что такое генераторная функция?
Генераторная функция - функция, в теле которой встречается ключевое слово yield. Будучи вызвана, такая функция возвращает объект-генератор (generator object) (итератор генератора (generator iterator)).
#вопросы_из_собеседований
Создаем красивую анимацию на модуле turtle
import turtle#sandbox Читать полностью…
import colorsys
t = turtle.Turtle()
s = turtle.Screen().bgcolor('black')
t.speed(0)
n = 70
h = 0
for i in range (360):
c = colorsys.hsv_to_rgb(h,1,0.8)
h+= 1/n
t.color(c)
t.left(1)
t.fd(1)
for j in range (2):
t.left(2)
t.circle(100)
Создаем красивую анимацию на модуле turtle
from turtle import*#sandbox
title("Python Turtle Art")
bgcolor("black")
speed(0)
pensize(3)
for i in range(9):
color("yellow")
left(60)
circle(-18, 200)
color("yellow", "red")
r = 100
for j in range(12):
begin_fill()
circle(r-11*j, 90)
end_fill()
left(180)
penup()
goto(0,0)
pendown()
hideturtle()
done()
10 лучших практик логирования в Python
По мере того как приложение собирает все больше данных, правильное ведение журналов становится решающим фактором для быстрого и эффективного понимания общей функциональности. Это позволяет устранять проблемы до того, как они повлияют на конечных пользователей.
В этой статье мы рассмотрим лучшие практики логирования в Python. Следуя им, вы сможете обеспечить информативность, практичность и масштабируемость генерируемых логов.
Подробнее по ссылке👇
#статьи
@python_practics
Python: Искусственный интеллект, большие данные и облачные вычисления
В вашем распоряжении более пятисот реальных задач — от фрагментов до 40 больших сценариев и примеров с полноценной реализацией. IPython с Jupyter Notebooks позволят быстро освоить современные идиомы программирования Python. Главы 1–5 и фрагменты глав 6–7 сделают понятными примеры решения задач искусственного интеллекта из глав 11–16. Вы познакомитесь с обработкой естественного языка, анализом эмоций в Twitter, когнитивными вычислениями IBM Watson, машинным обучением с учителем в задачах классификации и регрессии, машинным обучением без учителя в задачах кластеризации, распознавания образов с глубоким обучением и сверточными нейронными сетями, рекуррентными нейронными сетями, большими данными с Hadoop, Spark и NoSQL, IoT и многим другим.
Книга в формате pdf👇
#курсы_книги
@python_practics
Главная проблема новичков в асинхронном программировании на Python
Асинхронность в Python должен знать почти каждый разработчик на Python, который хочет быть вовлечён в коммерческую разработку. Как минимум это касается веб-программирования, где очень важна скорость отклика приложения (сервиса). Вообще, асинхронность в Python - это отдельный мир, сильно отличающийся от синхронного Python. Наличие одного событийного цикла уже вносит много изменений в привычный порядок вещей. Существует много интересных и одновременно спорных вещей, суть которых скрыт в самой концепции асинхронности.
В этой статье автор объясняет, в чем проблема асинхронного программирования на Python, и как она касается синтаксиса высокоуровневой концепции async и await.
Подробнее по ссылке👇
#статьи
@python_practics
SciPy
С увеличением опыта специалиста будут усложняться и задачи: придётся прибегать к линейной алгебре, интерполяции, интеграции, статистике и другим сложным математическим операциям. В этом специалисту по анализу данных помогает библиотека SciPy, которая построена на базе массивов и функций NumPy.
Особенности SciPy:
● Быстрое и надёжное выполнение сложных операций благодаря оптимизации.
● Широкий набор функций и инструментов для разнообразных операций.
● Содержит множество подпакетов для конкретных задач, например преобразования Фурье.
С помощью SciPy можно:
● Проводить сложные математические вычисления: например, решать дифференциальные уравнения или находить численное решение интегралов.
● Обрабатывать изображения.
● Работать с генетическими алгоритмами.
● Проводить сложные инженерные вычисления.
Подробнее👇
#фреймворки_библиотеки
@python_practics
Алгоритмы Data Science и их практическая реализация на Python
Рассмотрен полный каскад разработки моделей искусственного интеллекта. Проанализирована область Data Science, из которой выделены все необходимые для прикладной сферы алгоритмы машинного обучения, расположенные по уровню возрастания сложности работы с ними.
Для студентов, изучающих информационные технологии. Может быть полезно как начинающим программистам, так и специалистам высокого уровня.
Книга в формате pdf👇
#курсы_книги
@python_practics
10 фишек Python, которые поднимут ваш скилл на новый уровень. Часть 2
В данной статье автор продолжает делиться некоторыми полезными функциями, которые помогут вам улучшить ваш код.
Форматирование многострочного выводаname1 = 'Владимир'Частичное совпадение пользовательского ввода
name2 = 'Илья'
print(f'{name1:10}: тимлид')
print(f'{name2:10}: фулстэк-разработчик')def do_this():Словарное включение
print('Пойди туда -- не знаю куда')
def do_that():
print('Принеси то - не знаю что')
match input('Что сделать? '):
case 'пойди':
do_this()
case 'принеси':
do_that()
case _:
print('Неверный ввод. Попробуйте еще раз.')
... Что сделать? пойди
... Пойди туда -- не знаю куда
[Повторный запуск программы]
Что сделать? поспи
... Неверный ввод. Попробуйте еще раз. names = [Продолжение👇
'Daniel',
'Mike',
'William'
newNames = [x for x in names if "a" in x] # Выберет имена, где есть “а”
#статьи
Web2Py
Фреймворк Web2py изначально задумывался как учебный инструмент с акцентом на юзабилити и простоте начала использования. Сама же архитектура фреймворка разработана по аналогии с такими решениями, как Ruby on Rails и Django.
Весь процесс разработки, отладки, тестирования, а также администрирование удалённой базы данных можно организовать без каких-либо сторонних инструментов через собственный веб-интерфейс, который в свою очередь тоже является web2py-приложением.
Кроме того, каждое приложение обеспечено автоматически сгенерированным интерфейсом администрирования по типу Django.
Ключевые особенности Web2py:
• интегрированная веб-среда разработки;
• встроенные компоненты для всех основных функций;
• механизмы аутентификации и контроля доступа по ролям;
• поддержка jQuery для Ajax- и UI-эффектов;
• поддержка интернационализации;
• автоматическое журналирование ошибок вместе с контекстом.
Про этот и другие фреймворки вы можете прочитать по ссылке ниже👇
#фреймворки_библиотеки
Создаем красивую анимацию на модуле turtleimport turtle#sandbox
def draw_square(some_turtle):
for i in range (1,5):
some_turtle.forward(200)
some_turtle.right(90)
def draw_art():
window = turtle.Screen()
window.bgcolor("black")
#Turtle Brad
brad = turtle.Turtle()
brad.shape("turtle")
brad.color("yellow")
brad.speed(6)
brad.pensize(2)
for i in range(1,37):
draw_square(brad)
brad.right(10)
#Turtle Angie
angie = turtle.Screen()
angie.shape("turtle")
angie.color("blue")
angie.speed(5)
angie.pensize(2)
size=1
while (True):
angie.forward(size)
angie.right(91)
size = size + 1
window.exitonclick()
draw_art()
@python_practics
Создаем красивую анимацию на модуле turtle
#sandbox
@python_practics
10 фишек Python, которые поднимут ваш скилл на новый уровень. Часть 1
В данной статье автор поделился некоторыми полезными функциями, которые помогут вам улучшить ваш код.
Генераторы списков squares = [x**2 for x in range(1, 11)]Перечисления for index, value in enumerate(my_list):Лямбда-функции
print(f"{index}: {value}")
square = lambda x: x**2Множественное назначение
my_tuple = ("Алиса", 30) # Наш кортеж
name, age = my_tuple # Непосредственно распаковка
print(name) # Выведет 'Алиса'
Извлечение части спискаmy_list[1:4] # returns the sublist from index 1 (inclusive) to 4 (exclusive)Включение
squares = {x: x**2 for x in range(1, 11)}
«Моржовый» операторn = 0F-строки
while (n := n + 1) < 10:
print(n)
name = "Alice"any() и all()
age = 30
print(f"My name is {name} and I am {age} years old.")
nums = [1, 3, 5, 7, 9]Подробнее👇
print(any(x % 2 == 0 for x in nums)) # False
print(all(x % 2 != 0 for x in nums)) # True