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