⚡️ Разница между global и nonlocal
global — объявление, которые говорит о том, что перечисленные идентификаторы стоит воспринимать как глобальные. То есть, все изменения внутри функции будут влиять на внешнюю переменную.
nonlocal — оператор, уведомляющий среду, что стоит работать не с локальной переменной, а уровнем выше.
То есть, если вы создадите функцию внутри функции и используете nonlocal, то будет использоваться не глобальная переменная, а та, что в функции-родителя (смотреть method2).
Стоит отметить, что в отличии от global, nonlocal требует, что бы переменная уже была определена.
Ну и как всегда — документация :)
#теория #операторы
global — объявление, которые говорит о том, что перечисленные идентификаторы стоит воспринимать как глобальные. То есть, все изменения внутри функции будут влиять на внешнюю переменную.
nonlocal — оператор, уведомляющий среду, что стоит работать не с локальной переменной, а уровнем выше.
То есть, если вы создадите функцию внутри функции и используете nonlocal, то будет использоваться не глобальная переменная, а та, что в функции-родителя (смотреть method2).
Стоит отметить, что в отличии от global, nonlocal требует, что бы переменная уже была определена.
Ну и как всегда — документация :)
#теория #операторы
⚡️ Упрощаем поиск багов
Время от времени стоит проверять, правильно ли выполняет функция свою работу и те ли данные она получила. В этом случае нам может помочь assert.
Оператор принимает одну булевскую переменную, которая, если будет равняться False, выбросит исключение AssertionError.
А чтобы не вводить других программистов в заблуждение, можно написать небольшой комментарий к ошибке в виде второго аргумента.
#теория #assert
Время от времени стоит проверять, правильно ли выполняет функция свою работу и те ли данные она получила. В этом случае нам может помочь assert.
Оператор принимает одну булевскую переменную, которая, если будет равняться False, выбросит исключение AssertionError.
А чтобы не вводить других программистов в заблуждение, можно написать небольшой комментарий к ошибке в виде второго аргумента.
#теория #assert
⚡️ Задачка с собеседования | #Easy
Условие:
Ваша задача — написать функцию, которая будет переводить CamelCase и Lower CamelCase в Lowercase с подчеркиванием.
Пример:
#Задачка_с_собеседования
Условие:
Ваша задача — написать функцию, которая будет переводить CamelCase и Lower CamelCase в Lowercase с подчеркиванием.
Пример:
-> some_class_name📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
change_to_lower("variableName") -> variable_name
change_to_lower("test") -> test
#Задачка_с_собеседования
⚡️ Работаем с комплексными числами
Встроенный тип complex позволяет преобразовать строку в комплексное число. Для этого достаточно написать некое значение и к нему добавить — это будет комплексное число.
Он принимает в себя строку или real и imag числа. Если же imag не указан, то по умолчанию будет 0.
Для обработки вызывает __complex__(), а если метод не определён, то используется __float__() или __index__().
Действия комплексных чисел с действительными будет возвращать тот же класс — complex.
Также он имеет атрибуты real и image, которые и отвечают за действительное и комплексное числа.
#теория #complex
Встроенный тип complex позволяет преобразовать строку в комплексное число. Для этого достаточно написать некое значение и к нему добавить — это будет комплексное число.
Он принимает в себя строку или real и imag числа. Если же imag не указан, то по умолчанию будет 0.
Для обработки вызывает __complex__(), а если метод не определён, то используется __float__() или __index__().
Действия комплексных чисел с действительными будет возвращать тот же класс — complex.
Также он имеет атрибуты real и image, которые и отвечают за действительное и комплексное числа.
#теория #complex
⚡️ Задачка с собеседования | #Medium
Условие:
Ваша задача — написать функцию, которая будет превращать список из нулей и единиц (битов) в целое число.
Пример:
#Задачка_с_собеседования
Условие:
Ваша задача — написать функцию, которая будет превращать список из нулей и единиц (битов) в целое число.
Пример:
list_to_int([0, 0, 0, 1]) -> 1📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
list_to_int([0, 1, 0, 1]) -> 5
list_to_int([1, 1, 1, 1, 1]) -> 31
list_to_int([1, 1, 1, 1, 0]) -> 30
list_to_int([1 for _ in range(16)]) -> 65535
#Задачка_с_собеседования
⚡️ Загружаем файлы с сервера
Воспользуемся wget — это небольшая высокоуровневая библиотека, которая загружает файлы из URL-адреса. Это единственное, что она умеет, так что вы не запутаетесь.
Если вам необходимо настроить запрос, то лучше воспользуйтесь requests.
Установка:
Если же вы не желаете писать скрипт, то просто воспользуйтесь ею как модулем. Например
Воспользуемся wget — это небольшая высокоуровневая библиотека, которая загружает файлы из URL-адреса. Это единственное, что она умеет, так что вы не запутаетесь.
Если вам необходимо настроить запрос, то лучше воспользуйтесь requests.
Установка:
pip install wget
Его метод download скачивает файл, отображает ползунок загрузки и возвращает имя файла. Путь вывода вы можете изменить с помощью аргумента out.Если же вы не желаете писать скрипт, то просто воспользуйтесь ею как модулем. Например
python3 -m wget <link>
#миниурок #wgetЧто выведет код выше?
Anonymous Quiz
12%
(1, 2, 3)
21%
[1, 2, 3]
11%
1 2 3
19%
1 2
20%
Ошибку
17%
Узнать ответ
⚡️ Работаем с csv файлами
В этом нам поможет предустановленный модуль — csv.
writer и reader позволяет работать с текстовыми данными напрямую, оставляя обработку за программистом.
reader — возвращает итерируемый объект, так что для получения данных достаточно по нему пройтись, как по списку.
writer же возвращает класс и для записи требует writerow.
Если вы желаете работать с обработанным файлом, то воспользуйтесь DictWriter и DictReader, которые преобразуют данные в список.
#миниурок #csv
В этом нам поможет предустановленный модуль — csv.
writer и reader позволяет работать с текстовыми данными напрямую, оставляя обработку за программистом.
reader — возвращает итерируемый объект, так что для получения данных достаточно по нему пройтись, как по списку.
writer же возвращает класс и для записи требует writerow.
Если вы желаете работать с обработанным файлом, то воспользуйтесь DictWriter и DictReader, которые преобразуют данные в список.
#миниурок #csv
⚡️ Работаем с временем
arrow — модуль, позволяющий создавать, редактировать, выводить, конвертировать даты. Причины, по которым её лучше использовать вместо встроенных классов, описаны в документации.
Установка:
• Необходимо узнать время? Пропишите utcnow.
• Желаете внести какие-либо изменения? Тут поможет метод класса — shift.
• Перевести в другую временную зону? Воспользуйтесь to.
• format переводит класс в читаемую строку, также принимает формат вывода в виде строки.
• humanize — возвращает строку.
#миниурок #arrow #datetime
arrow — модуль, позволяющий создавать, редактировать, выводить, конвертировать даты. Причины, по которым её лучше использовать вместо встроенных классов, описаны в документации.
Установка:
pip install -U arrow
• Для перевода строки в класс Arrow воспользуйтесь методом модуля — get.• Необходимо узнать время? Пропишите utcnow.
• Желаете внести какие-либо изменения? Тут поможет метод класса — shift.
• Перевести в другую временную зону? Воспользуйтесь to.
• format переводит класс в читаемую строку, также принимает формат вывода в виде строки.
• humanize — возвращает строку.
#миниурок #arrow #datetime
⚡️ Задачка с собеседования | #Medium
Условие:
Ваша задача — написать функцию, которая будет проверять, делится ли число на два. Стоит отметить, что использовать операцию / и % нельзя. На вход будет идти и отрицательное и положительное число
Пример:
is_even(5) # False
is_even(-4) # True
is_even(-3) # False
Подсказка: -1 должно вернуть False, 0 — True
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Ваша задача — написать функцию, которая будет проверять, делится ли число на два. Стоит отметить, что использовать операцию / и % нельзя. На вход будет идти и отрицательное и положительное число
Пример:
is_even(5) # False
is_even(-4) # True
is_even(-3) # False
Подсказка: -1 должно вернуть False, 0 — True
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования