rpsls游戏“;(python)错误:无法连接';str';和';int';物体
=============================================================== 问题是第32行,打印“计算机选择”+复合选择 我一直在想它怎么了? 有人能帮忙吗?(我用**突出显示包含错误的部分。)将第31行替换为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":
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
notcomp\u choice
中减去comp\u number
,因为如果你修复了第一个错误,它将是一个字符串。在这之前的一行,你应该在向它传递数字时调用number\u to\u name
notname\u to\u to\u number
。此外,在这之后的一行,您应该从玩家编号
中减去玩家编号
,而不是玩家选择
,因为如果您修复第一个错误,它将是一个字符串。