【发布时间】:2014-08-01 09:54:24
【问题描述】:
所以,我个人的挑战是用 python 制作一个简单的二十一点游戏。这就是我的做法:
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 时,它告诉我singlePlayerCardValue 或singlePlayerCard2Value 在分配之前已被引用。这让我有点困惑,因为我过去曾在我制作的另一个简单程序中遇到过这个问题,但这里的结构不同。除了上述问题,它工作正常。另外,如果您有时间,请在必要时告诉我某些领域的任何更好的解决方案。
一如既往,提前致谢! :)
【问题讨论】:
-
你明白“赋值前引用”是什么意思吗?
-
@Blorgbeard 从过去对其他程序的尝试中,我了解到这意味着我已经在代码中提到了它,但实际上它还没有被赋予价值
-
是的,所以看起来你的
if语句没有命中,所以你从来没有为singlePlayerCardValue分配任何东西。 -
@Blorgbeard 嗯,我明白为什么会出现错误(因为
if语句不起作用),但我不确定为什么if语句不起作用.写的时候我有点犹豫,我之前从来没有一个接一个if声明,通常我有一个elif或else之后。 -
@Blorgbeard 现在检查你的答案。
标签: python python-3.4 blackjack