我目前正在通過John Zelle的Python編程:計算機科學入門,並在第10章中遇到困難。我在理解爲什麼以及如何做這個練習,並且需要一些幫助來解決這個問題。練習要求我創建一個程序,該程序顯示n使用名爲Card
的類的卡片數量,並且需要以下方法。還應當調用從生成Ñ數的隨機數的應用中:作爲離譜如何按Python教程要求實現'class card'
__init__(self, rank, suit):
getRank(self)
getSuite(self)
BJValue(self)
__str__(self)
容易的這應該是,我碰壁試圖實施這個類。我創建了一個簡單的應用程序,可以生成一副52張牌,提示用戶輸入他們想要的牌數,然後用這些牌填充牌。一旦手牌生成,我就無法看到卡牌特定的類別會從哪裏受益。這是我的工作到目前爲止的代碼:
import random
class Card:
def __init__(self, rank, suite):
self.rank = rank
self.suite = suite
def getRank(self):
return self.rank
def getSuite(self):
return self.suite
def BJValue(self):
if self.rank == 'Ace':
return 1
elif self.rank == 'Jack' or self.rank == 'Queen' or self.rank == 'King':
return 10
else:
return int(self.rank)
def __str__(self):
return ('{0} of {1}'.format(self.rank, self.suite))
def shuffled_deck():
deck = []
for suite in ['Clubs', 'Diamonds', 'Hearts', 'Spades']:
for num in ['Ace', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'Jack', 'Queen', 'King']:
deck.append([num, suite])
random.shuffle(deck)
return deck
def main():
deck = shuffled_deck()
hand = []
print('>> Card Generator v1 <<')
while True:
try:
n = int(input('Please enter the number of cards to display (1-7): '))
except ValueError:
print('Invalid input, please enter a number!\n')
else:
if n < 1 or n > 7:
print('Please enter a number between 1-7!\n')
else:
break
print('Your hand is:')
for i in range(n):
hand.append(deck[i])
main()
所以一旦我已經生成的隨機ñ手卡,我看不到我怎麼會受益於使用的卡類,或者即使來實現它。由於n是1-7之間的隨機數,我需要n存儲每個卡對象的變量數量,然後將每個變量分配給Card
的實例。我可以用hand[i]
來顯示每張牌,我不需要特殊的Card
類就可以迭代到range(n)
,但這不是這個項目所期望的。我在尋找關於如何思考這個問題的建議,以便我可以使用這個必需的類。
爲什麼你需要有n個變量?只需使用這些隨機卡的列表! –
你爲什麼在2013學習Python中的getter和setter? –
你是指「西裝」而不是「套裝」? –