565 字
3 分钟
def
def,可以用来自定义所需函数,可以说是 Python 这门语言的灵魂所在,通过 CS50P 的学习,在此记录一下对于 def 的初步理解。
以一段在 lecture 2 Loop 中出现的代码为例:
def main():
number = get_number()
meow(number)
def get_number():
while True:
n = int(input("次数:"))
if n > 0:
return n
def meow(n):
for _ in range(n):
print("meow")
main()
def main() 部分
main
的意思是主要,所以人们通常以def main()
用来代表主函数的意思,非硬性要求。可以理解为运行该文件的起点、总触发。
def get_number/meow 部分
这两个def
就是用来创建自定义函数。你可以根据自己的需求进行命名,方便起见,最好是能一目了然,例如我这里的get_number
,根据其命名就能猜想到这部分函数大概是用来获取某个数值的。
自定义函数可以理解为一种自制的工具包,一旦自定义函数编写完成,这个工具包就可以根据你的代码随时调用,协助你完成相关需求。
get_number
在代码的最后,有这么一行:return n
,return 意为返回,即这里的意义代表着经过上方一系列的相关处理后,该函数最终会得到n
这个结果,我们创建get_number
这个函数也就是为了得到n
,这也确实符合我们的预期。不过n
此时只是存在于这个函数之中,相当于一条流水线产出了一份产品,但是这份产品并没有发到等待它的用户手中,仅仅只是被搁置在某处,而return
则可以帮助我们将n
呈现出来,以供其他函数可以继续使用。例如在下方的meow(n)
中,n
就被使用上了,一种很直观、简单的数据传递。
梳理逻辑
在理解了自定义函数后,重新回到def main()
部分,在代码示例中可以看出,其中的两行代码其实均来自下面的两个自定义函数。该main()
主函数内所包含的get_number、meow
均为自定义函数。main()
只负责调用。
由此我们可以得出下面这张流程图: