⚡️ Калькулятор в 1 строчке
Вот та самая строчка —
Да, eval() не может что-то присваивать переменным: она лишь использует их.
С её помощью можно, например, принимать словари и списки строкой, а можно — просто использовать её как калькулятор.
Вот та самая строчка —
print(eval(input()))
eval() создана для того, чтобы выполнять выражения и функции, при этом возвращая результат.Да, eval() не может что-то присваивать переменным: она лишь использует их.
С её помощью можно, например, принимать словари и списки строкой, а можно — просто использовать её как калькулятор.
⚡️ Улучшенный ввод
Вывод в одну строку с помощью функции
Поэтому, стоит воспользоваться встроенным модулем
Вот некоторые параметры, которые принимает
width=80 — ширина экрана печати
object — объект форматирования
compact=False — компактное форматирование
depth=None — уровни вложенности
stream=None — форматированный вывод
При желании, вы можете переопределить стандартную функцию print на более удобную pprint, написав
Вывод в одну строку с помощью функции
print
не всегда подходит под решаемую задачу.Поэтому, стоит воспользоваться встроенным модулем
pprint
: каждое новое вложение сопровождается дополнительным отступом, так что вывод всегда выглядит приятно и понятно.Вот некоторые параметры, которые принимает
pprint.pprint
:width=80 — ширина экрана печати
object — объект форматирования
compact=False — компактное форматирование
depth=None — уровни вложенности
stream=None — форматированный вывод
При желании, вы можете переопределить стандартную функцию print на более удобную pprint, написав
print = pprint.pprint
.⚡️ Автоматическое перемещение файлов
Пример программы, которая определяет расширение файла в папке и, в случае его совпадения с указанным, перемещает его в другую папку.
Это очень полезно, если нужно, к примеру, сортировать изображения, видео, книги и другие файлы по отдельности.
Все эти файлы можно сохранять в одной папке, заранее указав её путь в скрипте.
Программа, в свою очередь, будет автоматически проверять её содержимое с интервалом в 10 миллисекунд.
💾 Скачать пример кода
Пример программы, которая определяет расширение файла в папке и, в случае его совпадения с указанным, перемещает его в другую папку.
Это очень полезно, если нужно, к примеру, сортировать изображения, видео, книги и другие файлы по отдельности.
Все эти файлы можно сохранять в одной папке, заранее указав её путь в скрипте.
Программа, в свою очередь, будет автоматически проверять её содержимое с интервалом в 10 миллисекунд.
💾 Скачать пример кода
⚡️ Принцип "KISS"
Принцип "KISS" расшифровывается как "Keep It Simple, Stupid", что можно перевести как "Придерживайся простоты, идиот".
Хороший программист должен писать не только рабочий, но и качественный код, чтобы его было легче поддерживать и ему, и его коллегам.
Это не значит, что вам нельзя использовать, например, побитовые операции или регулярки, — просто их следует избегать там, где можно обойтись без них.
Чем проще написан код — тем лучше.
Принцип "KISS" расшифровывается как "Keep It Simple, Stupid", что можно перевести как "Придерживайся простоты, идиот".
Хороший программист должен писать не только рабочий, но и качественный код, чтобы его было легче поддерживать и ему, и его коллегам.
Это не значит, что вам нельзя использовать, например, побитовые операции или регулярки, — просто их следует избегать там, где можно обойтись без них.
Чем проще написан код — тем лучше.
⚡️ Функции all и any
Эти функции помогут вам узнать, есть ли в объекте определённые значения, или нет.
Так, all возвращает значение True, если все объекты равны True или, по крайней мере, соответствуют заданному условию.
Функция any, в свою очередь, делает то же самое, но возвращает True даже в тех случаях, когда какие-то из объектов не соответствуют условию.
Другими словами, если хотя бы один из них равен True, когда все остальные не равны, то функция any всё равно вернёт значение True.
Эти функции помогут вам узнать, есть ли в объекте определённые значения, или нет.
Так, all возвращает значение True, если все объекты равны True или, по крайней мере, соответствуют заданному условию.
Функция any, в свою очередь, делает то же самое, но возвращает True даже в тех случаях, когда какие-то из объектов не соответствуют условию.
Другими словами, если хотя бы один из них равен True, когда все остальные не равны, то функция any всё равно вернёт значение True.
⚡️ Потоковый ввод
Ввод от пользователя можно обрабатывать потоком.
В таком случае, на Windows нужно воспользоваться специальной комбинацией клавиш — Ctrl + D.
Чтобы запустить потоковый ввод, нужно воспользоваться методом stdin в библиотеке sys.
Так, если нужно получить и сразу же обработать строку, то необходимо так и написать:
Кроме того, если прежде, чем обрабатывать строку, необходимо полностью прочитать весь потоковый ввод, то стоит воспользоваться командой
Ввод от пользователя можно обрабатывать потоком.
В таком случае, на Windows нужно воспользоваться специальной комбинацией клавиш — Ctrl + D.
Чтобы запустить потоковый ввод, нужно воспользоваться методом stdin в библиотеке sys.
Так, если нужно получить и сразу же обработать строку, то необходимо так и написать:
sys.stdin
.Кроме того, если прежде, чем обрабатывать строку, необходимо полностью прочитать весь потоковый ввод, то стоит воспользоваться командой
sys.stdin.readlines()
.⚡️ Функции высшего порядка
Функции высшего порядка — это функции, которые принимают или возвращают другие.
Название говорит само за себя — с запоминанием проблем возникнуть не должно.
Так, например, функция lambda может очень хорошо взаимодействовать с высшими функциями.
Другая функция, map(), может принять в себя предыдущую, но такой большой функциональности это не даст.
Есть ещё одна функция — filter(), с помощью которой можно фильтровать интеграторы и списки.
Первым аргументом она принимает функцию, если она возвращает True, пропуская элемент, а вторым — принимает список или интегратор.
Также, для большего удобства, эти функции можно совмещать.
Функции высшего порядка — это функции, которые принимают или возвращают другие.
Название говорит само за себя — с запоминанием проблем возникнуть не должно.
Так, например, функция lambda может очень хорошо взаимодействовать с высшими функциями.
Другая функция, map(), может принять в себя предыдущую, но такой большой функциональности это не даст.
Есть ещё одна функция — filter(), с помощью которой можно фильтровать интеграторы и списки.
Первым аргументом она принимает функцию, если она возвращает True, пропуская элемент, а вторым — принимает список или интегратор.
Также, для большего удобства, эти функции можно совмещать.
⚡️ Генератор случайных паролей
Пример простого кода, основанного на модуле random.
В качестве источника символов, в этом файле прописаны все символы, которые возможно ввести на клавиатуре.
Пользователю остаётся лишь выбрать количество паролей и длину каждого из них.
Также, полученные пароли автоматически сохраняются в файле "
Причём, этот файл не заменяется при каждом использовании программы: новые пароли просто вставляются после тех, которые были сгенерированы до этого.
💾 Скачать пример кода
Пример простого кода, основанного на модуле random.
В качестве источника символов, в этом файле прописаны все символы, которые возможно ввести на клавиатуре.
Пользователю остаётся лишь выбрать количество паролей и длину каждого из них.
Также, полученные пароли автоматически сохраняются в файле "
password.txt
".Причём, этот файл не заменяется при каждом использовании программы: новые пароли просто вставляются после тех, которые были сгенерированы до этого.
💾 Скачать пример кода
⚡️ Модуль os
Этот модуль даст вам доступ к функциям, которые зависят от конкретной системы.
Тип операционной системы можно определить с помощью атрибута os.name:
posix — это linux и macOS
nt — Windows
java — системы, которые работают в виртуальной Java-машине (тот же Android, например)
С его помощью вы можете создавать, удалять или переименовывать файлы и папки.
Также, вы можете менять их директорию простой функцией os.chdir().
Этот модуль даст вам доступ к функциям, которые зависят от конкретной системы.
Тип операционной системы можно определить с помощью атрибута os.name:
posix — это linux и macOS
nt — Windows
java — системы, которые работают в виртуальной Java-машине (тот же Android, например)
С его помощью вы можете создавать, удалять или переименовывать файлы и папки.
Также, вы можете менять их директорию простой функцией os.chdir().
⚡️ Модуль Zipfile
Модуль Zipfile гораздо более удобен для работы с zip, чем другие модули.
Да, он подойдёт только для zip и с его помощью нельзя выполнять такую объёмную работу, как с другими модулями, но в многофункциональности и удобстве он гораздо лучше остальных.
Сперва из zipfile необходимо импортировать ZipFile и открыть соответствующий файл.
printdir() — вывод текстом для печати всего списка содержимого
open() — открыть файл внутри архива
namelist() — вывод списка файлов в виде списка
Чтобы узнать больше возможностей этого модуля, просто воспользуйтесь help() или документацией.
Модуль Zipfile гораздо более удобен для работы с zip, чем другие модули.
Да, он подойдёт только для zip и с его помощью нельзя выполнять такую объёмную работу, как с другими модулями, но в многофункциональности и удобстве он гораздо лучше остальных.
Сперва из zipfile необходимо импортировать ZipFile и открыть соответствующий файл.
printdir() — вывод текстом для печати всего списка содержимого
open() — открыть файл внутри архива
namelist() — вывод списка файлов в виде списка
Чтобы узнать больше возможностей этого модуля, просто воспользуйтесь help() или документацией.
⚡️ Принцип OCP
Дословно этот принцип расшифровывается как «Open-Closed Principle» — принцип открытости к расширению.
Это значит, что код должен иметь возможность расширения, при этом его старый вариант не нужно было как-то переписывать или изменять.
Возможно, на первый взгляд покажется, что принцип OCP конфликтует с YAGNI, но это — не так.
YAGNI говорит, что нельзя писать код, который не используется в данный момент, а OCP — имеет отношение к более глубоким частям кода.
Дословно этот принцип расшифровывается как «Open-Closed Principle» — принцип открытости к расширению.
Это значит, что код должен иметь возможность расширения, при этом его старый вариант не нужно было как-то переписывать или изменять.
Возможно, на первый взгляд покажется, что принцип OCP конфликтует с YAGNI, но это — не так.
YAGNI говорит, что нельзя писать код, который не используется в данный момент, а OCP — имеет отношение к более глубоким частям кода.
📮 Что выведет этот код?
Anonymous Quiz
10%
[1, 4, 5]
20%
Ошибку
42%
[1, -2, -3]
29%
Посмотреть ответы
⚡️ Библиотека FuzzyWuzzy
Это — простая, но очень полезная и интересная библиотека для поиска совпадений в тексте.
К примеру, вы можете использовать её во время работы с ботами, которые общаются голосом или текстом — она значительно упростит некоторые ваши задачи.
Безусловно, вместо этого инструмента вы можете использовать любой другой, но именно он — самый удобный.
Чтобы установить библиотеку, необходимо выполнить команду:
Это — простая, но очень полезная и интересная библиотека для поиска совпадений в тексте.
К примеру, вы можете использовать её во время работы с ботами, которые общаются голосом или текстом — она значительно упростит некоторые ваши задачи.
Безусловно, вместо этого инструмента вы можете использовать любой другой, но именно он — самый удобный.
Чтобы установить библиотеку, необходимо выполнить команду:
install fuzzywuzzy
.⚡️ Что выведет этот код?
Anonymous Quiz
25%
[0] [1] [2]
19%
[1] [2] [3]
23%
[0] [0, 1] [0, 1, 2]
32%
Ошибку
⚡️ Принцип DRY
Ещё один принцип программирования, который гласит: «Don`t repeat yourself», что в переводе значит «Не повторяйся».
Если код можно не дублировать, а этого можно избежать практически всегда, — не делайте этого.
Вместо того, чтобы 2 раза писать один и тот же код, гораздо проще, лучше и эффективнее создать для него функцию.
Для чего это нужно? Ну, как минимум для того, чтобы упростить изменение кода в будущем.
Это особенно актуально для больших программ, где дублирование кода — просто недопустимо.
Ещё один принцип программирования, который гласит: «Don`t repeat yourself», что в переводе значит «Не повторяйся».
Если код можно не дублировать, а этого можно избежать практически всегда, — не делайте этого.
Вместо того, чтобы 2 раза писать один и тот же код, гораздо проще, лучше и эффективнее создать для него функцию.
Для чего это нужно? Ну, как минимум для того, чтобы упростить изменение кода в будущем.
Это особенно актуально для больших программ, где дублирование кода — просто недопустимо.
⚡️ Что выведет этот код?
Anonymous Quiz
18%
0 1 2
31%
a b c
19%
0 a 1 b 2 c
19%
Ошибку
13%
Ничего из этого