Умножение списка на число

Студент Макс узнал, что в Python умножать можно не только числа, но и другие объекты, например, строку на число: «Вау!» — подумал Макс — «А что если умножить список на число?»: Значит можно создать двумерный массив очень кратко и элегантно? Заполнить его: Макс ожидал получить: А вышло: 😯 Как же так?! Дело в том, что…

Подчеркивание в Python

Знак подчеркивания _ или underscore занимает особое место в Python. Подчеркивание имеет множество применений, как эстетических конвенций (необязательная договоренность разработчиков оформлять код с подчеркиваниями), так и функциональных, т. е. реально затрагивающих исполнение кода (такие места буду отмечать знаком ⚠️). змеиный_регистр (snake_case) имена магических методов и переменных «приватные» члены класса и коверкание имен (mangling) игнорирование значения…

Юнит-тесты

Программисты так или иначе тестируют свои программы. В простых случаях можно запустить программу несколько раз и проверить результаты. А если вы внесли изменение? Нужно проделать эту рутинную работу еще раз и не ошибиться самому. В сложных программах это просто нереально. Естественно, этот процесс автоматизируется. Сложная программа состоит из отдельных классов, функций и модулей, каждый из…

Игра понг ASCII на Python

В продолжение последней темы написал сегодня с утра игру «Понг» для терминала. Обошелся только встроенными модулями. Для графики и ввода использовал модуль curses (обертка над ncurses). Исходный код доступен здесь. Благодаря современным чудо-технологиям в игру можно поиграть прямо в браузере, хоть она и работает не очень стабильно (зависит от вашего интернет соединения). Управление: W —…

​​Размер окна терминала

Для оформления информации в терминале часто нужно знать размеры окна терминала (количество колонок и строк). Во встроенном модуле shutil можно найти функцию get_terminal_size, которая возвращает именованный кортеж: Или Или Например, сделаем разделитель с заголовком, как на фото. 1. Будем форматировать по центру значение в строку с заданной длинной, а пустые места заполнить каким-то символом. Для…