Python 石头、布、剪刀问题
我正在使用Python创建一个非常简单的石头、布、剪刀游戏,但无法解决这个问题。 每次我在命令提示符下输入答案时,它都会输出消息“输入无效,请重试!”代码>这是我告诉它的,如果有无效的输入。但是,我并没有输入无效的输入,而是继续打印出来,而不是Python 石头、布、剪刀问题,python,Python,我正在使用Python创建一个非常简单的石头、布、剪刀游戏,但无法解决这个问题。 每次我在命令提示符下输入答案时,它都会输出消息“输入无效,请重试!”这是我告诉它的,如果有无效的输入。但是,我并没有输入无效的输入,而是继续打印出来,而不是“Rock wins!”等等,还有“你想再玩一次吗?”?(True或False)在回答之前打印出来,当我键入True时,它会显示无效输入。我试着绕着复赛线移动,但没有任何效果 这是游戏,显示错误: What's your name? Bob And your n
“Rock wins!”代码>等等,还有“你想再玩一次吗?”?(True或False)
在回答之前打印出来,当我键入True
时,它会显示无效输入。我试着绕着复赛线移动,但没有任何效果
这是游戏,显示错误:
What's your name? Bob
And your name? Bill
Bob, Do you want to choose rock, paper, or scissors? rock
Bill, Do you want to choose rock, paper, or scissors? paper
Do you want to play again? (True or False) True
Invalid input, try again!
import sys
user1 = input('What\'s your name?')
user2 = input('And your name?')
user1_answer = input('%s, Do you want to choose rock, paper, or scissors?' % user1)
user2_answer = input('%s, Do you want to choose rock, paper, or scissors?' % user2)
def compare(u1, u2):
if u1 == u2:
return('It\'s a tie!')
elif u1 == 'rock':
if u2 == 'scissors':
return('Rock wins!')
else:
('Paper wins!')
elif u1 == 'scissors':
if u2 == 'rock':
return('Rock wins!')
else:
('Paper wins!')
elif u1 == 'scissors':
if u2 == 'paper':
return('Scissors wins!')
else:
("Rock wins!")
elif u1 == 'paper':
if u2 == 'scissors':
return('Scissors wins!')
else:
('Rock wins!')
elif u1 == 'paper':
if u2 == 'rock':
return('Paper wins!')
else:
('Scissors wins!')
elif u1 == 'rock':
if u2 == 'paper':
return('Paper wins!')
else:
('Scissors wins!')
else:
return('Invalid input, try again!')
rematch = bool(input('Do you want to play again? (True or False)'))
print(compare(user1_answer, user2_answer))
这是我的代码:
What's your name? Bob
And your name? Bill
Bob, Do you want to choose rock, paper, or scissors? rock
Bill, Do you want to choose rock, paper, or scissors? paper
Do you want to play again? (True or False) True
Invalid input, try again!
import sys
user1 = input('What\'s your name?')
user2 = input('And your name?')
user1_answer = input('%s, Do you want to choose rock, paper, or scissors?' % user1)
user2_answer = input('%s, Do you want to choose rock, paper, or scissors?' % user2)
def compare(u1, u2):
if u1 == u2:
return('It\'s a tie!')
elif u1 == 'rock':
if u2 == 'scissors':
return('Rock wins!')
else:
('Paper wins!')
elif u1 == 'scissors':
if u2 == 'rock':
return('Rock wins!')
else:
('Paper wins!')
elif u1 == 'scissors':
if u2 == 'paper':
return('Scissors wins!')
else:
("Rock wins!")
elif u1 == 'paper':
if u2 == 'scissors':
return('Scissors wins!')
else:
('Rock wins!')
elif u1 == 'paper':
if u2 == 'rock':
return('Paper wins!')
else:
('Scissors wins!')
elif u1 == 'rock':
if u2 == 'paper':
return('Paper wins!')
else:
('Scissors wins!')
else:
return('Invalid input, try again!')
rematch = bool(input('Do you want to play again? (True or False)'))
print(compare(user1_answer, user2_answer))
您得到的是“无效输入,请重试!”因为您的输入字符串不是“rock”
和“paper”
,它们实际上是“rock”
和“paper”
。您可以使用str.strip
从输入字符串中去除空白。也可以考虑在你的代码结束时输入空白>输入<代码>提示。
您的代码还有其他问题。例如,您从不使用重新匹配
。您需要将主逻辑放入中,而重新匹配一次的循环为false。(考虑在比赛结束时要求复赛,而不是在比赛之前。)
此外,if
逻辑的某些分支不返回任何内容,例如
else:
('Paper wins!')
这和
else:
pass
你的问题不是关于石头、布、剪刀。如果你在写Python 3代码,请同时添加该标记。看起来你根本没有使用“重新匹配”。print(repr(user1\u-answer))
etc@Vel我试过了,但仍然得到了无效的输入答案