Python &引用;TypeError:参数类型为';非类型';是不是很难理解;?
下面是一些Python代码,我编写这些代码是为了生成一个随机扑克牌,只是为了验证一下/为了挑战,但是当我尝试运行它时,我在上面的“if card in hand”行中得到了错误。发生了什么,为什么会发生这种情况,特别是因为这行没有迭代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
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。我知道。感谢您提醒我列表使用的基本知识之一。。。我还是不知道我怎么忘了。再次感谢。