Skip to content

Instantly share code, notes, and snippets.

View pelid's full-sized avatar

Evgeny Evseev pelid

View GitHub Profile
@pelid
pelid / readme.md
Created September 21, 2023 17:54
-

PUBLIC

@pelid
pelid / README.md
Last active March 26, 2020 11:12
Скрипт для копирования кода с GitHub
@pelid
pelid / README.md
Created December 23, 2019 12:42
Test simultaniously write to file from two scripts

Запустить в одной консоли:

python3 test_write.py A

Во второй консоли:

python3 test_write.py B
@pelid
pelid / main.py
Last active June 7, 2019 12:33
Пример использования модуля logging.
import test_b
import logging
logging.basicConfig(level=logging.DEBUG)
test_b.log_something()
@pelid
pelid / animation.py
Last active March 27, 2019 12:30
Асинхронная анимация
import curses
import asyncio
async def blink(canvas, row, column, symbol='*'):
'''Анимация мерцающей звезды.'''
while True:
canvas.addstr(row, column, symbol, curses.A_DIM)
await asyncio.sleep(0)
canvas.addstr(row, column, symbol)
@pelid
pelid / module-card.scss
Created March 11, 2019 18:32
Пример верстки
.module-card {
position: relative;
width: calc(50% - 15px);
padding-top: 36px;
padding-right: 36px;
padding-left: 36px;
padding-bottom: 36px;
background: #fff;
border-radius: 8px;
margin-bottom: 30px;
@pelid
pelid / README.md
Last active March 28, 2019 15:21
Комбинация функций

Комбинация функций

Функция — это маленькая программа. Она выполняет свою работу и возвращает результат: число, строку или другой формат данных, все зависит от функции.

При этом функция может принимать входные данные — аргументы. Благодаря этому работает комбинация двух функций print и capwords:

from string import capwords

print(capwords('петр иванович')) # выведет Петр Иванович
@pelid
pelid / README.md
Last active February 21, 2019 16:15
Объекты и атрибуты

Объекты и атрибуты

Часто можно услышать, что в Python всё является объектом, и это правда. Но что такое объект? И из чего складывается это "всё"?

Когда переменных в коде становится много, их объединяют в группы — объекты. Добраться до переменной, прикрепленной к объекту можно через точку .. Выглядит это похоже на вызов метода. Для сравнения, вызовем метод __len__ и вычислим длину строки:

print('строка это тоже объект'.__len__())  # выведет 22
@pelid
pelid / README.md
Last active February 19, 2019 19:59
Методы в Python

Метод — это как функция, только удобнее

Зачем нужны методы, когда есть функции? В библиотеке Python полно удобных функций, а если их не хватает, то можно установить пакет с PYPI и взять её оттуда. Зачем вводить новую сущность?

У вас есть программа с чат-ботом для Telegram, в ней 200 строк кода. В программе используется функция len(), она вычисляет длину строк. Кроме len в коде встречаются еще три похожие функции, они делаются то же самое, но работают с другими типами данных: списками, словарями и кортежами. В названиях начинается путаница и вместо короткого len вы пишете длинное get_str_len, get_dict_len и подобные.

На функции len мучения не заканчиваются. Осталось разобраться с тремя версиями add() и с десятком str(). Добро пожаловать в мир без методов.

Метод vs Функция

@pelid
pelid / Tuple и распаковка в Python.md
Last active February 20, 2019 15:21
Tuple и распаковка в Python

Упаковка данных в Python — кортеж tuple

Представьте себя функцией. Да, это не просто, и все же...

Вас зовут get_contacts и вы умеете находить контакты человека по email-адресу: его адрес, имя и номер телефона. Вы не прочь поделиться информацией с другими, но Python вам это запрещает. Нельзя возвращать так много данных разом, результат у функции может быть только один. Вы можете выбрать что-то одно, самое важное: адрес, имя, или телефон человека. Или можете проявить изобретательность и упаковать все свои данные в одну переменную.

Как упаковать

Для функции get_contacts(email) доступны несколько способов упаковки данных в более сложную структуру: словарь dict(), кортеж tuple() и еще несколько других. Рассмотрим подробнее последний вариант — tuple.