Python 我不知道';I don’我不知道如何使while循环持续到列表不出现';我没有任何剩余值

Python 我不知道';I don’我不知道如何使while循环持续到列表不出现';我没有任何剩余值,python,python-3.x,Python,Python 3.x,我试图用python重新创建纸牌游戏“War”,但在列表中的所有值都消失之前,我不知道如何在注释下循环代码。因此,基本上,代码生成一副洗牌,并从列表中弹出这些牌。我想让代码重复,直到所有的牌都从牌堆中弹出,我不知道怎么做 import random def shuffled_deck(): deck = list(range(2, 15)) *4 random.shuffle(deck) return deck userdeck = shuffled_deck() print(&

我试图用python重新创建纸牌游戏“War”,但在列表中的所有值都消失之前,我不知道如何在注释下循环代码。因此,基本上,代码生成一副洗牌,并从列表中弹出这些牌。我想让代码重复,直到所有的牌都从牌堆中弹出,我不知道怎么做

import random
def shuffled_deck():
  deck = list(range(2, 15)) *4
  random.shuffle(deck)
  return deck


userdeck = shuffled_deck()
print("welcome to War!")
user1 = input("Player-1 name: ")
user2 = input("Player-2 name: ")
u1points = 0
u2points = 0
drawturns = 0
# - I want to loop the segment of code under this comment

usercard = userdeck.pop()
u1card = usercard
print(user1 + ": " + str(u1card))
usercard = userdeck.pop()
u2card = usercard
print(user2 + ": " + str(u2card))
if u1card > u2card:
  print(str(u1card) + " is greater than " + str(u2card) + ".")
  print(user1 + " won this round.")
  u1points +=1
elif u2card > u1card:
  print(str(u2card) + " is greater than " + str(u1card) + ".")
  print(user2 + " won this round.")
  u2points +=1
else:
  print("It's a draw, try again.")
  while u1card == u2card:
    drawturns +=1
    usercard = userdeck.pop()
    u1card = usercard
    print(user1 + ": " + str(u1card))
    usercard = userdeck.pop()
    u2card = usercard
    print(user2 + ": " + str(u2card))
    if u1card > u2card:
      print(str(u1card) + " is greater than " + str(u2card) + ".")
      print(user1 + " won this round.")
      u1points +=1
      u1points + drawturns
    elif u2card > u1card:
      print(str(u2card) + " is greater than " + str(u1card) + ".")
      print(user2 + " won this round.")
      u2points +=1
      u1points + drawturns
    else:
      print("It's a draw, try again.")
    if u1card == u2card == False:
      drawturns = 0
      break
你可以做:

while len(userdeck)>0:
或者,您可以灵活地编写以下内容:

while userdeck:
这是因为空列表被视为
False
,而非空列表被视为
True
。因此,当userdeck为空时,
while
循环将假定它为
False
大小写,因此循环将停止。同样的概念也适用于
if
语句。

您可以:

while len(userdeck)>0:
或者,您可以灵活地编写以下内容:

while userdeck:

这是因为空列表被视为
False
,而非空列表被视为
True
。因此,当userdeck为空时,
while
循环将假定它为
False
大小写,因此循环将停止。同样的概念也适用于
if
语句。

而len(userdeck)>0:
?@Barmar也可以将其简化为简单的
,而userdeck:
感谢它的工作
,而len(userdeck)>0:
?@Barmar也可以将其简化为简单的
,而userdeck:
感谢它的工作