Местная фабрика канцелярских товаров заказала программу, которая генерирует таблицы умножения.
Давайте поможем производителю.
Формат ввода
Вводится одно натуральное число — требуемый размер таблицы.
Формат вывода
Таблица умножения заданного размера.
Примечание
itertools.product отличный способ, чтобы избавиться от вложенных циклов.
Пример
Ввод
3
Вывод
1 2 3
2 4 6
3 6 9
Ввод
5
Вывод
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
5 10 15 20 25
Решение
Яндекс рекомендует использовать product() для того, чтобы избежать вложенных циклов. Обратная сторона такого решения – мы получаем на выходе плоский (одномерный) список, но есть и хорошие новости – у нас есть islice().
Посмотреть код
Решение
Python
from itertools import product, islice
size = int(input())
nums = range(1, size + 1)
table = [x * y for x, y in product(nums, repeat=2)]
for row in range(size):
print(*islice(table, row * size, (row + 1) * size))
А что за звёздочка перед islice?
Это так называемая распаковка. Ее суть в том, чтобы вытаскивать элементы по одному, пока они не закончатся. Довольно обширная тема и все никак руки не доберутся написать про нее статью. К счастью, это легко гуглится.