Rock Paper Scissors Game - 代码没有给我任何输出

Rock Paper Scissors Game - Code does not give me any output

我正在尝试在 Python 中制作剪刀石头布游戏,但是当我 运行 并写入输入时,控制台上绝对没有输出,也没有错误。就像代码 运行s 卡住了一样,我真的不确定为什么会这样,或者我的错误在哪里。我的代码是:

from random import randrange

computer=randrange(1,4)
human=input("Write your answer (paper, rock or scissor ")

def convertir (numero):
    if numero == "rock":
        return 1
    elif numero == "paper":
        return 2
    elif numero == "scissor":
        return 3
    else:
        return "Write good choice"

result=convertir(human)

while True:
    if result == "rock" or result == "paper" or result == "scissor":
        break
    else:
        continue


def decision (choose):
    if choose == 1 and computer == 2:
        return "You have Lost (YOU: Rock vs COMPUTER: Paper)"
    elif choose == 1 and computer == 3:
        return "You have win (YOU: Rock vs COMPUTER: Scissor)"
    elif choose == 2 and computer == 1:
        return "You have won (YOU: Paper vs COMPUTER: Rock)"
    elif choose == 2 and computer == 3:
        return "You have lost (YOU: Paper vs COMPUTER: Scissor)"
    elif choose == 3 and computer == 1:
        return "You have lost (YOU: Scissor vs COMPUTER: Rock)"
    elif choose == 3 and computer == 2:
        return "You have won (YOU: Scissor vs COMPUTER: Paper)"
    elif choose == computer:
        return "DRAW"
    elif choose == 3 and computer == 1:
        return "You have lost (YOU: Scissor vs COMPUTER: Rock)"
    elif choose == 3 and computer == 2:
        return "You have won (YOU: Scissor vs COMPUTER: Paper)"

convertir(human)
print(decision(result))

您需要在 while 循环中请求新的输入。否则循环将继续重复相同的测试。

由于您正在检查输入的字符串格式,因此您需要与 human 进行比较,而不是 result

print(decision(result))之前不需要再次调用convertir()

from random import randrange

computer=randrange(1,4)

def convertir (numero):
    if numero == "rock":
        return 1
    elif numero == "paper":
        return 2
    elif numero == "scissor":
        return 3
    else:
        return "Write good choice"

while True:
    human=input("Write your answer (paper, rock or scissor ")
    if human in ("rock", "paper", "scissor")
        break
    else:
        print("Write good choice")

result=convertir(human)

def decision (choose):
    if choose == 1 and computer == 2:
        return "You have Lost (YOU: Rock vs COMPUTER: Paper)"
    elif choose == 1 and computer == 3:
        return "You have win (YOU: Rock vs COMPUTER: Scissor)"
    elif choose == 2 and computer == 1:
        return "You have won (YOU: Paper vs COMPUTER: Rock)"
    elif choose == 2 and computer == 3:
        return "You have lost (YOU: Paper vs COMPUTER: Scissor)"
    elif choose == 3 and computer == 1:
        return "You have lost (YOU: Scissor vs COMPUTER: Rock)"
    elif choose == 3 and computer == 2:
        return "You have won (YOU: Scissor vs COMPUTER: Paper)"
    elif choose == computer:
        return "DRAW"
    elif choose == 3 and computer == 1:
        return "You have lost (YOU: Scissor vs COMPUTER: Rock)"
    elif choose == 3 and computer == 2:
        return "You have won (YOU: Scissor vs COMPUTER: Paper)"

print(decision(result))

不太清楚您一开始为什么要费心使用数字。你没有用它做任何数字,它也不会使代码更容易阅读。为什么要使用像

这样难以理解的数字
if choose == 3 and computer == 2:

而不是

if choose == "scissor" and computer == "paper":