Python扑克牌优惠劵

(模拟:优惠券收集问题)优惠券收集是一个经典的统计问题,它有很多实际的应用。这个问题
是从一个对象集合里重复取出对象,然后找出要取出所有对象至少一次,需要取多少次。这个
问题的变体是从一副打乱的52张牌中重复取牌,然后找出在看到每种花色一个之前需要取多
少次。假设在选下一个之前取出的牌是要放回去的。编写程序模拟获取四张牌,每张都是不同
花色需要取的次数,然后显示这四张取出的牌(可能牌被取出两次)。下面是程序的示例运行。
Queen of Spades
5 of Clubs
Queen of Hearts
4 of Diamonds
Number of picks:12

import random

SUITS = {0:'Spades', 1:'Hearts', 2:'Clubs', 3:'Diamonds'}
FACES = {1:'Ace', 11:'Jack', 12:'Queen', 13:'King'}

cards = []
draw = 0
while cards == [] or len(suit)!=len(set(suit)):
    cards = random.sample(range(52),4)
    suit = [i//13 for i in cards]
    draw += 1

for i in cards:
    num = i%13 + 1
    if num == 1 or num > 10: num = FACES[num]
    print (f'{num} of {SUITS[i//13]}')
print(f'Number of picks:{draw}')