Python 石头、布、剪刀——巨蟒

Python 石头、布、剪刀——巨蟒,python,Python,当我运行我的代码时,它会给出正确的答案,但是,答案会一直重复,直到我杀死程序。我会解决这个问题 import random RPS = ("Rock", "Paper", "Scissors") computer = random.choice(RPS) Player = input("Enter Rock, Paper, or Scissors : ") player = False while player == False: if Player == computer:

当我运行我的代码时,它会给出正确的答案,但是,答案会一直重复,直到我杀死程序。我会解决这个问题

import random

RPS = ("Rock", "Paper", "Scissors")
computer = random.choice(RPS)
Player = input("Enter Rock, Paper, or Scissors : ")
player = False

while player == False:
    if Player == computer:
        print("It is a tie")
    elif Player == "Rock":
        if computer == "Paper":
            print("You have lost,", computer, "covers", Player)
        else:
            print("You win,", player, "beats", computer)
    elif Player == "Scissors":
        if computer == "Rock":
            print("You have lost,", computer, "breaks", Player)
        else:
            print("You win,", Player, "beats", computer)
    elif Player == "Paper":
        if computer == "Scissors":
            print("You have lost,", computer, "cuts", Player)
        else:
            print("You win,", Player, "beats", computer)
    else:
        print("That is a invalid entry")

您正在循环
,而player==False
。这是在循环开始之前设置的,在循环过程中的任何时候都不要修改。因此,玩家将始终等于
False
。您可以在循环期间设置
player=True
,也可以利用
break


您的代码中有两个问题:

  • 你有无限循环,因为
    player
    在循环之前被初始化为
    False
    ,并且在循环内部没有改变(但这可能是你想要的行为-无限循环的游戏,直到程序被杀死)
  • 主要的问题是,计算机和用户的选择都在循环之外,这会导致它们被选中一次,并且在整个游戏过程中保持不变。如果要更改每轮中拾取的值,请将这些线移动到循环中
要将游戏更改为具有预定义的回合数,请尝试以下操作:

import random
rounds = 3 # you can change it
for _ in range(rounds):
    RPS = ("Rock", "Paper", "Scissors")
    computer = random.choice(RPS)
    Player = input("Enter Rock, Paper, or Scissors : ")
    if Player == computer:
        print("It is a tie")
    elif Player == "Rock":
        if computer == "Paper":
            print("You have lost,", computer, "covers", Player)
        else:
            print("You win,", Player, "beats", computer)
    elif Player == "Scissors":
        if computer == "Rock":
            print("You have lost,", computer, "breaks", Player)
        else:
            print("You win,", Player, "beats", computer)
    elif Player == "Paper":
        if computer == "Scissors":
            print("You have lost,", computer, "cuts", Player)
        else:
            print("You win,", Player, "beats", computer)
    else:
        print("That is a invalid entry")

你明白为什么它不断重复吗?