Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python3.X石头剪纸蜥蜴斯波克发行版_Python - Fatal编程技术网

Python3.X石头剪纸蜥蜴斯波克发行版

Python3.X石头剪纸蜥蜴斯波克发行版,python,Python,您好,我是新的编码,但我已经被困在一个代码很长时间,似乎无法找到答案在这里的stackoverflow 无论我做什么,答案都会以玩家1获胜的第一张照片结束:玩家1获胜,石头击败剪刀 player1 = input("Player One do you want Rock, Paper, Scissors, Lizard or Spock?") player2 = input("Player Two do you want Rock, Paper, Scissors, Lizard or Spoc

您好,我是新的编码,但我已经被困在一个代码很长时间,似乎无法找到答案在这里的stackoverflow

无论我做什么,答案都会以玩家1获胜的第一张照片结束:玩家1获胜,石头击败剪刀

player1 = input("Player One do you want Rock, Paper, Scissors, Lizard or Spock?")
player2 = input("Player Two do you want Rock, Paper, Scissors, Lizard or Spock?")
print(player1)
print(player2)

rock = 1
paper = 2
scissors = 3
lizard = 4
spock = 5

#Tie

if (player1 == player2):
print("It's a tie.")

#Player 1 wins

elif (player1 == 1, player2 == 3):
    print("Player One wins, Rock beats Scissors.")
elif (player1 == 1, player2 == 4):
    print("Player One wins, Rock beats Lizard.")
elif (player1 == 2, player2 == 1):
    print("Player One wins, Paper beats Rock.")
elif (player1 == 2, player2 == 5):
    print("Player One wins, Paper beats Spock.")
elif (player1 == 3, player2 == 2):
    print("Player One wins, Scissors beats Paper.")
elif (player1 == 3, player2 == 4):
    print("Player One wins, Scissors beats Lizard.")
elif (player1 == 4, player2 == 2):
    print("Player One wins, Lizard beats Paper.")
elif (player1 == 4, player2 == 5):
    print("Player One wins, Lizard beats Spock.")
elif (player1 == 5, player2 == 3):
    print("Player One wins, Spock beats Scissors.")
elif (player1 == 5 , player2 == 1):
    print("Player One wins, Spock beats Rock.")

#Player 2 wins       

elif (player2 == 1, player1 == 3):
    print("Player Two wins, Rock beats Scissors.")
elif (player2 == 1, player1 == 4):
    print("Player Two wins, Rock beats Lizard.")
elif (player2 == 2, player1 == 1):
    print("Player Two wins, Paper beats Rock.")
elif (player2 == 2, player1 == 5):
    print("Player Two wins, Paper beats Spock.")
elif (player2 == 3, player1 == 2):
    print("Player Two wins, Scissors beats Paper.")
elif (player2 == 3, player1 == 4):
    print("Player Two wins, Scissors beats Lizard.")
elif (player2 == 4, player1 == 2):
    print("Player Two wins, Lizard beats Paper.")
elif (player2 == 4, player1 == 5):
    print("Player Two wins, Lizard beats Spock.")
elif (player2 == 5, player1 == 3):
    print("Player Two wins, Spock beats Scissors.")
elif (player2 == 5 , player1 == 1):
    print("Player Two wins, Spock beats Rock.")

你没有正确地构建你的条件

elif (player1 == 1, player2 == 3)
这将创建一个
tuple
,然后检查它的真实性,这总是成功的,因为
tuple
不是空的。您需要使用逻辑运算符

elif player1 == 1 and player2 == 3
这将检查这两个条件是否都正确。对代码中的所有类似实例执行此操作

此外,还不清楚您对用户的期望:

player1 = input("Player One do you want Rock, Paper, Scissors, Lizard or Spock?")
player2 = input("Player Two do you want Rock, Paper, Scissors, Lizard or Spock?")
print(player1)
print(player2)

rock = 1
paper = 2
scissors = 3
lizard = 4
spock = 5
看起来用户应该输入类似于
Rock
,然后您希望
Rock=1
行将
'Rock'
转换为
1
。它不是那样工作的。最基本的方法是使用另一个
if..elif
块,但字典会更好:

player1 = input("Player One do you want Rock, Paper, Scissors, Lizard or Spock?")
player2 = input("Player Two do you want Rock, Paper, Scissors, Lizard or Spock?")
print(player1)
print(player2)

d = {'Rock':1, 'Paper':2, 'Scissors':3, 'Lizard':4, 'Spock':5}

player1 = d.get(player1)
player2 = d.get(player2)

你没有正确地构建你的条件

elif (player1 == 1, player2 == 3)
这将创建一个
tuple
,然后检查它的真实性,这总是成功的,因为
tuple
不是空的。您需要使用逻辑运算符

elif player1 == 1 and player2 == 3
这将检查这两个条件是否都正确。对代码中的所有类似实例执行此操作

此外,还不清楚您对用户的期望:

player1 = input("Player One do you want Rock, Paper, Scissors, Lizard or Spock?")
player2 = input("Player Two do you want Rock, Paper, Scissors, Lizard or Spock?")
print(player1)
print(player2)

rock = 1
paper = 2
scissors = 3
lizard = 4
spock = 5
看起来用户应该输入类似于
Rock
,然后您希望
Rock=1
行将
'Rock'
转换为
1
。它不是那样工作的。最基本的方法是使用另一个
if..elif
块,但字典会更好:

player1 = input("Player One do you want Rock, Paper, Scissors, Lizard or Spock?")
player2 = input("Player Two do you want Rock, Paper, Scissors, Lizard or Spock?")
print(player1)
print(player2)

d = {'Rock':1, 'Paper':2, 'Scissors':3, 'Lizard':4, 'Spock':5}

player1 = d.get(player1)
player2 = d.get(player2)

当蒂格霍克覆盖你的情况时,你也必须将你的输入转换成ints

player1 = int(player1)
player2 = int(player2)
现在,您正在将str(您的输入)与int(
player==1
)进行比较。这不会让你得到你想要的

player1 == 1      #fails right now since it's like asking "1" == 1 which fails.
int(player1) == 1 # passes since it's asking 1 == 1. 

另外,您的
打印(“这是一个平局”)
缩进错误。

当TigerHawk覆盖您的条件时,您还必须将输入转换为ints

player1 = int(player1)
player2 = int(player2)
现在,您正在将str(您的输入)与int(
player==1
)进行比较。这不会让你得到你想要的

player1 == 1      #fails right now since it's like asking "1" == 1 which fails.
int(player1) == 1 # passes since it's asking 1 == 1. 

另外,您的
打印(“这是一个平局”)
缩进错误。

您的解决方案中的冒号缺失-它应该是
elif player1==1和player2==3:
这可能会让初学者感到困惑,因为@Omar说他是。@Maurice-我没有引用完整的行。您好,非常感谢您的回答,我不知道你可以用'and'和'd'。不幸的是,现在当我尝试进行任何组合时,除了用户输入(如1,2,3,4),它完全没有显示任何内容。@Omar-让用户输入他们想要的实际移动,像
Rock
Lizard
。你的解决方案中的冒号丢失了-它应该是
elif player1==1和player2==3:
这可能会让初学者感到困惑,因为@Omar说他是。@Maurice-我没有引用完整的一行。您好,非常感谢您的回答,我不知道您可以使用'and'和'd'。不幸的是,现在当我尝试进行任何组合时,除了用户输入(如1,2,3,4)外,它完全没有显示任何内容。@Omar-让用户输入他们想要的实际动作,如
Rock
Lizard
。感谢您的帮助,不幸的是,即使我这样做了,我现在对TigerHawk的解决方案也有同样的问题:我得到的唯一输出是用户输入,比如1,2,3,4,除非我做了有效的Tie解决方案……还有你的
打印(“这是一个Tie”)
缩进错误@Omar您可能想编辑问题中的代码。我刚刚解决了这个问题,但正如我上面提到的,问题仍然存在。我的意思是编辑您的问题,以便我们可以看到您更改了什么。告诉我们你可能做了什么是没有帮助的@OmarThanks感谢您的帮助,不幸的是,即使在我这样做的时候,我现在对TigerHawk的解决方案也有同样的问题:我得到的唯一输出是用户输入,如1,2,3,4,除非我做了有效的Tie解决方案……还有您的
打印(“这是一个Tie”)
缩进错误@Omar您可能想编辑问题中的代码。我刚刚解决了这个问题,但正如我上面提到的,问题仍然存在。我的意思是编辑您的问题,以便我们可以看到您更改了什么。告诉我们你可能做了什么是没有帮助的@奥马尔