美文网首页
day9 函数

day9 函数

作者: 上邪5415 | 来源:发表于2018-08-30 20:02 被阅读0次

      今天主要学习匿名函数、变量的作用域、递归函数、模块等内容。

      1、匿名函数的声明

      格式为:函数名= lambda 参数列表:返回值
      函数名:变量名
      lambda:声明匿名函数的关键字
      参数列表:参数1,参数2....
      冒号:固定写法
      返回值:表达式,表达式的值就是返回值。一个函数可以有多个返回值,用括号()括起来以元祖形式进行返回。
      匿名函数的调用:和普通函数一样,用“函数名(实参列表)”进行调用。

    示例:
    my_sum = lambda x,y:x+y
    print(my_sum(0,1))结果为1
    

      2、变量的作用域

      作用域是指一个变量能够使用的范围,分为全局变量和局部变量。

    • 全局变量:就是声明在函数和类的外面的变量都是全局变量。
    • 局部变量:声明在函数中或者类中的变量就是局部变量。函数的参数是声明在函数中的局部变量。
    a. x,y都是全局变量
    for x in range(10):
        print(x)
        for y in range(10):
            print(y)
    b.变量x,y,z都是局部变量
    def func3(x, y):
        z = 'abc'
        print(x, y, z)
    

      3、递归函数

      在函数的函数体中调用函数本身,这样的函数就是递归函数。

      怎么写递归函数?
      第一步: 找临界值 (找到让循环结束的值/找到能够确定函数结果值)
      第二步: 假设函数的功能已经实现的前提下,找关系 (找f(n)和f(n-1)/当次循环和上次循环的关系)
      第三步:根据f(n)和f(n-1)的关系,来通过f(n-1)实现f(n)的效果

    用递归实现1+2+3...+n
    def my_sum(n):
        # 1.找临界值(在临界值的位置一定要让函数结束)
        if n == 0:
            return 0
        # 2.找关系
        """
        my_sum(n) : 1+2+3+...+n-1+n
        my_sum(n-1) : 1+2+3+...+n-1
        my_sum(n) = my_sum(n-1)+n
        """
        # 3.使用f(n-1)实现f(n)的效果
        return my_sum(n-1) + n
    print(my_sum(5))
    

      4、模块

      一个py文件就是一个模块。

      怎么使用其他模块中的内容?
    a.import 模块
      通过"模块.内容"的形式去使用模块中的内容(能够使用是全局变量、函数、类)
    b.from 模块 import 模块中的内容
      可以直接使用模块中的内容
    c. from 模块 import *
      将模块中的所有的内容都导入

    现有两个py文件,A.py和B.py。
    A.py文件代码如下:
    def sayhello():
        print('Hello!')
    print('Hi!')
    print(__name__)
    B.py文件代码如下:
    import A
    A.sayhello()
    print('End')
    执行B.py文件,显示效果如下:
    Hi!
    A
    Hello!
    End
    

    相关文章

      网友评论

          本文标题:day9 函数

          本文链接:https://www.haomeiwen.com/subject/pjidwftx.html