我需要帮助找到一个python函数,它只显示元组中的值,(x)次数。
from random import *
rankName = ("Ace", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King")
suit = ("hearts", "diamonds", "spades" , "clubs")
users = ("I", "computer", "deck")
NUMCARDS = 52
DECK = 0
PLAYER = 1
COMP = 2
count = 0
while (count < 52):
for u in rankName:
for i in suit:
count = count + 1
w = choice(users)
''' 'computer' and 'I' should only show 5 times, while deck shows 42 cards '''
print count, '\t| ', u,' of', i, '\t|', w
感谢。
答案 0 :(得分:0)
添加两行,试一试:
from random import *
rankName = ("Ace", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King")
suit = ("hearts", "diamonds", "spades" , "clubs")
users = ("I", "computer", "deck")
# make it weighted and shuffed
users_with_weights = ["I"]*5 + ['computer']*5 + ['deck']*42
shuffle(users_with_weights)
NUMCARDS = 52
DECK = 0
PLAYER = 1
COMP = 2
count = 0
while (count < 52):
for u in rankName:
for i in suit:
count = count + 1
w = users_with_weights.pop()
''' 'computer' and 'I' should only show 5 times, while deck shows 42 cards '''
print count, '\t| ', u,' of', i, '\t|', w
请告诉我它是否符合您的所有需求。
答案 1 :(得分:0)
你也可以稍微改变你的逻辑并实际处理卡片,例如:
from itertools import product
from random import *
rankName = ("Ace", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight",
"Nine", "Ten", "Jack", "Queen", "King")
suit = ("hearts", "diamonds", "spades" , "clubs")
users = ("deck", "I", "computer")
NUMCARDS = 52
DECK = 0
PLAYER = 1
COMP = 2
deck = list(product(suit, rankName))
deal = sample(deck, 10)
player = deal[0::2]
computer = deal[1::2]
for count, (suit, rank) in enumerate(deck):
user = PLAYER if (suit, rank) in player else COMP if (suit, rank) in computer else DECK
print count+1, '\t| ', rank,' of', suit, '\t|', users[user]