为什么 python 不接受我的输入并使用它?

Why is python not taking my input and using it?

当它问我放不的时候,它只是跳过了我放不的事实,当我放不的时候,它只是重新问我是否要打。

我试过在你不想打的时候做一个新的 while 语句,但它仍然没有用。

import time
from random import randint
cardg = 0
cardg1 = 0
yeet = 1
while cardg < 21:
    hit = input("Do you want to hit? (Yes or No): ")
    if hit == "yes" or hit == "Yes":
        num = randint(1, 10)
        num2 = randint(1, 4)
        card = num
        card2 = num2

        if num == 1:
            card1 = "Ace"
        elif num == 11:
            card1 = "Jack"
        elif num == 12:
            card1 = "Queen"
        elif num == 13:
            card1 = "King"
        if num2 == 1:
            card2 = "Hearts"
        if num2 == 2:
            card2 = "Diamonds"
        if num2 == 3:
            card2 = "Spades"
        if num2 == 4:
            card2 = "Clubs"

        if num == 1:
            card = input("Would you like your ace to be a 1 or 11?\nAnswer: ")
            print("Ace of " + str(card2))
        cardg += int(card)
        time.sleep(1)
        if cardg < 21:
            print(str(card) + " of " + str(card2))
        elif cardg == 21:
            time.sleep(1)
            print(str(card) + " of " + str(card2))
            print("Blackjack, you win!")
            yeet = 0
        elif cardg > 21:
            print(str(card) + " of " + str(card2))
            print("Busted, you lose.")
            yeet = 0
    else:
        while cardg1 < 21 and cardg1 > 18:
            num = randint(1, 11)
            cardg1 += int(num)
            num2 = randint(1, 4)
            card = num
            card2 = num2

            if num == 1:
                card1 = "Ace"
            elif num == 11:
                card1 = "Jack"
            elif num == 12:
                card1 = "Queen"
            elif num == 13:
                card1 = "King"
            if num2 == 1:
                card2 = "Hearts"
            if num2 == 2:
                card2 = "Diamonds"
            if num2 == 3:
                card2 = "Spades"
            if num2 == 4:
                card2 = "Clubs"
            cardg1 += int(card)
            time.sleep(1)
            if cardg1 < 21 and cardg1 > 18:
                print(str(card) + " of " + str(card2))
                print("You have " + str(cardg) + " points, dealer has " + str(cardg1) + " points.")
                if cardg > cardg1:
                    print("Dealer has won!")
                    yeet = 0
                else:
                    print("You have won!")
                    yeet = 0
            elif cardg1 == 21:
                time.sleep(1)
                print(str(card) + " of " + str(card2))
                print("Dealer has blackjack, you lose!")
                yeet = 0
            elif cardg1 > 21:
                print(str(card) + " of " + str(card2))
                print("Dealer busted, you win!")
                yeet = 0

当运行时,就是这个输出。获取 21 和破坏代码有效。

Do you want to hit? (Yes or No): yes
3 of Clubs
Do you want to hit? (Yes or No): yes
9 of Hearts
Do you want to hit? (Yes or No): no
Do you want to hit? (Yes or No): n
Do you want to hit? (Yes or No): no
Do you want to hit? (Yes or No):

cardg1初始化为0。因此,while 条件 cardg1 < 21 and cardg1 > 18 失败,因为 0 不在 1821 之间,因此 else 块什么都不做。