⚡️ Только ключевые и только позиционные аргументы
Давайте для начала разберёмся. Позиционные аргументы — параметры, которые задаются только в определённом порядке. Они не поддерживают конструкцию типа key = value.
Ключевые аргументы — те, что получают значения через ключ. Они работают только с конструкцией key = value.
Для того, что бы задать порядок позиционных аргументов пишут /. Всё, что находится до этого символа будет зависеть от позиции. Ключевые же используют *, всё что после неё будет задавать только через ключ.
Также вы можете смешивать позиционные, ключевые и обычные аргументы внутри одной функции.
Больше примеров можно найти на сайте документации.
#теория
Давайте для начала разберёмся. Позиционные аргументы — параметры, которые задаются только в определённом порядке. Они не поддерживают конструкцию типа key = value.
Ключевые аргументы — те, что получают значения через ключ. Они работают только с конструкцией key = value.
Для того, что бы задать порядок позиционных аргументов пишут /. Всё, что находится до этого символа будет зависеть от позиции. Ключевые же используют *, всё что после неё будет задавать только через ключ.
Также вы можете смешивать позиционные, ключевые и обычные аргументы внутри одной функции.
Больше примеров можно найти на сайте документации.
#теория
⚡️ Задачка с собеседования | #Easy
Условие:
Ваша задача — написать функцию, которая будет находить отличия между первым и вторым списком
Пример:
#Задачка_с_собеседования
Условие:
Ваша задача — написать функцию, которая будет находить отличия между первым и вторым списком
Пример:
list_diff([], []) -> []
list_diff([], [1, 2]) -> []
list_diff([1, 2], [2]) -> [1]
list_diff([6, 4, 3], [7]) -> [6, 4, 3]
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇#Задачка_с_собеседования
⚡️ Разница между 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