Рубрики
Без рубрики

Красочные отформатированные столы в Python

Узнайте, как использовать программирование Python, чтобы создать размножение и таблицы добавления и отображать их в цвете с аккуратным форматированием.

Автор оригинала: Robin Andrews.

Этот пост написан для читателей с различными уровнями опыта с программированием Python, а также с математикой. В зависимости от вашего опыта и процентов, вы получите разные вещи от чтения. Он содержит программу Python для печати и аккуратного форматирования цветных размножеств и таблиц добавления и включает в себя Кодирование ДНК Для достижения следующего с программированием Python:

  • Печать текста с цветными фонами и передним планом в консоли с помощью Python
  • Создайте аккуратно отформатированные таблицы с несколькими строками кода
  • Создайте умножение и таблицы добавления для «нормальной» арифметики
  • Создайте и исследовать умножение и таблицы добавления для «конечной арифметики», образованной с помощью оператора модуля
  • Пропускать операторы как аргументы для функций
  • Выровняйте и укажите ширину отформатированных строк

Я начну, просто поделись некоторым кодом, а затем мы обсудим, что это делает, как это это делает и как его использовать для своих собственных целей. Вы можете получить доступ к коду на repl.it или внизу этого поста, где я предоставим полный список.

Python Program для отображения умножения и таблицы добавления – онлайн-версия

На одном уровне это инструмент для изучения базовых умножений и таблиц добавления в цвете Python, который может быть полезен в контексте преподавания (или самоучения). Для программиста Python, тем не менее, он использует некоторые очень полезные инструменты, которые вы можете захотеть включить в наши собственные проекты.

Цветной текст в консоли с модулем Python Colorama

Чтобы использовать этот модуль, вам нужно будет установить с PIP Instal Colorama Отказ Вы можете найти модуль вместе с документацией здесь: Колорама Отказ Ниже приведен основной пример его использования.

from colorama import init, Fore, Back, Style

init()

print(Fore.GREEN + 'green, '
      + Fore.RED + 'red, '
      + Fore.RESET + 'normal, '
      , end='')
print(Back.GREEN + 'green, '
      + Back.RED + 'red, '
      + Back.RESET + 'normal, '
      , end='')
print(Style.DIM + 'dim, '
      + Style.BRIGHT + 'bright, '
      + Style.NORMAL + 'normal'
      , end=' ')
print()

Это дает следующий вывод в PowerShell:

Некоторые цвета различны на PowerShell VS CMD, а также появятся различными в разных операционных системах и средах. Вам может потребоваться выбирать из доступных цветов, чтобы поддерживать читабельность. Полный список доступных цветов:

Черный, красный, зеленый, желтый, синий, пурпурный, голубой, белый, сброс + Некоторые более легкие версии, сделанные как Lightmagenta_ex от основных цветов только что перечислены.

Есть еще несколько демонстраций, доступных на Страница GitHub для проекта.

Печать аккуратно отформатированных таблиц с модулем Tabulate Python

Python Tabulate Модуль модуль позволяет печатать аккуратно отформатированные таблицы, не беспокоясь о том, чтобы вручную позиционировать ваши данные, чтобы сделать его понятным и легко читаемым. Это довольно аккуратный модуль и стоит экспериментировать, когда у вас есть табличные данные, которые вы хотите отобразить в консоли из программы Python.

from tabulate import tabulate

table = [["Sun", 696000, 1989100000], ["Earth", 6371, 5973.6], ["Moon", 1737, 73.5], ["Mars", 3390, 641.85]]
headers = ["Planet", "R (km)", "mass (x 10^29 kg)"]
print(tabulate(table, headers, tablefmt="pretty"))



+--------+--------+-------------------+
| Planet | R (km) | mass (x 10^29 kg) |
+--------+--------+-------------------+
|  Sun   | 696000 |    1989100000     |
| Earth  |  6371  |      5973.6       |
|  Moon  |  1737  |       73.5        |
|  Mars  |  3390  |      641.85       |
+--------+--------+-------------------+

Прохождение операторов как функциональные аргументы

Это не то, что вы обычно можете обойти без помощи импортируемого модуля. Оператор Модуль – наш друг здесь. Вы можете прочитать о доступных методах и т. Д. здесь Отказ В нашей программе мы импортируем только имена операторов, которые нам нужны: Добавить , Мул и Пау , но гораздо больше доступны.

Исследуя конечную арифметику с таблицами Python Cayley

Обычно это довольно продвинутая тема в математике от ветви, называемой Абстрактная алгебра , но на самом деле кто-нибудь интересует Модульная арифметика Можно использовать этот инструмент для изучения того, как работает оператор Modulo. Программа создает то, что называется Кайли столы (В основном просто умножения/добавочные таблицы, но для наборов элементов, отличных от набора всех целых чисел). Цветная функциональность, предоставленная Колорама позволяет легко увидеть узоры в таблицах, созданных с разными значениями и операторами. Это может быть увлекательным расследованием для тех, кому нравится такая вещь. Полная программа представлена ниже.

Python Cayley Table Chatable с цветным дисплеем и отформатированным выходом

from tabulate import tabulate
from operator import add, mul, pow
from colorama import init, Back, Fore


BACKS = [Back.BLACK, Back.LIGHTRED_EX, Back.GREEN, Back.LIGHTBLUE_EX, Back.LIGHTMAGENTA_EX, Back.CYAN]
NUM_COLORS = len(BACKS)


def bin_op(a, b, op, mod):
    return op(a, b) % mod


def cayley_table(vals, mod, op=mul):
    if op == add:
        op_sign = "+"
    elif op == mul:
        op_sign = "*"
    elif op == pow:
        op_sign = "^"
    else:
        print("Operator not allowed.")
        raise SystemExit

    length = len(vals)
    headers = [op_sign]
    headers.extend(vals)
    table = [[None] * length for _ in range(length)]
    for i in range(length):
        for j in range(length):
            val = bin_op(vals[i], vals[j], op, mod)
            color = BACKS[val % NUM_COLORS]  # Use several colours without running out.
            # color = BACKS[1] if val % 2 == 0 else BACKS[2]  # Simple even/odd color scheme
            table[i][j] = f"{color}{val:3}{Back.RESET}"
    print(tabulate(table, headers, tablefmt="pretty", showindex=row_ids))


if __name__ == "__main__":
    init()
    n = 5  # size of table
    # mod = n ** 2 + 1  # Full table no mod
    mod = n
    # vals = list(range(1, n + 1))  # no zeros, go all the way to n
    vals = list(range(n))
    row_ids = vals
    cayley_table(vals, mod, mul)  # options for final param are mul, add or pow

Так что там у вас есть – много происходит в этой статье. Надеюсь, будет что-то там, вы можете использовать. Дайте мне знать в комментариях, если вы нашли это полезным. Счастливые вычисления!