Python 为什么这个代码会给我错误?

Python 为什么这个代码会给我错误?,python,Python,我不知道为什么,但这个代码不起作用。据说这里是被指控的问题。我想说清楚。请帮帮我。这是一项作业。但是作业已经结束了,我无法完成它。给你整个计划的答案: 石头剪纸蜥蜴Spock模板 随机导入 该程序的关键思想是使字符串相等 “石头”、“布”、“剪刀”、“蜥蜴”、“斯波克”到数字 如下所示: 0-岩石 1-Spock 2-纸张 3-蜥蜴 4-剪刀 辅助功能 def rpsls(name): ''' (string) -> string This function find and

我不知道为什么,但这个代码不起作用。据说这里是被指控的问题。我想说清楚。请帮帮我。这是一项作业。但是作业已经结束了,我无法完成它。

给你整个计划的答案:
石头剪纸蜥蜴Spock模板
随机导入

该程序的关键思想是使字符串相等
“石头”、“布”、“剪刀”、“蜥蜴”、“斯波克”到数字 如下所示:

0-岩石
1-Spock
2-纸张
3-蜥蜴
4-剪刀

辅助功能

def rpsls(name): 
    '''
(string) -> string
This  function find and print Player choice by 
name and computer choise by random number and
who wins according to scope.if player enter wrong
number return  error message

'''





# convert name to player_number using name_to_number
player_number = name_to_number(name)

# compute random guess for comp_number using random.randrange()
comp_number = random.randrange(0,5)

# compute difference of player_number and comp_number modulo five
compute_difference = (player_number - comp_number) % 5

# use if/elif/else to determine winner
if compute_difference > 2:
    winner = "computer wins"
elif compute_difference == '':
    winner = ''
elif compute_difference == 0:
    winner = 'player and computer tie!'
else:
    winner = "player wins"
# convert comp_number to name using number_to_name
comp_name = number_to_name(comp_number)
# print results
if winner == '':
    print "try again"
else:
    print ''
    print 'Player chooses '+ name
    print 'computer chooses '+ comp_name
    print winner
测试你的代码

def number_to_name(number):
# fill in your code below

# convert number to a name using if/elif/else
# don't forget to return the result!
    if number == 0:
        return 'rock'
    elif number == 1:
        return 'Spock'
    elif number == 2:
        return 'paper'
    elif number == 3:
        return 'lizard'
    elif number == 4:
        return 'scissors'


def name_to_number(name):
# fill in your code below

# convert name to number using if/elif/else
# don't forget to return the result!
    if name == 'rock':
        return 0
    elif name == 'Spock':
        return 1
    elif name == 'paper':
        return 2
    elif name == 'lizard':
        return 3
    elif name == 'scissors':
        return 4

def rpsls(name):
# fill in your code below

# convert name to player_number using name_to_number
    player_number = name_to_number(name)
# compute random guess for comp_number using random.randrange()
    comp_number = random.randrange(5)
# compute difference of player_number and comp_number modulo five
    difference = (player_number - comp_number) % 5
# use if/elif/else to determine winner
    if difference in [1, 2]:
        winmsg = "Player wins!"
    elif difference == 0:
        winmsg = "Player and computer tie!"
    else:
        winmsg = "Computer wins!"
# convert comp_number to name using number_to_name
    comp_name = number_to_name(comp_number)
# print results
    print " "
    print "Player chooses " + str(name)
    print "Computer chooses " + str(comp_name)
    print winmsg

请向我们显示错误消息!你在哪里定义了姓名到号码??请显示错误消息?除了未定义的
number\u to\u name
name\u to\u number
之外,一切正常(在python 2.6中——在python 3中。*每次打印时都会中断,因为它是一个函数,需要括号)holly cow随机导入。谢谢我的friend@user3134016非常欢迎你,欢迎来到StackOverflow。我相信这回答了问题,但我也相信这会降低Coursera课程的价值(如果你参加了课程,就违反了他们的行为准则)。@Arjan我只是想帮忙。OP说“已经结束了,我无法完成”现在我回答了OP的问题,他/她可以看看答案并尝试从中学习。而且Coursera课程已经结束,所以OP正在进行自学,提供一些帮助不是问题。如果课程正在进行,那么我的回答将违反Coursera的第二荣誉准则(即,“我对家庭作业、测验和考试的回答将是我自己的工作(明确允许协作的作业除外)“假设OP提交了我的答案作为他们的答案,但课程没有进展。Coursera课程经常重复。即使没有这个事实和我在上面写的内容,我觉得这也无助于任何人发布完整的作业。最好让Coursera论坛给出提示。”。(但是,这个问题也很糟糕,现在已经结束了,所以我只希望它被删除。)
rpsls("rock")
rpsls("Spock")
rpsls("paper")
rpsls("lizard")