簡體   English   中英

“TypeError:'NoneType' 類型的參數不可迭代”?

[英]“TypeError: argument of type 'NoneType' is not iterable”?

這是我編寫的一些 Python 代碼,用於生成隨機撲克手,只是為了它/為了挑戰,但是當我嘗試運行它時,我在“如果手牌”行上出現錯誤。 發生了什么事,為什么會發生這種情況,特別是因為那條線沒有迭代?

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

hand = hand.append(card)

append不返回任何內容。 將其更改為:

hand.append(card)

列表的append()方法不返回列表,它會修改它。 因此,在添加第一張卡片后(使用hand = hand.append(card) ),hand 被設置為append()的返回值,即None (沒有顯式return的方法的返回值)。 你應該把它hand.append(card)

list.append 不會返回附加值的列表,而是將值原地附加到列表並返回無。 改為這樣做:

else:
hand.append(card)...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM