python函数的基本解释

发布于 2021-01-29 19:19:20

我在下面有一个基本问题,可以帮助您理解python中的函数(紧接着uni的LPTHW教程)。有人可以解释以下语法,以及我的假设是否正确?

def print_two_again(arg1, arg2):
    print "arg1: %r, arg2: %r" % (arg1, arg2)

print_two_again("Steve","Testing")

据我所知,print_two_again是函数的名称,但什么是具有目的arg1arg2括号旁边?是调用"steve"
"testing"下面的print命令吗?还是这些字符串直接进入print命令?

关注者
0
被浏览
41
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    将arg1,arg2放在括号中的目的是什么?

    在这种情况下,arg1arg2称为 arguments 。参数允许函数接收 输入 它的预期,为了执行任务使用。输入由呼叫者提供。

    例如,在学校数学中,您可能已经看到过类似z = f(x, y)名为 f 的函数定义为的情况f(x, y) = x + y。这是编程语言中的相同概念。

    它还允许您编写更加通用,灵活和 可重用的 代码。例如,您不必编写函数的许多不同版本来完成相同任务,但结果略有不同,从而避免了诸如add2(x, y) = x + yadd3(x, y, z) = x + y + z等情况。您可以简单地执行以下操作:

    def sum(values):  # values is of type 'list'
        result = 0
        for value in values:
            result += value
        return result
    

    并这样称呼它:

    total = sum([1, 2, 3, 4, 5, 6, 7]) # a list of any length with numbers

    或像这样:

    total = sum([1, 2])

    一个函数需要多少个参数将取决于它需要做什么以及其他因素。

    更新资料

    让我感到困惑的是print_two_again(“ Steve”,“ testing”),这叫什么及其目的?

    该行print_two_again("Steve","testing")是对函数的 调用 (即函数调用)。这将导致程序“跳入”命名函数的
    主体print_two_again并开始执行其中的代码。

    ("Steve","testing")部分是作为输入发送到函数的参数。这些是 位置
    参数,基本上意味着它们会被“映射”到名称,arg1arg2基于您在调用函数时提供它们的顺序。

    例如,考虑功能f(x, y) = x - y。如果按那样调用此函数,则名称为z = f(3, 4)的参数x将接收值,3并且y将为4返回-1。如果您在调用中颠倒了参数,那么您将拥有x=4andy=3并返回它1。您提供的函数中的参数也是如此。

    这意味着函数调用中 参数顺序 很重要

    像许多其他语言一样,Python语言已经具有一组内置功能。命名的函数print就是一个例子。您可以使用该pydoc命令获得很多信息(pydoc3如果您使用Python3,我会建议您这样做)。例如,该命令pydoc3 print产生以下文档:

    在模块内置模块中的内置函数打印帮助:

    print(…)print(值,…,sep =’‘,end =’\ n’,file = sys.stdout,flush = False)

    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.
    

    请注意,这是Python3的文档。Python2文档将略有不同。

    您在学校的数学课程中对函数的理解与编程语言中的函数之间有着直接的联系。这是因为数学是计算机科学和编程语言等其他基础语言(例如算法分析)的基础。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看