565 字
3 分钟
def
2024-10-23
无标签

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()只负责调用。

由此我们可以得出下面这张流程图:

def.png

def
https://note.timewind.fun/posts/def/
作者
Time
发布于
2024-10-23
许可协议
CC BY-NC-SA 4.0