Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.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
(Noob)用Python书写石头、布、剪刀。平局选项没有';不产生平局的结果_Python_Python 3.x_Thonny - Fatal编程技术网

(Noob)用Python书写石头、布、剪刀。平局选项没有';不产生平局的结果

(Noob)用Python书写石头、布、剪刀。平局选项没有';不产生平局的结果,python,python-3.x,thonny,Python,Python 3.x,Thonny,这是我第一次发布和使用这个网站,如果这不是最好的提问方式,很抱歉。 我试着在这个论坛上研究自己,寻找答案,但我发现的每一个展示要么与我自己的语言不同,要么有不同的问题。 我遇到的问题是,游戏在终端中运行时与我所希望的一样,但当涉及到平局时,它不会注册平局,而是在下一行开始一个新游戏“选择您的选项或键入退出退出”。 我使用Thonny作为编辑器,并遵循了调试过程,它似乎只是“跳过”了tie命令。我如何解决这个问题,或者您是否可以向我提供一些信息或文档来帮助我理解我的问题。 多谢各位 #ro

这是我第一次发布和使用这个网站,如果这不是最好的提问方式,很抱歉。 我试着在这个论坛上研究自己,寻找答案,但我发现的每一个展示要么与我自己的语言不同,要么有不同的问题。 我遇到的问题是,游戏在终端中运行时与我所希望的一样,但当涉及到平局时,它不会注册平局,而是在下一行开始一个新游戏“选择您的选项或键入退出退出”。 我使用Thonny作为编辑器,并遵循了调试过程,它似乎只是“跳过”了tie命令。我如何解决这个问题,或者您是否可以向我提供一些信息或文档来帮助我理解我的问题。 多谢各位

    #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
语句。非常感谢您,我一直在绞尽脑汁,以为我使用了错误的语法或格式