美文网首页
Python | 函数编程进阶版知识点

Python | 函数编程进阶版知识点

作者: 82a7fe2508f4 | 来源:发表于2022-03-30 10:58 被阅读0次

    一、lambda表达式

    ▲ 掌握lambda表达式的作用和应用场景/掌握其各种应用技巧

    匿名函数概述

    Python 使用lambda来创建匿名函数。

    ●lambda只是一个表达式,函数体比def简单很多。

    ●lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。

    ●lambda函数拥有自己的命名空间,且不能访问私有参数列表之外或全局命名空间里的参数。

    ●lambda函数看起来好像只能写一行,其真正的目的是为了简化代码。

    语法: lambda函数的语法只包含一个语句-->

    lambda [arg1[,arg2,.....argn]]:表达式

    匿名函数lambda语法

    语法: lambda函数的语法只包含一个语句

    示例:计算两个整数的和

    ch07-demo01-lambda-basic.py

    lambda的表达式应用

    示例1:使用内置函数作为表达式

    ch07-demo02-lambda-advance.py

    示例2:使用自定义函数作为表达式

    ch07 -demo02-lambda-advance.py

    示例3 :使用推导式作为表达式

    ch07-demo02-lambda-advance.py

    变量作用域.

    一个程序的所有的变量并不是在哪个位置都可以访问的。

    访问权限决定于这个变量是在哪里赋值的。

    变量的作用域决定了在哪一部分程序你可以访问哪个特 定的变量名称。

    两种最基本的变量作用域如下:

    ①全局变量

    ②局部变量

    全局变量和局部变量

    定义在函数内部的变量拥有一个局部作用域 ,定义在函数外的拥有全局作用域。

    局部变量只能在其被声明的函数内部访问

    全局变量可以在整个程序范围内访问。

    全局变量想作用于函数内,需加global

    示例(

    ch07-demo05-variable-scope02.py 

    1、global---将变量定义为全局变量。 可以通过定义为全局变量,实现在函数内部改变变量值。

    2、-个global语句可以同时定义多个变量,如global x, y, z。

    二、递归Recursion (扩展)

    掌握了解递归的基本工作模式和应用方法

    递归的实现

    递归:在调用一个函数的过程中,直接或间接地调用了函数本身这个就叫递归

    直接调用自身函数的示例

    ch07-demo06-variable-scope02.py 

    间接调用自身函数的示例

    ch07-demo06-variable-scope02.py 

    问题:

    能告诉我一下代码运行的结果吗 ?

    示例

    ch08-demo06-variable-scope02.py

    递归运行说明:

    age(5)=age(4)+2 第一次进入

    age(4)=age(3)+2 第二次进入

    age(3)=age(2)+2 第三次进入

    age(2)=age(1)+2 第四次进入

    age(1)=18 第五次进入,最后判断终止条件

    ▲ 示例1 :递归实现阶乘

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

    举个例子,我们来计算阶乘n!= 1 *2* 3* .. *n,用函数factorial(n)表示,可以看出:factorial(n)=n!= 1*2*3*... *(n-1)*n= (n-1)!*n= fact(n-1)*n

    所以, factorial(n)可以表示为n * factorial(n-1) ,只有n= 1时需要特殊处理。于是, factorial(n)用递归的方式写出来就是:

    示例

    ch07-demo07-recursion-factorial.py 

    ▲ 示例2 :递归实现遍历指定文件或磁盘的检索

    前置知识补充:

    os.listdir(filePath)返回一个列表对象,存放指定路径下的所有文件夹或文件名称

    os.path.join(filePath, fi)文件路径拼接

    os.path.isdir(fi_ d)判断当前路径是否为一个文件夹

    os.sep()系统分隔符

    示例

    ch07-demo08-recursion-dirs.py 

    相关文章

      网友评论

          本文标题:Python | 函数编程进阶版知识点

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