首页 > 解决方案 > 为什么我的while循环没有进入里面的if语句?

问题描述

石头剪刀布 pt 2...

我正在尝试制作一个石头剪刀布游戏,到目前为止我有这个:

from random import randint
print("Rock...")
print("Paper...")
print("Scissors...")

player_wins = 0
computer_wins = 0

while player_wins < 3 and computer_wins < 3:
    print(f"{computer_wins} to {player_wins}")

    player1 = input("Player 1, make your move: ").lower()
    computer_choices = ["rock", "paper", "scissors"]
    computer_choice = randint(0, 2)
    computer = [computer_choices[computer_choice]]
    print(computer)

    if player1 == computer:
        print("It's a tie!")

    elif player1 == "rock":
        if computer == "scissors":
            print("player1 wins!")
            player_wins += 1
        elif computer == "paper":
            print("computer wins!")
            computer_wins += 1

    elif player1 == "paper":
        if computer == "rock":
            print("player1 wins!")
            player_wins += 1
        elif computer == "scissors":
            print("computer wins!")
            computer_wins += 1

    elif player1 == "scissors":
        if computer == "rock":
            print("computer wins!")
            computer_wins += 1
        if computer == "paper":
            print("player1 wins!")
            player_wins += 1
    else:
        print("something went wrong")

基本上我想做的是让它接受一个输入,选择一个随机选择,然后比较这些选择。我把前两部分放在了下面,它选择一个选项并接受输入,但它没有在 while 循环内输入 if 语句。它只会永远持续下去。

我在这里做错了什么?

标签: pythonif-statementwhile-loop

解决方案


计算机选择始终是一个列表,您将其与字符串进行比较。

更改此行:

computer = [computer_choices[computer_choice]]  # list with one string item

对此:

computer = computer_choices[computer_choice]  # string

游戏在此更改下正常运行。


推荐阅读