Пишем Brainfuck на Python

Есть мнение, что каждый программист должен написать в жизни хотя бы один язык программирования, либо реализовать уже существующий, но своими руками. В качестве примера мы начнем с самого простого и создадим Brainfuck. Согласно Вики: Brainfuck — один из известнейших эзотерических языков программирования, придуман Урбаном Мюллером (нем.Urban Müller) в 1993 году, известен своим минимализмом. Название языка можно перевести на русский как вынос…

Доступ к атрибутам

Атрибуты объекта в Python – это именованные поля (данные, функции), присущие данному объекту (экземпляру, классу). Самый простой доступ к атрибутам – через точку: Если мы обратимся к атрибуту, которого нет, то получим ошибку AttributeError. Мы можем переопределить это поведение путем реализации магических методов __getattr__ или __getattribute__. __getattr__ вызывается, если атрибут не найден обычным способом (не…

​​🗓 Календарь

Когда под рукой нет календаря, но есть Python: Или из командной строки: Хотите по-русски (если вдруг еще не)? А еще можно узнать, високосный ли год: Или какой сегодня день недели? Больше функций календаря ищите в документации к модулю calendar. Специально для канала @pyway.

Цепочки сравнений

Распространенная ситуация: проверка того, что переменная находится в заданных пределах. Можно было бы использовать логический оператор and: Однако Python предоставляет нам синтаксическое удобство, которое выглядит более «математичным». Такая запись и короче, и понятнее: В качестве операторов сравнения могут быть любые из списка в любых сочетаниях: Т.е. запись вида a < b > c вполне законна,…

Python: is. Равенство и эквивалентность

Новички часто путаются в конструкциях is и ==. Давайте разберемся, что к чему. Сразу к сути: == (и его антагонист !=) применяются для проверки равенства (неравенства) значения двух объектов. Значение, это непосредственно то, что лежит в переменной. Значение числа 323235 – собственно число 323235. Тавтология. Но на примерах станет яснее. Оператор is (и его антагонист…