我在下面有一个基本问题,以帮助尝试在python中了解函数(遵循prep for uni中的LPTHW教程)。有人可以解释下面的语法,我的假设是否正确?
def print_two_again(arg1, arg2):
print "arg1: %r, arg2: %r" % (arg1, arg2)
print_two_again("Steve","Testing")
我理解print_two_again
是函数的名称,但是在其旁边的括号中使用arg1
,arg2
的目的是什么?是否将"steve"
"testing"
调用到下面的打印命令中?或者这些字符串是否指向print
命令?
答案 0 :(得分:14)
接下来在括号中使用arg1,arg2的目的是什么 对吗?
在这种情况下,arg1
和arg2
称为参数。参数允许函数接收预期用于执行任务的输入。输入由呼叫者提供。
例如,在学校数学中,您可能已经看到z = f(x, y)
之类的内容,其中名为 f 的函数被定义为f(x, y) = x + y
。这与编程语言中的概念相同。
它还允许您编写更通用,灵活且可重用的代码。例如,您不必编写许多不同版本的函数来完成相同的任务,结果略有不同,从而避免出现add2(x, y) = x + y
和add3(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(“史蒂夫”,“测试”),是什么 这被称为及其目的?
行print_two_again("Steve","testing")
是函数的调用(即函数调用)。这会导致程序“跳转”到名为print_two_again
的函数的 body 中并开始执行其中的代码。
("Steve","testing")
部分是作为输入发送给函数的参数。这些是位置参数,这基本上意味着它们会根据您在调用函数时提供它们的顺序“映射”到名称arg1
和arg2
例如,考虑函数f(x, y) = x - y
。如果此函数被称为z = f(3, 4)
,则名称为x
的参数将获得值3
,y
将为4
,以返回{{} 1}}。如果您反转调用中的参数,那么您将拥有-1
和x=4
,而是返回y=3
。您提供的函数中的参数也是如此。
这意味着函数调用中参数的顺序非常重要。
Python语言与许多其他语言一样,已经具有一组内置功能。名为1
的函数就是一个例子。如果您使用Python3(我建议使用),您可以使用print
命令(pydoc
)获取大量信息。例如,命令pydoc3
生成以下文档:
有关内置模块中内置函数打印的帮助:
打印(...) print(value,...,sep ='',end ='\ n',file = sys.stdout,flush = False)
pydoc3 print
请注意,这是Python3的文档。 Python2文档略有不同。
您在学校的数学课程中所看到的功能与在编程语言中看到的功能之间存在直接关联。这是因为数学是计算机科学和编程语言的基础之一,其中包括(例如算法分析)。
答案 1 :(得分:3)
在其旁边的括号中使用arg1,arg2的目的是什么?
arg1 和 arg2 是输入的名称,函数可以从那里使用这些输入。在您的情况下,您的功能是打印它们。其他函数可以使用这些参数执行其他操作。但是,让我们一步一步走。
def print_two_again(arg1, arg2):
print "arg1: %r, arg2: %r" % (arg1, arg2)
在以def
开头的前两行中,您定义了一个函数。它做了一些事情。在你的情况下打印它需要的两个参数。
print_two_again("Steve","Testing")
在第三行,你实际做的是调用该函数。当您调用该函数时,您告诉函数将"Steve"
和"Testing"
参数传递给函数定义。
上面的字符串称为函数调用。我们假设您有一个程序,并且您希望它打印两个单词。您需要定义您希望如何完成它。这称为函数定义,您可以在其中定义事物的工作方式。没关系,但还不够。你想要实现它。所以你要做的就是执行那个功能。这称为函数调用。
print_two_again("First","Call")
print_two_again("Second","Call")
在上面的几行中,我们所做的是调用先前定义的函数两次但使用不同的参数。
现在让我们看看第二行,这可能会让你感到困惑。
print "arg1: %r, arg2: %r" % (arg1, arg2)
print
是Python中的内置函数。以上行的内容是传递 arg1 和 arg2 参数,并以"arg1: %r, arg2: %r"
答案 2 :(得分:1)
在括号中使用arg1,arg2的目的是什么?
此处def print_two_again(arg1, arg2):
是一个函数,arg1, arg2
称为 参数 ,在函数中,这是两个变量和print_two_again
函数需要两个论点。
让我感到困惑的是print_two_again(&#34; Steve&#34;,&#34;测试&#34;)?
当您致电print_two_again("Steve","Testing")
时,arg1 receive Steve and arg2 receive Testing
。
当您想print
时,内部(ie. in between ".....")
将任何文字作为简单文本放置,%r
用于捕获相应的变量值。
如果你想要,你可以改写:
print "Argument 1: %r, Argument 2: %r" % (arg1, arg2)
您可以更改平面文本,但变量列表将遵循您首先指定的名称。
答案 3 :(得分:0)
简而言之,“参数=传递给函数的数据”。使用这些数据,我们可以进行计算或简单地打印出来。
在函数中,我们正在打印arg1和arg2。传递给函数的“ steve”和“ Testing”将被打印。