`Total1`变量与`DealerTotal`变量具有相同的输出,它们应该是不同的

时间:2015-06-08 00:51:13

标签: python variables blackjack

这是我修改过的Blackjack版本。

我还是Python的新手,所以这个程序缺乏格式化和严格的规则修改,但我不明白的是,如果你要运行这个程序,为什么{{ 1}}具有与Total1相同的输出。

在第1阶段,如果你只是通过并确认你已经过去了,那么一切都会顺利进行。你有自己的总数,即DealerTotalCard1的总和,而且经销商有他自己的总数(我欺骗他并且让他击中3次):Card2Card1Card2。所以在Card3中一切正常。

但是,当我输入PHASE 1时,执行相同的处理(传递和确认)会使PHASE 2Total1输出相同。

为什么DealerTotal中的DealerTotal有效,PHASE 1中的DealerTotal即使代码相同也不行?

PHASE 2

2 个答案:

答案 0 :(得分:2)

这可能听起来很愚蠢,但是Total1与DealerTotal具有相同值的原因是因为Total1与DealerTotal具有相同的值。

您可以在程序开头指定变量,然后再不要再触摸它们。 Total1是Total1 = Total + Cards[Card3]。总计为Total = Cards[Card1] + Cards[Card2]。因此,Total1相当于:Cards[Card1] + Cards[Card2] + Cards[Card3]

现在让我们看看DealerTotal:DealerTotal = Cards[Card1] + Cards[Card2] + Cards[Card3]。好像很熟悉?​​

第1阶段不会发生这种情况,因为您使用Total进行比较,而不是Total1

答案 1 :(得分:1)

这是因为你写的逻辑。

Total = Cards[Card1] + Cards[Card2]
Total1 = Total + Cards[Card3]

替换总计

的值
Total1 = Cards[Card1] + Cards[Card2] + Cards[Card3]

DealerTotal = Cards[Card1] + Cards[Card2] + Cards[Card3]

你可能会看到,DealerTotal = Total1,这就是为什么它们相同的原因。