我正在做一个洗牌程序。最后我用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()
打印出来chould样子:
The first 10 cards are:
queen of hearts
ten of diamonds
...
是不是应该只有4个空间,与'在范围内(4)'和在'cards.append(card_string)'或者下面'cards.append(card_string)'whit 12的空间相同级别空间?I尝试是工作的两种方式,有什么不同? – phhnk 2011-05-07 07:31:40
@phhnk:根据缩进情况,'return'要么在'for'循环中,要么在两者之后。在'for'循环完成之后,你会想要它,所以4个空格。在问题中的版本(8个空格)中,您只能看到* clubs *卡片。 – dancek 2011-05-07 07:43:39
哦,我明白了现在怎么样了,非常感谢... – phhnk 2011-05-07 08:05:44