Python словарь TypeError - PullRequest
0 голосов
/ 10 мая 2018

Когда я получаю доступ к словарю в моей игре в блэкджек Python:

import random
deck= {'K ♥':'10' ,'Q ♥':'10','J ♥':'10','10 ♥':'10','9 ♥':'9','8 
♥':'8','7 ♥':'7','6 ♥':'6','5 ♥':'5','4 ♥':'4','3 ♥':'3','2 ♥':'2','A ♥':'11','K◆':'10','Q◆':'10','J◆':'10','10◆':'10','9◆':'9','8◆':'8','7◆':'7','6◆':'6','5◆':'5','4◆':'4','3◆':'3','2◆':'2','A◆':'11','K ♣':'10','Q ♣':'10','J ♣':'10','10 ♣':'10','9 ♣':'9','8 ♣':'8','7 ♣':'7','6 ♣':'6','5 ♣':'5','4 ♣':'4','3 ♣':'3','2 ♣':'2','A ♣':'11','K ♠':'10','Q ♠':'10','J ♠':'10','10 ♠':'10','9 ♠':'9','8 ♠':'8','7 ♠':'7','6 ♠':'6', '5 ♠':'5','4 ♠':'4','3 ♠':'3','2 ♠':'2','A ♠':'11'}
number= random.choice(list(deck.keys()))
del deck[number]
number2= random.choice(list(deck.keys()))
print(number)
print(number2)
value1 = int(deck.get(number))
value2 =int(deck.get(number2))
print(value1+value2)

Он продолжает говорить, что есть ошибка типа, я не могу добавить ни одного введите или строку:

TypeError: аргумент int () должен быть строкой, байтовоподобным объектом или номер, а не 'NoneType'

Как мне это исправить?

1 Ответ

0 голосов
/ 10 мая 2018

То, что вы делаете, в основном правильно, но некоторые операции выполняются в неправильном порядке. Вам нужно получить значение первой карты до того, как вы удалите ее из колоды, а не после. Моя переделка вашего кода:

import random

deck = {
'K ♥':10, 'Q ♥':10, 'J ♥':10, '10 ♥':10, '9 ♥':9, '8 ♥':8,
'7 ♥':7, '6 ♥':6, '5 ♥':5, '4 ♥':4, '3 ♥':3, '2 ♥':2, 'A ♥':11,
'K ◆':10, 'Q ◆':10, 'J ◆':10, '10 ◆':10, '9 ◆':9, '8 ◆':8,
'7 ◆':7, '6 ◆':6, '5 ◆':5, '4 ◆':4, '3 ◆':3, '2 ◆':2, 'A ◆':11,
'K ♣':10, 'Q ♣':10, 'J ♣':10, '10 ♣':10, '9 ♣':9, '8 ♣':8,
'7 ♣':7, '6 ♣':6, '5 ♣':5, '4 ♣':4, '3 ♣':3, '2 ♣':2, 'A ♣':11,
'K ♠':10, 'Q ♠':10, 'J ♠':10, '10 ♠':10, '9 ♠':9, '8 ♠':8,
'7 ♠':7, '6 ♠':6, '5 ♠':5, '4 ♠':4, '3 ♠':3, '2 ♠':2, 'A ♠':11
}

card1 = random.choice(list(deck))
value1 = deck.get(card1)
del deck[card1]

card2 = random.choice(list(deck))
value2 = deck.get(card2)

print(card1)
print(card2)
print(value1 + value2)

OUTPUT

> python3 test.py
A ◆
9 ♥
20
>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...