我正在做一个洗牌计划.最后我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)
由于您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.
| 归档时间: |
|
| 查看次数: |
10089 次 |
| 最近记录: |