石头剪刀布游戏-代码没有给我任何输出



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

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":

最新更新