&引用;或;while循环不工作-Python

&引用;或;while循环不工作-Python,python,variables,while-loop,Python,Variables,While Loop,在我们开始之前,我对python还很陌生 这段代码应该创建一个5张牌的手牌,稍后将在“钓鱼”游戏中使用。有这么多变量的原因是为了以后在游戏中使用,所以如果可能的话,请忽略混乱 显然,这张牌不能重复,因为在一副普通的牌中,每张牌只有一张。为了避免使用两张相同的牌来创建手牌,我使用了while循环(如代码中所示)。不过,我似乎对while循环有问题。“or”语句似乎在代码中产生了一个问题,它不会在shell中执行(甚至没有出现“>>>”,只是一个空白光标) 为了解决执行问题,我将代码更改为使用等号

在我们开始之前,我对python还很陌生

这段代码应该创建一个5张牌的手牌,稍后将在“钓鱼”游戏中使用。有这么多变量的原因是为了以后在游戏中使用,所以如果可能的话,请忽略混乱

显然,这张牌不能重复,因为在一副普通的牌中,每张牌只有一张。为了避免使用两张相同的牌来创建手牌,我使用了while循环(如代码中所示)。不过,我似乎对while循环有问题。“or”语句似乎在代码中产生了一个问题,它不会在shell中执行(甚至没有出现“>>>”,只是一个空白光标)

为了解决执行问题,我将代码更改为使用等号

例如: 而p55==p11=p22=p33=p44:

但是,在运行代码时,我仍然会遇到重复的卡片

如果有人能帮我找出如何避开这个重复的错误,那就太好了

提前谢谢你

def player_hand():
    CardSuit = ['Hearts','Diamonds','Clubs','Spades']
    CardNum = ['Ace','Two','Three','Four','Five','Six','Seven','Eight','Nine','Ten','Jack','Queen','King']

    PlayerHand = []

    p1 = str(random.choice(CardNum))
    p11 = p1, 'of', str(random.choice(CardSuit))
    p111 = " ".join(p11)
    PlayerHand.append(p111)

    p2 = str(random.choice(CardNum))
    p22 = p2, 'of', str(random.choice(CardSuit))
    while p22 == p11 :
        p2 = str(random.choice(CardNum))
        p22 = p2, 'of', str(random.choice(CardSuit))
    p222 = " ".join(p22)
    PlayerHand.append(p222)

    p3 = str(random.choice(CardNum))
    p33 = p3, 'of', str(random.choice(CardSuit))
    while p33 == p11 or p22 :
        p3 = str(random.choice(CardNum))
        p33 = p3, 'of', str(random.choice(CardSuit))
    p333 = " ".join(p33)
    PlayerHand.append(p333)

    p4 = str(random.choice(CardNum))
    p44 = p4, 'of', str(random.choice(CardSuit))
    while p44 == p11 or p22 or p33 :
        p4 = str(random.choice(CardNum))
        p44 = p4, 'of', str(random.choice(CardSuit))
    p444 = " ".join(p44)
    PlayerHand.append(p444)

    p5 = str(random.choice(CardNum))
    p55 = p5, 'of', str(random.choice(CardSuit))
    while p55 == p11 or p22 or p33 or p44 :
        p5 = str(random.choice(CardNum))
        p55 = p5, 'of', str(random.choice(CardSuit))
    p555 = " ".join(p55)
    PlayerHand.append(p555)

    return PlayerHand
这与

p33 == p11 or p33 == p22
这类问题经常出现,这里是

第一种情况不起作用的原因:

p33 == p11 or p22
被闯入

(p33 == p11) or (p22)
请注意,
p22
的真实性是单独评估的

这与

p33 == p11 or p33 == p22
这类问题经常出现,这里是

第一种情况不起作用的原因:

p33 == p11 or p22
被闯入

(p33 == p11) or (p22)
请注意,
p22
的真实性是单独评估的

这与

p33 == p11 or p33 == p22
这类问题经常出现,这里是

第一种情况不起作用的原因:

p33 == p11 or p22
被闯入

(p33 == p11) or (p22)
请注意,
p22
的真实性是单独评估的

这与

p33 == p11 or p33 == p22
这类问题经常出现,这里是

第一种情况不起作用的原因:

p33 == p11 or p22
被闯入

(p33 == p11) or (p22)

请注意,
p22
的真实性是单独评估的。

前者的理解就像您说的
(p33==p11)或(p22)
Ok一样。非常感谢你!前者被理解为好像您说了
(p33==p11)或(p22)
Ok。非常感谢你!前者被理解为好像您说了
(p33==p11)或(p22)
Ok。非常感谢你!前者被理解为好像您说了
(p33==p11)或(p22)
Ok。非常感谢你!请注意,您可以像使用操作符中的
一样进行许多比较。例如,
而p55 in(p11、p22、p33、p44):
。或者,由于所有信息都在PlayerHand变量中,因此您可以在PlayerHand:
中执行
而p55处于PlayerHand:
中。注意,您可以执行许多与
in
运算符类似的比较。例如,
而p55 in(p11、p22、p33、p44):
。或者,由于所有信息都在PlayerHand变量中,因此您可以在PlayerHand:中执行
而p55处于PlayerHand:
中。注意,您可以执行许多与
in
运算符类似的比较。例如,
而p55 in(p11、p22、p33、p44):
。或者,由于所有信息都在PlayerHand变量中,因此您可以在PlayerHand:中执行
而p55处于PlayerHand:
中。注意,您可以执行许多与
in
运算符类似的比较。例如,
而p55位于(p11、p22、p33、p44):
。或者,由于所有信息都在PlayerHand变量中,因此可以在PlayerHand中执行
而p55位于PlayerHand: