【发布时间】:2021-05-11 09:42:49
【问题描述】:
from random import shuffle
def makeDeck():
Deck = []
for i in range(4):
valueCards = ["A", "K", "J", "Q"]
Deck.append(valueCards)
for cards in range(2,11):
Deck.append(cards)
shuffle(Deck)
print(Deck)
return Deck
我通过像以前一样设置 self.score = self.setScore() 对类进行了一些更改,当我将它设置为一个数字时,值根本没有被更新。
class Player:
def __init__(self, drawn = []):
self.drawn = drawn
self.score = self.setScore()
def __str__(self):
currentDraw = ""
for cards in self.drawn:
currentDraw += str(cards) + " "
finalDraw = currentDraw + "score: " + str(self.score)
return finalDraw
def setScore(self):
self.score = 0
cardValues = {"A":11, "K":10, "J":10, "Q":10,
"2":2, "3":3, "4":4, "5":5, "6":6,
"7":7, "8":8, "9":9, "10":10}
for cards in self.drawn:
self.score += cardValues[cards]
return self.score
我通过打印出一些类似的值来测试我正在更新,并且这些值打印控制台就好了。
Player1 = Player(["4", "9"])
print(Player1)
当我添加下一位时,我收到了错误并且不知道为什么。
cardDeck = makeDeck()
firstDraw = [cardDeck.pop()]
DrawOne = " ".join(str(e) for e in firstDraw)
secondDraw = [cardDeck.pop()]
DrawTwo = " ".join(str(j) for j in secondDraw)
thirdDraw = [cardDeck.pop()]
First = Player(firstDraw)
player1 = Player(secondDraw)
player2 = Player(thirdDraw)
defeat = False
while(defeat != True):
choice = input("Higher or lower?: ")
if choice == "Higher" or "higher":
if DrawOne < DrawTwo:
counter += 1
print(player1.score)
if choice == "Lower" or "lower":
if DrawOne > DrawTwo:
counter += 1
print(player1.score)
player1
else:
defeat = True
print(player1.score)
print("Defeat")
【问题讨论】:
标签: python dictionary keyerror