(Noob)用Python编写岩石,纸张,剪刀。并列选项不会产生并列结果

这是我第一次发布和使用该网站,很抱歉,如果这不是最好的提问方式。 我已经尝试过自己进行研究并在该论坛上寻找答案,但是我发现的每种显示方式要么与我自己的语言不同,要么存在不同的问题。 我遇到的问题是,游戏就像在终端上一样在终端上运行,除非涉及平局,否则不注册平局,而是在下一个游戏开始“选择您的选项或键入退出以退出”这一新游戏线。 我使用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
iCMS 回答:(Noob)用Python编写岩石,纸张,剪刀。并列选项不会产生并列结果

这里的问题是,您的playeroption值每次都是小写,并且将它与大写值进行比较,因此您的if playeroption == AIoption永远不会返回true。 如果您想忽略大小写,可以执行以下操作:

if playeroption.lower() == AIoption.lower()

因此python会将您的字符串都变成小写,然后进行比较,并且第一个字符是小写还是大写都没有关系。

您还可以将.lower()函数添加到if playeroption == 'rock' or playeroption == 'paper' or playeroption == 'scissors':if playeroption.lower() == 'rock' ...一样,用户可以输入他的选项,而单词以小写还是大写开头都没有关系。

本文链接:https://www.f2er.com/1978950.html

大家都在问