Python Blackjack游戏 - 在分配之前引用

时间:2014-08-01 01:32:08

标签: python python-3.4 blackjack

所以,我个人的挑战是在python中制作一个简单的Blackjack游戏。这就是我做这件事的方式:

singlePlayerCard = random.choice(availableCards)
singlePlayerCard2 = random.choice(availableCards)

if(singlePlayerCard == [1,2,3,4,5,6,7,8,9,10]):
    singlePlayerCardValue = singlePlayerCard

if(singlePlayerCard2 == [1,2,3,4,5,6,7,8,9,10]):
    singlePlayerCard2Value = singlePlayerCard2


singlePlayerCardValueTotal = singlePlayerCardValue+singlePlayerCard2Value
print ("The total of your card values is %i"%singlePlayerCardValueTotal)

在打印singlePlayerCardValueTotal时,它告诉我在分配之前已引用singlePlayerCardValuesinglePlayerCard2Value。这让我很困惑,因为我过去曾经遇到过这个问题,我做了另一个简单的程序,但结构在这里有所不同。除上述问题外,它运作良好。如果您有时间,如有必要,请告知我某些方面的更好解决方案。

一如既往,提前谢谢! :)

1 个答案:

答案 0 :(得分:2)

正如您在评论中指出的那样,"在转让之前被引用"表示您在变量被赋予值之前已经提到了变量。

看起来你的问题是:

if(singlePlayerCard == [1,2,3,4,5,6,7,8,9,10]):
    singlePlayerCardValue = singlePlayerCard

由于singlePlayerCard永远不会等于列表[1,2,3,4,5,6,7,8,9,10],因此当数字卡作为数字卡时,您不会为该变量指定值。

==运算符不是检查列表是否包含值的方法。试试这个,而不是:

if(singlePlayerCard in [1,2,3,4,5,6,7,8,9,10]):
    singlePlayerCardValue = singlePlayerCard