需要帮助我的shuffle卡计划

phh*_*hnk 1 python

我正在做一个洗牌计划.最后我for loop用来打印10张随机卡,但我不知道它有什么问题.

最后deal_card(card),为什么我放,card因为我的h/w这样说,但如果你有其他答案,我会很高兴听你说的.

这是我的计划:

import random

def define_cards():
    rank_string = ("ace","two","three","four","five","six","seven","eight","nine","ten","jack","queen","king")
    suit_string = ("clubs","diamonds","hearts","spades")
    cards = []
    for suit in range(4):
        for rank in range(13):
            card_string = rank_string[rank] + " of " + suit_string[suit]
            cards.append(card_string)
        return cards

def create_deck(deck):
    for i in range(52):
        deck.append(i)
        return

def shuffle_deck(deck):
    random.shuffle(deck)
    return

def deal_card(deck):
    return deck.pop(0)

deck=[]

create_deck(deck)
shuffle_deck(deck)
print "The first 10 cards are:"
for i in range(10):             # I don't know why won't work
    deal_card(card)
    print define_cards()
Run Code Online (Sandbox Code Playgroud)

打印出来的样子看起来像:

The first 10 cards are:
queen of hearts
ten of diamonds
...
Run Code Online (Sandbox Code Playgroud)

dan*_*cek 6

由于您define_cards已经生成了卡名称列表,因此您应该使用它来生成卡片而不是create_deck.然后在for循环中只需处理一张卡并打印出来.

deck = define_cards()
shuffle_deck(deck)
print "The first 10 cards are:"
for i in range(10):
    card = deal_card(deck)
    print card
Run Code Online (Sandbox Code Playgroud)

这样做会使程序从卡座的顶部打印十张卡片.但是,define_cards还是有一点虫子.你能发现它吗?提示:定位return.