F. Колода карт

Сгенерируйте и выведите на экран колоду игральных карт без одной из мастей: три масти от двойки до туза. Масть, которая должна быть выброшена, вводится пользователем. Используйте итератор 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() генерируем список всех комбинаций карт.

Посмотреть код

Решение

Python
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)

Решение

Python
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
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии