Python &引用;TypeError:参数类型为';非类型';是不是很难理解;?

Python &引用;TypeError:参数类型为';非类型';是不是很难理解;?,python,if-statement,iteration,typeerror,Python,If Statement,Iteration,Typeerror,下面是一些Python代码,我编写这些代码是为了生成一个随机扑克牌,只是为了验证一下/为了挑战,但是当我尝试运行它时,我在上面的“if card in hand”行中得到了错误。发生了什么,为什么会发生这种情况,特别是因为这行没有迭代 import random def pokerHand(): hand = ["This is your hand:"] x = 0 while x < 5: cardNum = random.randrange(13

下面是一些Python代码,我编写这些代码是为了生成一个随机扑克牌,只是为了验证一下/为了挑战,但是当我尝试运行它时,我在上面的“if card in hand”行中得到了错误。发生了什么,为什么会发生这种情况,特别是因为这行没有迭代

import random
def pokerHand():
    hand = ["This is your hand:"]
    x = 0
    while x < 5:
        cardNum = random.randrange(13) + 1
        if cardNum == 1:
            cardNum = "Ace of "
        elif cardNum == 11:
            cardNum = "Jack of "
        elif cardNum == 13:
            cardNum = "King of "
        elif cardNum == 12:
        cardNum = "Queen of "
        else:
            cardNum = str(cardNum) + " of "
        cardSuit = random.randrange(4)
        if cardSuit == 0:
            cardSuit = "Clubs"
        elif cardSuit == 1:
            cardSuit = "Diamonds"
        elif cardSuit == 3:
            cardSuit = "Hearts"
        elif cardSuit == 2:
            cardSuit = "Spades"
        card = cardNum + cardSuit
        if card in hand: #<the line of error
            pass
        else:
            hand = hand.append(card)
            x = x + 1
    for xx in hand:
        print xx
随机导入
def poker hand():
手=[“这是你的手:”]
x=0
当x<5时:
cardNum=random.randrange(13)+1
如果cardNum==1:
cardNum=“王牌”
elif cardNum==11:
cardNum=“杰克的”
elif cardNum==13:
cardNum=“国王”
elif cardNum==12:
cardNum=“女王”
其他:
cardNum=str(cardNum)+“of”
cardSuit=random.randrange(4)
如果cardSuit==0:
cardSuit=“俱乐部”
elif cardSuit==1:
cardSuit=“钻石”
elif cardSuit==3:
cardSuit=“红心”
elif cardSuit==2:
cardSuit=“黑桃”
card=cardNum+cardSuit
如果手中有卡片:#
hand=hand.append(卡片)

append
不返回任何内容。将其更改为:


hand.append(card)

列表的
append()
方法不会返回列表,而是在适当的位置对其进行修改。因此,在添加第一张卡(使用
hand=hand.append(card)
)后,hand被设置为
append()
的返回值,即
None
(没有显式
返回的方法的返回值)。您应该将其更改为仅手。追加(卡片)
列表。追加不会返回附加值的列表,而是将值追加到列表中,并且不返回任何值。改为这样做:

其他:
追加(卡片)

…doh。我知道。感谢您提醒我列表使用的基本知识之一。。。我还是不知道我怎么忘了。再次感谢。