Python def函数

时间:2016-03-05 21:45:52

标签: python function

我的问题是,在尝试使用'def'关键字时,我最终得到的回溯是:

"nameError: name 'a' is not defined".

如果有人能解释这个错误,我将不胜感激。

编辑:感谢您的帮助

2 个答案:

答案 0 :(得分:1)

错误发生在

score = computegrade(a, b, c, d, e)

因为它引用了5个名为a .. e的变量,这些变量尚未定义(它们尚未在全局范围内分配值)。但是,对我来说,你的期望是他们从函数中获取它们的值,这在Python中是不正确的;括号内的内容只是函数的输入。

我相信你的computegrade函数应该是一个有一个输入(一个参数)的算法 - 得分;和一个输出 - 与该分数对应的等级。在该函数中,您将得分作为与每个得分括号对应的1个字符字符串返回:

def computegrade(score): 
    if score >= 0.9:
        return "A"
    elif score >= 0.8:
        return "B"
    # ...
    else:
        return "E"

然后您可以将此功能用作

score = raw_input ("Please enter your score:")
score = float(score)
grade = computegrade(score)
print "Your grade is", grade

答案 1 :(得分:0)

参数基本上就是你给出的功能,以便它可以完成它的工作。在这种情况下,该功能需要一件事 - 用户输入的分数。然后它获取该分数并使用if语句,确定它的等级并返回它。在这种情况下,您的函数不需要知道a, b, c, d, e是什么。 @Antti Haapala提供了很好的代码。返回某些东西是赋予功能价值的东西。当您说score = computegrade(score)时,它会为函数提供score,然后将得分等于您返回的内容。 Antti Haapala的代码有效,因为您不需要冗余的打印语句。换句话说,您在函数中打印A,然后函数集score等于A,然后打印score