Индексирование значения обратно в список - почему говорится, что его нет в списке? - PullRequest
0 голосов
/ 19 января 2019

Я пытаюсь использовать функцию list.index (), но она говорит, что объекта, который я пытаюсь проиндексировать, нет в списке.

Я не очень старался, потому что, честно говоря, я не очень много знаю о Python, но я попытался найти вопрос в Интернете.

heartsCards = ["Ace of Hearts","Two of Hearts","Three of Hearts","Four of Hearts","Five of Hearts","Six of Hearts","Seven of Hearts","Eight of Hearts","Nine of Hearts","Ten of Hearts","Jack of Hearts","Queen of Hearts","King of Hearts"]
diamondsCards = ["Ace of Diamonds","Two of Diamonds","Three of Diamonds","Four of Diamonds","Five of Diamonds","Six of Diamonds","Seven of Diamonds","Eight of Diamonds","Nine of Diamonds","Ten of Diamonds","Jack of Diamonds","Queen of Diamonds","King of Diamonds"]
clubsCards = ["Ace of Clubs","Two of Clubs","Three of Clubs","Four of Clubs","Five of Clubs","Six of Clubs","Seven of Clubs","Eight of Clubs","Nine of Clubs","Ten of Clubs","Jack of Clubs","Queen of Clubs","King of Clubs"]
spadesCards = ["Ace of Spades","Two of Spades","Three of Spades","Four of Spades","Five of Spades","Six of Spades","Seven of Spades","Eight of Spades","Nine of Spades","Ten of Spades","Jack of Spades","Queen of Spades","King of Spades"]

yourCards = []

cardValue = 0

def pickUp():
    randomNum = random.randint(1,4)

    if randomNum == 1:
        temp = random.choice(heartsCards)
        yourCards.append(temp)
        heartsCards.remove(temp)

    if randomNum == 2:
        temp = random.choice(diamondsCards)
        yourCards.append(temp)
        diamondsCards.remove(temp)

    if randomNum == 3:
        temp = random.choice(clubsCards)
        yourCards.append(temp)
        clubsCards.remove(temp)

    if randomNum == 4:
        temp = random.choice(spadesCards)
        yourCards.append(temp)
        spadesCards.remove(temp)

def cardCount():
    global cardValue

    for card in yourCards:
        if card.count("Hearts") != 0:
            cardValue =+ heartsCards.index(card) + 1

        if card.count("Diamonds") != 0:
            cardValue =+ diamondsCards.index(card) + 1

        if card.count("Clubs") != 0:
            cardValue =+ clubsCards.index(card) + 1

        if card.count("Spades") != 0:
            cardValue =+ spadesCards.index(card) + 1
    return cardValue 

pickUp()
pickUp()

cardCount()

Я ожидал, что переменная cardValue будет напечатана как значение карт. Однако я получил эту ошибку:

Traceback (most recent call last):
  File "C:\Users\User\Desktop\Python\Pontoon.py", line 97, in <module>
    cardCount()
  File "C:\Users\User\Desktop\Python\Pontoon.py", line 68, in cardCount
    cardValue =+ diamondsCards.index(card) + 1
ValueError: 'Nine of Diamonds' is not in list

1 Ответ

0 голосов
/ 19 января 2019

что jasonharper сказал в комментарии, работает:

Когда pickUp() выбирает карту, она удаляется из списка мастей.Вы больше не можете использовать .index(), чтобы найти свою позицию в этом списке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...