-2

我是 Python 的初学者,所以这个问题的答案可能非常简单,但我似乎无法弄清楚。

我正在制作一个简单的 Rock,Paper,Scissors 游戏并导入 random 和 randint 以随机化“计算机”所做的选择,但在我的程序运行一两次后它开始给出“IndexError: list index out of range”</p>

我希望你能帮我解决这个问题。

我的一段代码如下:

from random import randint
import time
import sys 

#Creating a list of possibilities
x=['Rock','Paper,''Scissors']

#Computer making a random choice
computer=x[randint(0,2)]

#This sets player to false to help in our While loop
player= False

while player==False:
4

3 回答 3

0

我建议改变几件事

在 X 的列表中,逗号位于字符串的中间,您可能希望使用更具描述性的变量名称,例如“x”,将其重命名为“list_of_choices”或“listOfChoices”是个好主意:)。最后,而不是使用“randint”函数,您应该使用它在列表中作为参数的选择函数并吐出一个随机选择。

这是我的实现: import random import time import sys

    #Creating a list of possibilities
    randomChoice = ['Rock','Paper','Scissors']
    computersChoice = random.choice(x)

希望这会有所帮助:D

于 2021-07-10T04:02:32.450 回答
0
x=['Rock','Paper,''Scissors']

这一行是问题所在——逗号在错误的位置。它在字符串里面'Paper,',但它应该在外面

于 2021-07-10T02:35:19.540 回答
0

您的代码的问题是您将逗号与“paper”字符串放在一起,而不是放在字符串之后。因为 paper 和 scissors 之间没有逗号,所以计算机将它们解释为一个元素,这意味着列表的长度是 2,而不是 3。这是完整的代码。我希望它有帮助:

from random import choice

# getting input from the user
user_choice = input("Rock, paper or scissors? ").lower()

# printing an error message and quiting the program if the input is invalid
if user_choice != "rock" and user_choice != "paper" and user_choice != "scissors":
    print("Error! Invalid answer!")
    quit()

# generating the computer's choice
options = ["rock", "paper", "scissors"]
computer_choice = choice(options)
print("The computer chose", computer_choice)

# checking all of the possible options and declaring who the winner is
if user_choice == computer_choice:
    print("You both chose", computer_choice, "therefore it's a tie!")
elif user_choice == "rock" and computer_choice == "paper":
    print("Paper beats rock, therefore the computer won!")
elif user_choice == "paper" and computer_choice == "rock":
    print("Paper beats rock, therefore you won!")
elif user_choice == "rock" and computer_choice == "scissors":
    print("Rock beats scissors, therefore you won!")
elif user_choice == "scissors" and computer_choice == "rock":
    print("Rock beats scissors, therefore the computer won!")
elif user_choice == "paper" and computer_choice == "scissors":
    print("Scissors beats paper, therefore the computer won!")
elif user_choice == "scissors" and computer_choice == "paper":
    print("Scissors beats paper, therefore you won!")
于 2021-07-15T11:47:08.297 回答