[英]“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.