Что выведет код выше?
Anonymous Quiz
11%
Hello world!
36%
Heooo worod!
19%
"Heooo worod!"
27%
Ошибку
7%
Узнать ответ
⚡️ Что такое
Представим, что вы написали небольшой скрипт, который выводит hello world при запуске. А другой программист захотел импортировать ваш модуль, поскольку там была функция print_hello().
Но вместе с импортом он получил ненужную hello world в терминал. Почему так случилось? Потому что python-код также выполняется во время импорта. Чтобы этого избежать, используют
При импорте
#теория
__name__
Заглянув в большинство скриптов вы можете увидеть строку по типу __name__ == "__main__"
. Многие новички не понимают, зачем её добавлять, если и так всё работает. Представим, что вы написали небольшой скрипт, который выводит hello world при запуске. А другой программист захотел импортировать ваш модуль, поскольку там была функция print_hello().
Но вместе с импортом он получил ненужную hello world в терминал. Почему так случилось? Потому что python-код также выполняется во время импорта. Чтобы этого избежать, используют
__name__
.При импорте
__name__
получает название модуля, а при прямом запуске (python3 script.py
) его значение будет __main__
. Подробнее вы, как обычно, можете почитать тут.#теория
Что вывведет код выше?
Anonymous Quiz
17%
[10, 12, 20]
8%
[1, 2, 4, 6]
30%
[1, 1, 2, 2, 4, 4, 6, 6]
28%
[2, 4, 8, 12]
17%
Узнать ответ
⚡️ Что такое
Продолжаем говорить про импорт модулей. В этот раз разберём, что такое переменная
Думаю, в нескольких ваших скриптах встречается строка по типу
Чтобы не нагружать вашу программу ненужными объектами разработчики вписывают в
Всё элементарно, но чтобы почитать об этом подробнее, можете заглянуть на сайт документации.
#теория
__all__
?Продолжаем говорить про импорт модулей. В этот раз разберём, что такое переменная
__all__
и как её использовать.Думаю, в нескольких ваших скриптах встречается строка по типу
from package import *
, которая импортирует всё из модуля. Но ведь функций/классов может быть намного больше, чем вы думаете.Чтобы не нагружать вашу программу ненужными объектами разработчики вписывают в
__all__
имена доступных типов.Всё элементарно, но чтобы почитать об этом подробнее, можете заглянуть на сайт документации.
#теория
⚡️ Задачка с собеседования | #Medium
Условие:
Вам необходимо "перевернуть" число задом наперёд. На вход идут только целые числа, а знак сохраняется. Вам необходимо придумать самый быстрый вариант
Примеры:
reverse(123) -> 321
reverse(-123) -> -321
reverse(1237568) -> 8657321
reverse(9000000) -> 9
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Вам необходимо "перевернуть" число задом наперёд. На вход идут только целые числа, а знак сохраняется. Вам необходимо придумать самый быстрый вариант
Примеры:
reverse(123) -> 321
reverse(-123) -> -321
reverse(1237568) -> 8657321
reverse(9000000) -> 9
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Добавляем время в программу
Модуль time позволяет замерять время выполнения кода, может заморозить программу, а также позволяет узнать текущее время.
Первую задачу выполняет функция
А вот выводом времени занимается метод
Подробнее почитать о модуле можно на сайте документации.
#миниурок #time
Модуль time позволяет замерять время выполнения кода, может заморозить программу, а также позволяет узнать текущее время.
Первую задачу выполняет функция
time()
, которая возвращает время в секундах. Для заморозки приложения используют команду sleep(seconds)
.А вот выводом времени занимается метод
strftime()
, который выводит структуру, полученную, например, из gmtime()
в определённом формате. Подробнее почитать о модуле можно на сайте документации.
#миниурок #time
⚡️ Что такое
Каждый раз, когда вы запускаете программу, Python, переводит её в байткод и сохраняет в папку
Файлы с расширением .pyc и .pyo — это байткод и оптимизированный байткод. Они создаются заново, если код программы изменился.
#теория
__pycache__
На этот раз, это не переменная, а папка, внутри которой хранятся файлы .pyc и .pyo. Зачем она нужна можно почитать в PEP 3147, а здесь будет краткое объяснение.Каждый раз, когда вы запускаете программу, Python, переводит её в байткод и сохраняет в папку
__pycache__
. Это сделано в целях оптимизации и, чтобы, модули быстрее импортировались.Файлы с расширением .pyc и .pyo — это байткод и оптимизированный байткод. Они создаются заново, если код программы изменился.
#теория
⚡️ Задачка с собеседования | #Medium
Условие:
Вам необходимо проверить, являются ли две строки анаграммами? На вход идут две строки, состоящие из символов английского алфавита.
Примеры:
is_anagram('car', 'tar') -> False
is_anagram('car', 'cart') -> False
is_anagram('anagram', 'nagaram') -> True
is_anagram('beluga', 'begula') -> True
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Вам необходимо проверить, являются ли две строки анаграммами? На вход идут две строки, состоящие из символов английского алфавита.
Примеры:
is_anagram('car', 'tar') -> False
is_anagram('car', 'cart') -> False
is_anagram('anagram', 'nagaram') -> True
is_anagram('beluga', 'begula') -> True
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Математические операции
Если простых математических операций сложения и деления вам недостаточно, то взгляните в сторону модуля math. Там хранится множество мат. функций, которые могут вам пригодиться.
Также там есть множество логарифмических и тригонометрических функций, которые вы можете найти, почитав документацию.
#миниурок #math
Если простых математических операций сложения и деления вам недостаточно, то взгляните в сторону модуля math. Там хранится множество мат. функций, которые могут вам пригодиться.
ceil(x)
, floor(x)
— округляет число x в большую/меньшую сторону.fsum(iterable)
— суммирует все значения в iterable, исключая неточность чисел с плавающей точкой. Лучше это посмотреть на примере выше.isclose(a, b)
— поскольку числа с плавающей точкой имеют неточность, правильнее будет их сравнивать используя этот метод.Также там есть множество логарифмических и тригонометрических функций, которые вы можете найти, почитав документацию.
#миниурок #math
⚡️ Работаем с логами
Для этого в Python существует удобный модуль logging, позволяющий управлять логами в пару строк.
О том, какие уровни важности использовать, вы можете почитать в HOWTO, а подробнее о функционале модуля — в документации.
#миниурок #logging
Для этого в Python существует удобный модуль logging, позволяющий управлять логами в пару строк.
logging.getLogger(name=None)
— возвращает экземпляр логера на основе имени. Может быть полезна при разработке модулей.logging.basicConfig(**kwargs)
— позволяет задать настройки модулю, например, имя файла (filename), формат записи (format), уровень важности (level).debug()
, info()
, warning()
, error()
, critical()
— позволяют записывать информацию в логер на определённом уровне важности.О том, какие уровни важности использовать, вы можете почитать в HOWTO, а подробнее о функционале модуля — в документации.
#миниурок #logging
⚡️ Задачка с собеседования | #Hard
Условие:
Вам необходимо проверить, в правильном ли порядке расставлены {}, (), [], <>. Вместе с ними может идти и другой текст, поэтому вам стоит заняться фильтрацией строки.
Примеры:
valid_bracket("(some_data)")
valid_bracket("() [ww]1{}<>")
valid_bracket("< [ ( { })]>")
valid_bracket("(]")
valid_bracket("([9)]")
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Вам необходимо проверить, в правильном ли порядке расставлены {}, (), [], <>. Вместе с ними может идти и другой текст, поэтому вам стоит заняться фильтрацией строки.
Примеры:
valid_bracket("(some_data)")
valid_bracket("() [ww]1{}<>")
valid_bracket("< [ ( { })]>")
valid_bracket("(]")
valid_bracket("([9)]")
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования