rpsls游戏“;(python)错误:无法连接';str';和';int';物体

rpsls游戏“;(python)错误:无法连接';str';和';int';物体,python,Python,=============================================================== 问题是第32行,打印“计算机选择”+复合选择 我一直在想它怎么了? 有人能帮忙吗?(我用**突出显示包含错误的部分。)将第31行替换为 def name_to_number(name): if name == "rock": number = 0 elif name == "Spock": number = 1 elif name == "paper":

===============================================================

问题是第32行,打印“计算机选择”+复合选择 我一直在想它怎么了? 有人能帮忙吗?(我用**突出显示包含错误的部分。)

将第31行替换为

def name_to_number(name):
if name == "rock":
    number = 0
elif name == "Spock":
    number = 1
elif name == "paper":
    number = 2  
elif name == "lizard":
    number = 3
else :
    number = 4
return number
def number_to_name(number):
    if number == 0:
        name = "rock"
    elif number == 1:
        name = "Spock"
    elif number == 2:
        name = "paper"
    elif number == 3:
        name = "lizard"
    else:
        name = "scissors"
    return name

import random
def rpsls(player_choice):
    print ""
    print " Player chooses " + player_choice
    player_number = name_to_number(player_choice)
    comp_number = random.randrange(0, 5)
    comp_choice = name_to_number(comp_number)
    **print " Computer chooses " + comp_choice**
    difference = (player_number - comp_choice) % 5
    if difference == 1 or difference == 2:
        print "Player wins!"
    elif difference == 3 or difference == 4:
        print "Computer wins!"
    else:
        print "Player and Computer tie!"
        print ""

rpsls("rock")
rpsls("Spock")
rpsls("paper")
rpsls("lizard")
rpsls("scissors")
以前是
name\u to\u number
,它总是返回数字。因此,在将其添加到字符串时出现错误。

将第31行替换为

def name_to_number(name):
if name == "rock":
    number = 0
elif name == "Spock":
    number = 1
elif name == "paper":
    number = 2  
elif name == "lizard":
    number = 3
else :
    number = 4
return number
def number_to_name(number):
    if number == 0:
        name = "rock"
    elif number == 1:
        name = "Spock"
    elif number == 2:
        name = "paper"
    elif number == 3:
        name = "lizard"
    else:
        name = "scissors"
    return name

import random
def rpsls(player_choice):
    print ""
    print " Player chooses " + player_choice
    player_number = name_to_number(player_choice)
    comp_number = random.randrange(0, 5)
    comp_choice = name_to_number(comp_number)
    **print " Computer chooses " + comp_choice**
    difference = (player_number - comp_choice) % 5
    if difference == 1 or difference == 2:
        print "Player wins!"
    elif difference == 3 or difference == 4:
        print "Computer wins!"
    else:
        print "Player and Computer tie!"
        print ""

rpsls("rock")
rpsls("Spock")
rpsls("paper")
rpsls("lizard")
rpsls("scissors")

以前是
name\u to\u number
,它总是返回数字。因此,在将其添加到字符串时出现错误。

在此之前的一行,您应该在向其传递数字时调用
number\u to\u name
而不是
name\u to\u number
。另外,在这之后的一行,你应该从
player\u number
not
comp\u choice
中减去
comp\u number
,因为如果你修复了第一个错误,它将是一个字符串。在这之前的一行,你应该在向它传递数字时调用
number\u to\u name
not
name\u to\u to\u number
。此外,在这之后的一行,您应该从
玩家编号
中减去
玩家编号
,而不是
玩家选择
,因为如果您修复第一个错误,它将是一个字符串。