Python `Total1`变量与'DealerTotal`变量的输出相同,但它们应该不同

Python `Total1`变量与'DealerTotal`变量的输出相同,但它们应该不同,python,variables,blackjack,Python,Variables,Blackjack,这是我对21点的修改版本 我对Python还是新手,所以这个程序缺少格式和严重的规则修改,但我不明白的是,如果要运行这个程序,为什么Total1的输出与DealerTotal的输出相同 在第一阶段,如果你只是通过并确认你通过了,一切都会顺利进行。您有自己的总数,即Card1和Card2的总和,并且经销商有自己的总数(我作弊并让他打了3次):Card1,Card2,Card3。因此,在阶段1中,一切正常 但是,当我进入阶段2时,执行相同的过程(传递和确认)会使Total1和DealerTotal输

这是我对21点的修改版本

我对Python还是新手,所以这个程序缺少格式和严重的规则修改,但我不明白的是,如果要运行这个程序,为什么
Total1
的输出与
DealerTotal
的输出相同

在第一阶段,如果你只是通过并确认你通过了,一切都会顺利进行。您有自己的总数,即
Card1
Card2
的总和,并且经销商有自己的总数(我作弊并让他打了3次):
Card1
Card2
Card3
。因此,在
阶段1中,一切正常

但是,当我进入
阶段2
时,执行相同的过程(传递和确认)会使
Total1
DealerTotal
输出相同

为什么
PHASE 1
中的
DealerTotal
起作用,而
PHASE 2
中的
DealerTotal
即使代码相同也不起作用

# Imports
import random
import sys

# Dictionary
Cards = {"1": 1, "2": 2, "3": 3, "4": 4, "5": 5, "6": 6, "7": 7, "8": 8, "9": 9,
         "10": 10, 'Jack': 10, 'Queen': 10, 'King': 10, 'Ace': 10}

# Welcome Print
print('Welcome to Blackjack!\n\nHere are your cards: \n ')
# Cards
keys = list(Cards)
# Beginning Cards
Card1 = random.choice(keys)
Card2 = random.choice(keys)
# Hit 1 Card
Card3 = random.choice(keys)
# Hit 2 Card
Card4 = random.choice(keys)
# Hit 3 Card
Card5 = random.choice(keys)
# Hit 4 Card
Card6 = random.choice(keys)
# Hit 5 Card
Card7 = random.choice(keys)
# Hit 6 Card
Card8 = random.choice(keys)

# Sum of Cards
# Beginning Total
Total = Cards[Card1] + Cards[Card2]
# Hit 1 Total
Total1 = Total + Cards[Card3]
# Hit 2 Total
Total2 = Total1 + Cards[Card4]
# Hit 3 Total
Total3 = Total2 + Cards[Card5]
# Hit 4 Total
Total4 = Total3 + Cards[Card6]
# Dealer's Total
DealerTotal = Cards[Card1] + Cards[Card2] + Cards[Card3]



### BEGINNING ###
print(Card1, 'and a', Card2, '. Your total is', Total)


### PHASE 1 ###
Choice = input('Would you like to hit or pass? (h = hit, p = pass): ')
# Hitting PHASE 1
if (Choice == 'h'):
    print('The dealer gives you a', Card3, '. Your new total is: '  , Total1)
    # Hitting & Losing HIT 1
    if (Total1 > 21):
        print('You lose! Try again later.')
        sys.exit()
# Passing PHASE 1
if (Choice == 'p'):
    # Confirmation whether you want to pass/hit
    Response1 = input('Are you sure? The dealer may have a better hand. (y = yes, n = no): ')
    # Reponse to hitting 'y'
    if (Response1 == 'y'):
        print('Your total is', Total, "The dealer's total is", DealerTotal)
        if (DealerTotal > 21 or 21 >= Total > DealerTotal):
            print("Congratulations, you've won!")
            sys.exit()
        elif (DealerTotal == Total):
            print('You have tied!')
        else:
            print('You lose! Try again later.')
            sys.exit()


### PHASE 2 ###
Choice1 = input('Would you like to hit or pass? (h = hit, p = pass): ')
# Hitting PHASE 2
if (Choice1 == 'h'):
    print('The dealer gives you a', Card4, '. Your new total is: ' , Total2)
    # Hittnig & Losing HIT 2
    if (Total2 > 21):
        print('You lose! Try again later.')
        sys.exit()
# Passing PHASE 2
if (Choice1 == 'p'):
    # Confirmation whether you want to pass/hit
    Response2 = input('Are you sure? The dealer may have a better hand.(y = yes, n = no): ')
    # Reponse to hitting 'y'
    if (Response2 == 'y'):
        print('Your total is', Total1, "The dealer's total is", DealerTotal)
        if (DealerTotal > 21 or 21 >= Total1 > DealerTotal):
            print("Congratulations, you've won!")
            sys.exit()
        elif (DealerTotal == Total1):
            print('You have tied!')
        else:
            print('You lose! Try again later.')
            sys.exit()

这是因为你写的逻辑

Total = Cards[Card1] + Cards[Card2]
Total1 = Total + Cards[Card3]
替换总值

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


正如您可能看到的,DealerTotal=Total1,这就是它们完全相同的原因。

这是因为您编写的逻辑

Total = Cards[Card1] + Cards[Card2]
Total1 = Total + Cards[Card3]
替换总值

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


正如您可能看到的,DealerTotal=Total1,这就是它们完全相同的原因。

这是因为您编写的逻辑

Total = Cards[Card1] + Cards[Card2]
Total1 = Total + Cards[Card3]
替换总值

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


正如您可能看到的,DealerTotal=Total1,这就是它们完全相同的原因。

这是因为您编写的逻辑

Total = Cards[Card1] + Cards[Card2]
Total1 = Total + Cards[Card3]
替换总值

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


正如您可能看到的,DealertTotal=Total1,这就是它们完全相同的原因。

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

您在程序开始时分配变量,然后再也不接触它们。Total1是
Total1=Total+Cards[Card3]
。总计是
Total=卡[Card1]+卡[Card2]
。因此,Total1相当于:
Cards[Card1]+Cards[Card2]+Cards[Card3]

现在让我们看看DealTotal:
DealTotal=Cards[Card1]+Cards[Card2]+Cards[Card3]
。看起来很熟悉吗


这在阶段1中不会发生,因为您使用的是
Total
进行比较,而不是
Total1

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

您在程序开始时分配变量,然后再也不接触它们。Total1是
Total1=Total+Cards[Card3]
。总计是
Total=卡[Card1]+卡[Card2]
。因此,Total1相当于:
Cards[Card1]+Cards[Card2]+Cards[Card3]

现在让我们看看DealTotal:
DealTotal=Cards[Card1]+Cards[Card2]+Cards[Card3]
。看起来很熟悉吗


这在阶段1中不会发生,因为您使用的是
Total
进行比较,而不是
Total1

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

您在程序开始时分配变量,然后再也不接触它们。Total1是
Total1=Total+Cards[Card3]
。总计是
Total=卡[Card1]+卡[Card2]
。因此,Total1相当于:
Cards[Card1]+Cards[Card2]+Cards[Card3]

现在让我们看看DealTotal:
DealTotal=Cards[Card1]+Cards[Card2]+Cards[Card3]
。看起来很熟悉吗


这在阶段1中不会发生,因为您使用的是
Total
进行比较,而不是
Total1

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

您在程序开始时分配变量,然后再也不接触它们。Total1是
Total1=Total+Cards[Card3]
。总计是
Total=卡[Card1]+卡[Card2]
。因此,Total1相当于:
Cards[Card1]+Cards[Card2]+Cards[Card3]

现在让我们看看DealTotal:
DealTotal=Cards[Card1]+Cards[Card2]+Cards[Card3]
。看起来很熟悉吗


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

您拥有
Total=Cards[Card1]+Cards[Card2];Total1=总计+卡[Card3]
交易总计=卡[Card1]+卡[Card2]+卡[Card3]
。基本上,你有
x=a+b;x=x+c
y=a+b+c
。你为什么期望它们不同?你有
Total=卡片[Card1]+卡片[Card2];Total1=总计+卡[Card3]
交易总计=卡[Card1]+卡[Card2]+卡[Card3]
。基本上,你有
x=a+b;x=x+c
y=a+b+c
。你为什么期望它们不同?你有
Total=卡片[Card1]+卡片[Card2];Total1=总计+卡[Card3]
交易总计=卡[Card1]+卡[Card2]+卡[Card3]
。基本上,你有
x=a+b;x=x+c
y=a+b+c
。你为什么期望它们不同?你有
Total=卡片[Card1]+卡片[Card2];Total1=总计+卡[Card3]
交易总计=卡[Card1]+卡[Card2]+卡[Card3]
。基本上,你有
x=a+b;x=x+c
y=a+b+c
。你为什么期望他们与众不同?谢谢。我不知道,谢谢你。我不知道,谢谢你。我不知道,谢谢你。我不知道谢谢你!我设法解决了问题并完成了游戏。谢谢!