【问题标题】:Role of "helper functions"?“辅助功能”的作用?
【发布时间】:2017-08-07 19:45:58
【问题描述】:

我不是在寻求有关此作业的帮助。我已经完成了前三个部分;我只是在这里发布整个问题以帮助澄清它。我只对第 4 部分(写在下面)感到困惑;我不确定它的要求是什么,我想知道是否有人可以解释“辅助函数”的含义以及我应该编写的内容。

录取标准以SAT三个部分的成绩为标准,在高中毕业班排名;具体标准如下。这些规则按照此处显示的优先顺序(1、2、3 等)应用。

  • 如果输入数据无效(SAT 小于 200 或大于 800,或者类排名不是正整数),则它们被拒绝

  • 如果任何测试分数为 800,则他们被接受

  • 如果任何测试分数低于 300,那么他们将被拒绝

  • 如果平均测试分数大于 650 并且班级排名小于或等于 25,则他们被接受。

  • 如果有两个或两个以上的测试分数低于 400 或班级排名大于等于 75,则被拒绝。

  • 在任何其他情况下,申请人被列入等候名单 Da 程序替换电子表格(具有多个功能)以确定学生是否会被录取、拒绝或等待名单。您的解决方案必须包含以下功能:

第 1 部分:

一个名为admissionStatus(sat_math,sat_reading,sat_writing,class_rank) 的函数,它接受四个参数(如图所示)并返回一个字符串“Accept”、“Reject”或“Waitlist”

第 2 部分:

一个名为 isvalid(sat_math,sat_reading,sat_writing,class_rank) 的函数返回 True 或 False,具体取决于输入数据是否有效。如果所有数据都有效,则返回True,否则返回False。

第 3 部分:

提示用户输入相关数据(申请人姓名、SAT数学分数、SAT阅读分数、SAT写作分数和班级排名)的主函数。它还调用admissionStatus()传递适当的参数。

第四部分:

您认为合适的任何其他辅助函数(将准入状态中的一些计算实现为可以从准入状态调用的单独函数。例如,您可能希望为上述规则 2 编写一个函数)。

再次 - 我只询问第 4 部分。我应该为每个标准编写一个函数吗?我真的不确定。

【问题讨论】:

    标签: python function


    【解决方案1】:

    辅助函数是执行另一个函数的部分计算的函数

    -- 来自谷歌

    def add(a, b): # <-- This is a helper function
        return a + b
    
    def main():
        subtract = 10 - 9
        multiply = 2 * 2
        add(5, 4) # <-- Helper function is called here
    

    add(5, 4) 是一个辅助函数。您已经定义了add(a, b) 并在函数中添加了所需的功能。现在,您可以在任意位置使用add 函数,它会为您添加两个整数。

    因此,add 函数“帮助”您将两个整数相加任意多次,无论何时何地。

    【讨论】:

    • 对不起,我还是不太明白——是这样的吗? def helper(): if admissionstatus(sat_math) = 800: print "accepted" (我不是想让任何人为我做我的硬件,我真的不明白。如果有人能给我一个例子或东西,那会很棒)。
    • @MarkMason,我已经更新了答案。让我知道这是否有帮助。
    • 这就引出了辅助函数和非辅助函数之间的区别的问题。维基百科的引用似乎暗示几乎所有函数都是辅助函数(因为它们被其他一些函数调用),只有 Main() (或等效)和回调函数(或等效)不是辅助函数(它不似乎很有用)。还是仅由一个函数在一个地方调用的辅助函数函数,因此由调用函数私有/“拥有”(不由任何其他函数调用)?还是别的什么?
    【解决方案2】:

    “辅助函数”是您编写的函数,因为您需要在多个地方使用该特定功能,并且因为它使代码更具可读性。
    一个很好的例子是普通函数。您将编写一个名为 avg 或类似名称的函数,它接收一个数字列表,并从该列表返回平均值。
    然后,您可以在您的主函数或其他更复杂的辅助函数中使用该函数,只要您需要它。基本上,您多次使用的任何代码块都可以用作辅助函数。
    辅助函数的另一个原因是使代码更易于阅读。例如,我也许可以编写一段非常聪明的代码来取一个数字列表的平均值,它只需要一行,但它很复杂且难以阅读。我可以创建一个辅助函数,并用更易于阅读的代码替换我复杂的代码行。

    【讨论】:

    • 对不起,我还是不太明白——是这样的吗? def helper(): if admissionstatus(sat_math) = 800: print "accepted" (我不是想让任何人为我做我的硬件,我真的不明白。如果有人能给我一个例子或东西,那会很棒)。
    • 辅助函数的外观没有固定的定义。任何函数都可以是辅助函数,只要它允许您用单个函数调用替换复杂的代码块,从而使发生的事情更加清晰。
    【解决方案3】:

    这意味着您可以创建可能帮助您完成项目的附加功能。

    通常,作业或测试会为您提供特定的函数签名。这可能意味着您只能在一个函数中编写代码来解决问题。

    通过指定您可以使用辅助函数,这意味着您不仅限于一个函数。您可以在指定的函数中创建要调用的其他函数。

    更具体地说明您的情况:您的任务要求您完成以下功能:

    • admissionStatus(sat_math,sat_reading,sat_writing,class_rank)
    • isValid(sat_math,sat_reading,sat_writing,class_rank)
    • 一个主函数

    然后,作业说:

    将准入状态中的一些计算实现为可以从准入状态调用的单独函数。

    那里有哪些可用的计算?比如说,计算平均考试成绩。 Python 的标准库不包含用于计算平均值的预先编写的函数。因此,您编写自己的函数来执行此操作。

    来自Calculating arithmetic mean (average) in Python

    def mean(numbers):
        return float(sum(numbers)) / max(len(numbers), 1)
    

    将是“辅助函数”的一个示例。

    【讨论】:

    • 对不起,我还是不太明白——是这样的吗? def helper(): if admissionstatus(sat_math) = 800: print "accepted" (我不是想让任何人为我做我的硬件,我真的不明白。如果有人能给我一个例子或东西,那会很棒)。
    • @MarkMason,我已经更新了我的答案,给你一个更具体的例子。
    猜你喜欢
    • 2022-11-30
    • 1970-01-01
    • 1970-01-01
    • 2019-01-23
    • 2020-03-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-03
    相关资源
    最近更新 更多