你好,我正在做一些个人的python学习,我有一个实践问题,我想弄清楚。主要目标是在计算机上玩剪刀石头布。您应该输入“纸”,“石头”或“剪刀”作为用户答案,然后计算机将随机生成一个1-3的数字,该数字与特定选择相对应。如果用户输入1-3中的数字,我可以使程序正常运行,但这不是问题所要的。我觉得我已经尝试了所有类似将每个名称分配给相应数字的操作,创建了一个if then语句,然后将选择项重新分配给数值,但是它总是在输入提示后卡住,并且不会随代码一起前进。我知道问题很可能出在第6行,因为那是它执行的最后一个位置..不知道如何解决它。同样,如果有人可以给我一些指导,让我可以更清洁一点,或者在效率和清洁度方面大概是什么样。请记住,我还没有学到像字典列表这样的高级内容。现在应该使用基本的东西解决问题。谢谢!
import random
def main():
global user_answer
print('lets play paper rock scissors')
number = comp_answer()
user_answer = int(input('What do you choose?')) <--- # i know the change would be
while number = comp_answer(): # here.... maybe str(input(' '))
tie(number) # then define the choices? tried
paper_rock_scissors(number) # that and failed not sure if i'm
# doing it wrong.
def comp_answer():
number = random.randint(1,4)
return number
def tie(number):
print("its a tie!")
print ("tie breaker")
user_answer = input('What do you choose?')
def paper_rock_scissors(number):
if number == 3 and user_answer == 1:
print("computer: scissors")
print("you: ",user_answer )
print("you won!")
print("rocks smashes scissors")
elif number == 3 and user_answer == 2:
print("computer: scissors")
print("you: ",user_answer )
print("Game over")
print("scissors cuts paper")
elif number == 1 and user_answer == 3:
print("computer: rock")
print("you: ",user_answer )
print("Game over")
print("rocks smashes scissors")
elif number == 2 and user_answer == 3:
print("computer: paper")
print("you: ",user_answer )
print("you won!")
print("scissors cuts paper")
elif number == 1 and user_answer == 2:
print("computer: rock")
print("you: ",user_answer )
print("you won!")
print("paper covers rock")
elif user_answer == 1 and number == 2:
print("computer: paper")
print("you: ",user_answer )
print("Game over")
print("paper covers rock")
main()