(Noob)用Python书写石头、布、剪刀。平局选项没有';不产生平局的结果
这是我第一次发布和使用这个网站,如果这不是最好的提问方式,很抱歉。 我试着在这个论坛上研究自己,寻找答案,但我发现的每一个展示要么与我自己的语言不同,要么有不同的问题。 我遇到的问题是,游戏在终端中运行时与我所希望的一样,但当涉及到平局时,它不会注册平局,而是在下一行开始一个新游戏“选择您的选项或键入退出退出”。 我使用Thonny作为编辑器,并遵循了调试过程,它似乎只是“跳过”了tie命令。我如何解决这个问题,或者您是否可以向我提供一些信息或文档来帮助我理解我的问题。 多谢各位(Noob)用Python书写石头、布、剪刀。平局选项没有';不产生平局的结果,python,python-3.x,thonny,Python,Python 3.x,Thonny,这是我第一次发布和使用这个网站,如果这不是最好的提问方式,很抱歉。 我试着在这个论坛上研究自己,寻找答案,但我发现的每一个展示要么与我自己的语言不同,要么有不同的问题。 我遇到的问题是,游戏在终端中运行时与我所希望的一样,但当涉及到平局时,它不会注册平局,而是在下一行开始一个新游戏“选择您的选项或键入退出退出”。 我使用Thonny作为编辑器,并遵循了调试过程,它似乎只是“跳过”了tie命令。我如何解决这个问题,或者您是否可以向我提供一些信息或文档来帮助我理解我的问题。 多谢各位 #ro
#rock, paper, scissors
import random, sys
wins = 0
losses = 0
ties = 0
print('Let\'s play a game')
print('rock. paper. scissors')
while True:
print('choose your option or type quit to exit')
print('%s wins, %s losses, %s ties'%(wins, losses, ties))
while True:
playeroption = input()
if playeroption == 'quit':
sys.exit() # Quit the program.
if playeroption == 'rock' or playeroption == 'paper' or playeroption == 'scissors':
break # Break out of the player input loop.
randomNumber = random.randint(0,2) #selecting computer options
if randomNumber == 0:
AIoption = 'Rock'
elif randomNumber == 1:
AIoption = 'Scissors'
elif randomNumber == 2:
AIoption = 'Paper'
if playeroption == AIoption: #player vs computer outcomes
print('draw, i choose ' + str( AIoption) +'!')
ties = ties + 1
continue
elif AIoption == 'Paper' and playeroption == 'rock':
print('better luck next time i choose ' + ( AIoption))
losses = losses + 1
continue
elif AIoption == 'Rock' and playeroption == 'scissors':
print('better luck next time i choose ' + str(AIoption))
losses = losses + 1
continue
elif AIoption == 'Scissors' and playeroption == 'paper':
print('better luck next time i choose ' + str(AIoption))
losses = losses + 1
continue
elif AIoption == 'Paper' and playeroption == 'scissors':
print('you win human. I choose ' + ( AIoption))
wins = wins + 1
continue
elif AIoption == 'Rock' and playeroption == 'paper':
print('you win human. I choose ' + str(AIoption))
wins = wins + 1
continue
elif AIoption == 'Scissors' and playeroption == 'rock':
print('you win human. I choose ' + str(AIoption))
wins = wins + 1
continue
这里的问题是,您的
playeroption
值每次都是小写的,并且您将其与大写值进行比较,这样您的if playeroption==AIoption
将永远不会返回true。
如果要忽略区分大小写,可以执行以下操作:
if playeroption.lower() == AIoption.lower()
因此,python会将两个字符串都设置为小写,然后进行比较,而不管第一个字符是小写还是大写
如果playeroption='rock'或playeroption='paper'或playeroption=='Scissor',您还可以将.lower()
函数添加到中:
就像
如果playeroption.lower()=='rock'…
那么用户可以输入his选项,而不管单词是以小写还是大写开头。playeroption==AIoption
从来都不是真的,因为所有人类选项都以小写字母开头,所有计算机选项都以大写字母开头。顺便说一下,您不需要任何continue
语句。非常感谢您,我一直在绞尽脑汁,以为我使用了错误的语法或格式