我正在尝试用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":