⚡️ Задачка с собеседования | #Easy
Условие:
Ваша задача — найти суму всех чисел, перемноженных на их индекс.
Пример:
#Задачка_с_собеседования
Условие:
Ваша задача — найти суму всех чисел, перемноженных на их индекс.
Пример:
sum_mult_index([1,2,3,4]) -> 20
sum_mult_index([11,22,55,33,44]) -> 407
sum_mult_index([-1, 0, -8, 11]) -> 17
sum_mult_index([0, 0, 0, 0, 0]) -> 0
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇#Задачка_с_собеседования
⚡️ Переопределяем методы взаимодействия объектов
Знаете ли вы, что сложение, вычитание и так далее — это не заранее написанные функции, а просто методы класса?
Это значит, что их можно переопределить и задать своё поведение.
Отличным примеров является ранее упомянутый pathlib, в котором мы изменили действия деления.
На фотографии выше мы переопределяем __add__
В одном посте невозможно описать все действия, поэтому, как обычно, оставляем вам ссылку на сайт документации ;)
| P.S: Пост о dataclass был тут.
#миниурок #pathlib
Знаете ли вы, что сложение, вычитание и так далее — это не заранее написанные функции, а просто методы класса?
Это значит, что их можно переопределить и задать своё поведение.
Отличным примеров является ранее упомянутый pathlib, в котором мы изменили действия деления.
На фотографии выше мы переопределяем __add__
и
__sub__, которые отвечают за сложение и вычитание.В одном посте невозможно описать все действия, поэтому, как обычно, оставляем вам ссылку на сайт документации ;)
| P.S: Пост о dataclass был тут.
#миниурок #pathlib
Что выведет этот код?
Anonymous Quiz
22%
(1, 2, 4)
19%
(1, 2)
5%
(1, 2, 3)
43%
Ошибку
10%
Узнать ответ
⚡️ Модуль __future__
Желаете запустить новый скрипт на старой версии python? Переписывать — долго и скучно. Лучше воспользуйтесь модулем __future__,
Он хранит в себе реализации будущих компонентов, например print и division.
В качестве пасхалки, вы также можете можете импортировать фигурные скобочки, как в си подобных языках с помощью
Если вы хотите изучить это более подробно — добро пожаловать на сайт документации ;)
#миниурок #future
Желаете запустить новый скрипт на старой версии python? Переписывать — долго и скучно. Лучше воспользуйтесь модулем __future__,
Он хранит в себе реализации будущих компонентов, например print и division.
В качестве пасхалки, вы также можете можете импортировать фигурные скобочки, как в си подобных языках с помощью
from __future__ import braces
. Но это вызовет исключение: SyntaxError: not a chanceЕсли вы хотите изучить это более подробно — добро пожаловать на сайт документации ;)
#миниурок #future
⚡️ Задачка с собеседования | #Easy
Условие:
Найти «счастливый» ip. Он считается счастливым, если сумма двух байтов с левой стороны равняются сумме двух байтов с правой стороны.
На вход функции всегда идёт строка с ipv4 адресом.
Пример:
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Найти «счастливый» ip. Он считается счастливым, если сумма двух байтов с левой стороны равняются сумме двух байтов с правой стороны.
На вход функции всегда идёт строка с ipv4 адресом.
Пример:
is_happy_ip("255.255.255.255") -> True
is_happy_ip("0.0.0.1") -> False
is_happy_ip("101.78.170.9") -> True
P.S. 1 байт - число от 0 до 255📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Скрытые фишки функции open
open — это функция, которая позволяет работать с файлами. Но не многие знают, что она использует разные классы из модуля io.
• TextIOWrapper — реализует TextIOBase, используется для работы с строковыми объектами внутри файла. Он определяет метод encoding, переменные errors, newlines etc.
• Buffered(Reader/Writer) — реализует BufferedIOBase, используется для работы с двоичными данными. Он определяет readinto, readinto1, flush и write для writer.
• TextIOBase и BufferedIOBase являются наследниками IOBase и реализуют close, readline, seek, и т.д.
Подробнее — в документации документации
#миниурок #функции #io
open — это функция, которая позволяет работать с файлами. Но не многие знают, что она использует разные классы из модуля io.
• TextIOWrapper — реализует TextIOBase, используется для работы с строковыми объектами внутри файла. Он определяет метод encoding, переменные errors, newlines etc.
• Buffered(Reader/Writer) — реализует BufferedIOBase, используется для работы с двоичными данными. Он определяет readinto, readinto1, flush и write для writer.
• TextIOBase и BufferedIOBase являются наследниками IOBase и реализуют close, readline, seek, и т.д.
Подробнее — в документации документации
#миниурок #функции #io
Что выведет этот код?
Anonymous Quiz
11%
0
35%
{"foo", "val", "bar"}
23%
{"bar", "foo}
18%
Ошибку
13%
Узнать ответ
⚡️ Работаем с временными файлами
Бывают такие ситуации, когда держать информацию в оперативной памяти не желательно или вообще невозможно. Модуль tempfile может справиться с этой задачей.
• TemporaryFile() — создаёт временный файл и позволяет контролировать его, как обычный битовый поток. По умолчанию, режим работы — w+b (чтение, запись, битовый файл).
• TemporaryDirectory() — создаёт временную директорию. Возвращает путь к этой самой паке в виде строки.
• mkstemp() — создаёт файл и накладывает управление им на вас. Возвращает кортеж из дескриптора уровня ОС и пути. mkdtemp() выполняет тоже самое, только работает с папками
• gettempdir() — возвращает путь к папке со всеми временными директориями и файлами
По окончанию работы программы TemporaryFile и TemporaryDirectory автоматически удаляються.
#миниурок #tempfile
Бывают такие ситуации, когда держать информацию в оперативной памяти не желательно или вообще невозможно. Модуль tempfile может справиться с этой задачей.
• TemporaryFile() — создаёт временный файл и позволяет контролировать его, как обычный битовый поток. По умолчанию, режим работы — w+b (чтение, запись, битовый файл).
• TemporaryDirectory() — создаёт временную директорию. Возвращает путь к этой самой паке в виде строки.
• mkstemp() — создаёт файл и накладывает управление им на вас. Возвращает кортеж из дескриптора уровня ОС и пути. mkdtemp() выполняет тоже самое, только работает с папками
• gettempdir() — возвращает путь к папке со всеми временными директориями и файлами
По окончанию работы программы TemporaryFile и TemporaryDirectory автоматически удаляються.
#миниурок #tempfile
⚡️ Сравниваем файлы
Конечно, можно использовать обычный open, считывать данные и потом их сравнивать. Но зачем, когда есть модуль filecmp, который имеет больший функционал.
cmp(file1, file2) — сравнивает два файла. Возвращает true, если они равны, иначе — false.
dircmp(dir1, dir2) — класс, который сравнивает файлы внутри папок. Хранит внутри себя всю информацию о работе. Например файлы, которые невозможно отсканировать или одинаковые/разные объекты.
Подробнее, как всегда — на сайте документации.
#миниурок #filecmp
Конечно, можно использовать обычный open, считывать данные и потом их сравнивать. Но зачем, когда есть модуль filecmp, который имеет больший функционал.
cmp(file1, file2) — сравнивает два файла. Возвращает true, если они равны, иначе — false.
dircmp(dir1, dir2) — класс, который сравнивает файлы внутри папок. Хранит внутри себя всю информацию о работе. Например файлы, которые невозможно отсканировать или одинаковые/разные объекты.
Подробнее, как всегда — на сайте документации.
#миниурок #filecmp
⚡️ Работаем с командной строкой
В этом нам поможет модуль subprocess — он позволяет создавать новые процессы, подключать вывод и работать с кодом возврата.
Пройдемся по его методам:
run(args) — вызывает команду, переданную в args. Ожидает её выполнения и возвращает CompletedProcess. Если возникает ошибка, то вызывает CalledProcessError.
Popen(args) — класс, который вызывает args команду в виде нового процесса.
STDOUT — особая переменная, которая говорит, что данные должны идти на вывод в ту же консоль.
DEVNULL — особая переменная, которая избавляется от всех входящих данных.
#миниурок #subprocess
В этом нам поможет модуль subprocess — он позволяет создавать новые процессы, подключать вывод и работать с кодом возврата.
Пройдемся по его методам:
run(args) — вызывает команду, переданную в args. Ожидает её выполнения и возвращает CompletedProcess. Если возникает ошибка, то вызывает CalledProcessError.
Popen(args) — класс, который вызывает args команду в виде нового процесса.
STDOUT — особая переменная, которая говорит, что данные должны идти на вывод в ту же консоль.
DEVNULL — особая переменная, которая избавляется от всех входящих данных.
#миниурок #subprocess
⚡️ Узнаём и используем информацию о файлах
os.stat возвращает информацию о файле в виде stat_result. Но есть одно но — с ней тяжело работать. Тут на помощь приходит модуль stat.
S_ISDIR(mode) — позволяет узнать, является ли объект папкой (mode — это stat_result.st_mode).
S_ISREG(mode) — позволяет узнать, является ли объект обычным файлом.
filemode(mode) — возвращает режим в виде прав доступа. Например: -rwxrwxrwx
Здесь собраны самые используемые методы, но подробнее о них можно узнать на сайте документации.
#миниурок #os #stat
os.stat возвращает информацию о файле в виде stat_result. Но есть одно но — с ней тяжело работать. Тут на помощь приходит модуль stat.
S_ISDIR(mode) — позволяет узнать, является ли объект папкой (mode — это stat_result.st_mode).
S_ISREG(mode) — позволяет узнать, является ли объект обычным файлом.
filemode(mode) — возвращает режим в виде прав доступа. Например: -rwxrwxrwx
Здесь собраны самые используемые методы, но подробнее о них можно узнать на сайте документации.
#миниурок #os #stat
⚡️ Задачка с собеседования | #Medium
Условие:
Ваша задача — написать метод, который будет позиционировать строку. Он принимает саму строку, а после align со значениями left, center или right (по умолчанию - left) и длину возвращаемой строки.
Примеры — на изображении выше.
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Ваша задача — написать метод, который будет позиционировать строку. Он принимает саму строку, а после align со значениями left, center или right (по умолчанию - left) и длину возвращаемой строки.
Примеры — на изображении выше.
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования