python忽略if语句

0 python if-statement syntax-error python-3.x

我一直在研究python程序,用户在计算机上玩摇滚,纸张,剪刀.

提示用户输入0表示纸张,1表示摇滚,2表示剪刀.我的程序将打印每个玩家选择的内容,理想情况下我希望它也能说"Paper cover rock.你赢了"但我似乎无法让我的if语句工作,而且我希望我的程序打印"你选择了纸"等等,但它不是说岩石,纸或剪刀,它仍然说0,1和2.

我尝试分配纸张= 0.我想也许它不起作用,因为数字不是字符串所以我尝试添加括号paper ="0",但这也不起作用.此外,当我创建变量'player'时,我认为我正确地使用字符串函数来将输入的任何整数转换为字符串,但也许有些东西我没有看到.

后来我试图避免将纸张,岩石和剪刀分配给整数,而是创建新的变量.但是,在我的if语句中创建的新变量被声明为undefined,所以我必须以某种方式搞砸了它.我很困惑为什么它不起作用,因为其他人为了相同的目的编写了一个程序,使用if语句创建新变量并且他的程序工作.

我认为可能存在错误的另一个地方是我如何用elif而不是其他方式结束我的if语句所以我改变了它并且得到了另一个错误的语法错误.我一直在读我的教科书并在互联网上搜索,所以如果我错过了一些显而易见的东西,我很抱歉.我是编程的超级,超级,超级新手,所以我的知识非常有限.这段代码今天已经变得非常扭曲,以至于我甚至无法记住它至少能够完成编译而不会遇到错误.

由于此代码现在因为未定义player1而遇到错误.对不起,这个程序真让人眼前一亮.

    import random
    player = input(str("Enter 0 for paper, 1 for rock, and 2 for scissors:" ))
    computer = str(random.randint(0,2))
    if player == 0:
       player1 == "paper"
    elif player == 1:
       player1 == "rock"
    elif player == 2:
       player1 == "scissors"
    elif computer == 0:
       computer1 == "paper"
    elif computer == 1:
       computer1 == "rock"
    elif computer == 2:
       computer1 == "scissors"
    print ("You chose " + player1 , "and the computer chose " , + computer1)
    if player == "paper" and computer == "rock":
       print("Paper covers rock. You win!")
    elif player == "paper" and computer == "scissors":
       print("Scissors cut paper. You lose!")
    elif player == "paper" and computer == "paper":
       print("You both chose paper. It's a draw!")
    elif player == "rock" and computer == "paper":
       print("Paper covers rock. You lose!")
    elif player == "rock" and computer == "rock":
       print("You both chose rock. It's a draw!")
    elif player == "rock" and computer == "scissors":
       print("Rock beats scissors. You win!")
    elif player == "scissors" and computer == "paper":
       print("Scissors cut paper. You win!")
    elif player == "scissors" and computer == "rock":
       print("Rock beats scissors. You lose!")
    elif player == "scissors" and computer == "scissors":
       print("You both chose scissors. It's a draw")
Run Code Online (Sandbox Code Playgroud)

更新:在我注意到一些错误后,我已修复了一些问题,现在我的代码如下所示:

    import random

    player = input("Enter 0 for paper, 1 for rock, and 2 for scissors:" )
    computer = random.randint(0,2)

    if player == 0:
       player1 = "paper"
    elif player == 1:
       player1 = "rock"
    elif player == 2:
       player1 = "scissors"

    if computer == 0:
       computer1 = "paper"
    elif computer == 1:
       computer1 = "rock"
    elif computer == 2:
       computer1 = "scissors"

    print ("You chose " + player1 , "and the computer chose " + computer1)

    if player1 == "paper" and computer1 == "rock":
       print("Paper covers rock. You win!")
    elif player1 == "paper" and computer1 == "scissors":
       print("Scissors cut paper. You lose!")
    elif player1 == "paper" and computer1 == "paper":
       print("You both chose paper. It's a draw!")
    elif player1 == "rock" and computer1 == "paper":
       print("Paper covers rock. You lose!")
    elif player1 == "rock" and computer1 == "rock":
       print("You both chose rock. It's a draw!")
    elif player1 == "rock" and computer1 == "scissors":
       print("Rock beats scissors. You win!")
    elif player1 == "scissors" and computer1 == "paper":
       print("Scissors cut paper. You win!")
    elif player1 == "scissors" and computer1 == "rock":
       print("Rock beats scissors. You lose!")
    elif player1 == "scissors" and computer1 == "scissors":
       print("You both chose scissors. It's a draw")
Run Code Online (Sandbox Code Playgroud)

我现在收到错误:

   NameError: name 'player1' is not defined
Run Code Online (Sandbox Code Playgroud)

Lei*_*all 5

使用==了比较和=赋值:

if player == 0:
   player1 = "paper"
....
Run Code Online (Sandbox Code Playgroud)