【问题标题】:Python dictionary TypeErrorPython字典类型错误
【发布时间】:2018-05-10 04:05:48
【问题描述】:

当我在 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”

我该如何解决这个问题?

【问题讨论】:

  • 为什么会有del 声明?有什么意义吗?
  • @SruthiV,我假设del 声明是在第二张牌被抽出之前从牌组中取出牌,因为你不应该从一个牌组中抽出两张相同的牌。

标签: python python-3.x dictionary


【解决方案1】:

您所做的基本上是正确的,但是您的某些操作顺序错误。您需要在将第一张卡从牌组中删除之前获取第一张卡的值,而不是之后。我对您的代码的返工:

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)

输出

> python3 test.py
A ◆
9 ♥
20
>

【讨论】:

    猜你喜欢
    • 2013-03-02
    • 2021-04-19
    • 1970-01-01
    • 1970-01-01
    • 2012-09-10
    • 1970-01-01
    • 1970-01-01
    • 2016-01-11
    • 1970-01-01
    相关资源
    最近更新 更多