Сгенерируйте и выведите на экран колоду игральных карт без одной из мастей: три масти от двойки до туза. Масть, которая должна быть выброшена, вводится пользователем. Используйте итератор product для того, чтобы скомбинировать масти и номиналы.
Названия карт должны быть в формате «номинал масть». Например: «2 пик», «10 треф», «валет бубен», «дама червей».
Порядок мастей имеет значение.
Формат ввода
Название масти, которая должна быть выброшена, передаётся в том же падеже, в котором она выводится на экран: «пик», «треф», «бубен» и «червей».
Формат вывода
Список карт в колоде по увеличению номинала, затем масти (как в преферансе).
Пример
Ввод
треф
Вывод
2 пик
2 бубен
2 червей
3 пик
3 бубен
3 червей
4 пик
4 бубен
4 червей
5 пик
5 бубен
5 червей
6 пик
6 бубен
6 червей
7 пик
7 бубен
7 червей
8 пик
8 бубен
8 червей
9 пик
9 бубен
9 червей
10 пик
10 бубен
10 червей
валет пик
валет бубен
валет червей
дама пик
дама бубен
дама червей
король пик
король бубен
король червей
туз пик
туз бубен
туз червей
Решение
Для решения этой задачи нам потребуется функция product() из модуля itertools.
Задаем список мастей, и список достоинств карт.
Запрашиваем масть, которую. требуется удалить и удаляем ее из списка.
С помощью функции product() генерируем список всех комбинаций карт.
Посмотреть код
Решение
from itertools import product
cards = [2, 3, 4, 5, 6, 7, 8, 9, 10, 'валет', 'дама', 'король', 'туз']
suits = ['пик', 'треф', 'бубен', 'червей']
suits.remove(input())
for card, suit in product(cards, suits):
print(card, suit)
Решение
from itertools import product
ban = input()
suits = ['пик', 'треф', 'бубен', 'червей']
cards = [str(cards) for cards in range(2, 11)] + ['валет', 'дама', 'король', 'туз'] # noqa
suits.remove(ban)
print('\n'.join([f'{card} {suit}' for card, suit in list(product(cards, suits))])) # noqa