02Python学习笔记——自定义函数

92 阅读2分钟

「这是我参与11月更文挑战的第2天,活动详情查看:2021最后一次更文挑战」。

1. return语句

return[表达式]语句用于退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None.

        print(x)
        return x+2
   printaaaaad(1)

image.png

2. 变量作用域

Python中,程序的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的。变量的作用域决定了在哪一部分程序可以访问哪个特定的变量名称。Python的作用域一共有4种,分别为:L(Local)局部作用域,E(enclosing)闭包函数外的函数中,G(global)全域作用域,B(Built-in)内键作用域。以L-E-G-B的规则查找,即:在局部找不到,便会去局部外的局部查找(例如闭包),再找不到就去全局找,再者去内键中找。


   g_count =0  #全局作用域
   def outer():
        o_count =1  #闭包函数外的函数中
        def inner():
            i_count =2 #局部作用域
            print(i_count)
            print(o_count)
            print(g_count)
         inner()
    outer()

image.png 注意:Python中只有模块(module),类(class)以及函数(def、lambda)才会引入新的作用域,其它的代码块(如,if/elif/else/,try/except、for/while等)是不会引入新的作用域的,也就是说这些语句是内定义的变量,外部也可以访问。

3. 递归函数

在函数内部,可以调用其它函数。如果一个函数在内部调用本身,这个函数就是递归函数。

         assert x>0 and isinstance(x,int),'x必须为正整数'
         if x==1:
             return 1
          else:
              return x+cum(x-1)
    cum(3)

image.png 递归函数的有点是定义简单,逻辑清晰。理论上,所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰。