Python 剪刀石头布的代码输出错误

Python Code for Rock, Paper & Scissor Gave Wrong Output

这段代码的本质是使用 Python 语言描述剪刀石头布游戏,主要是 for 循环和 if...else 语句。我使用 PyScripter 运行 Python 3.7.2 上的代码作为引擎。 def main()if __name__ == '__main__' 是 运行 机器

的 PyScripter 代码
import random

def main():
    pass

if __name__ == '__main__':
    main()


tie_sum, comp_sum, human_sum = 0, 0, 0
name = input('Enter your firstname here: ')

for i in range(5):
    tie_sum += tie_sum
    comp_sum += comp_sum
    human_sum += human_sum

    comp_guess = random.randint(1, 3)
    print(f'The computer guess option is {comp_guess}')
    human_guess = int(input('Enter 1 as (rock), 2 as (paper) or 3 as (scissors):'))

    if comp_guess == 1 and human_guess == 3:
        comp_sum += 1
    elif comp_guess == 1 and human_guess is 2:
        human_sum += 1
    elif comp_guess == 2 and human_guess == 3:
        human_sum += 1
    elif comp_guess == 3 and human_guess == 1:
        human_sum += 1
    elif comp_guess == 3 and human_guess == 2:
        comp_sum += 1
    elif comp_guess == 2 and human_guess == 1:
        comp_sum += 1
    else:
        tie_sum += 1

print(f'The number of tie in this game is {tie_sum}')

if comp_sum > human_sum:
    print('The winner of this game is the Computer.')
    print(f'The comp_sum is {comp_sum}')
elif comp_sum < human_sum:
    print(f'The winner of this game is {name}.')
    print(f'The human sum is {human_sum}')
else:
    print('This game ends in tie.')
    print(f'The tie sum is {tie_sum}')

原因是 for 循环中的前三行。您在检查条件时增加了计算机、人员和领带的总和,当您再次循环迭代时,它再次求和。这是修改后的代码:

import random

def main():
    pass

if __name__ == '__main__':
    main()


tie_sum, comp_sum, human_sum = 0, 0, 0
name = input('Enter your firstname here: ')

for i in range(5):
    

    comp_guess = random.randint(1, 3)
    
    human_guess = int(input('Enter 1 as (rock), 2 as (paper) or 3 as (scissors):'))
    print(f'The computer guess option is {comp_guess}')
    if comp_guess == 1 and human_guess == 3:
        comp_sum += 1
    elif comp_guess == 1 and human_guess == 2:
        human_sum += 1
    elif comp_guess == 2 and human_guess == 3:
        human_sum += 1
    elif comp_guess == 3 and human_guess == 1:
        human_sum += 1
    elif comp_guess == 3 and human_guess == 2:
        comp_sum += 1
    elif comp_guess == 2 and human_guess == 1:
        comp_sum += 1
    else:
        tie_sum += 1

print(f'The number of tie in this game is {tie_sum}')

if comp_sum > human_sum:
    print('The winner of this game is the Computer.')
    print(f'The comp_sum is {comp_sum}')
elif comp_sum < human_sum:
    print(f'The winner of this game is {name}.')
    print(f'The human sum is {human_sum}')
else:
    print('This game ends in tie.')
    print(f'The tie sum is {tie_sum}')

另外,还有一个修改,计算机猜测应该是在人类猜测之后打印出来的。我也修好了。希望对您有所帮助。