川石教育
全国咨询热线:136-9172-9932
  1. 首页 > 资讯与干货 > IT资讯

Python | 函数编程进阶知识介绍

作者:川石学院 日期:2022-03-30 14:43:05 点击数:

一天一个关于测试知识点,5分钟内讲解你最关心的软件测试问题,今天就接着来谈谈关于软件测试中的“函数编程进阶知识介绍”。

自动化测试:Python常见的几种编程模式(图1)

  一、lambda表达式

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

  匿名函数概述

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

  ●lambda只是一个表达式,函数体比def简单很多。 ●lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。 ●lambda函数拥有自己的命名空间,且不能访问私有参数列表之外或全局命名空间里的参数。 ●lambda函数看起来好像只能写一行,其真正的目的是为了简化代码。

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

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

  匿名函数lambda语法

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

Python | 函数编程进阶知识介绍(图2)

示例:计算两个整数的和

  ch07-demo01-lambda-basic.py

Python | 函数编程进阶知识介绍(图3)
Python | 函数编程进阶知识介绍(图4)

  lambda的表达式应用

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

  ch07-demo02-lambda-advance.py

Python | 函数编程进阶知识介绍(图5)

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

  ch07 -demo02-lambda-advance.py

Python | 函数编程进阶知识介绍(图6)

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

  ch07-demo02-lambda-advance.py

Python | 函数编程进阶知识介绍(图7)

  变量作用域.

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

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

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

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

  •   ①全局变量

  •   ②局部变量

  全局变量和局部变量

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

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

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

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

  示例

  ch07-demo05-variable-scope02.py

Python | 函数编程进阶知识介绍(图8)

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

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

  二、递归Recursion (扩展)

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

  递归的实现

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

  直接调用自身函数的示例

  ch07-demo06-variable-scope02.py

Python | 函数编程进阶知识介绍(图9)

  间接调用自身函数的示例

  ch07-demo06-variable-scope02.py

Python | 函数编程进阶知识介绍(图10)

  问题:

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

  示例

  ch08-demo06-variable-scope02.py

Python | 函数编程进阶知识介绍(图11)

  递归运行说明:

  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

Python | 函数编程进阶知识介绍(图12)

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

  前置知识补充:

  os.listdir(filePath)返回一个列表对象,存放指定路径下的所有文件夹或文件名称 os.path.join(filePath, fi)文件路径拼接 os.path.isdir(fi_ d)判断当前路径是否为一个文件夹 os.sep()系统分隔符

  示例

  ch07-demo08-recursion-dirs.py

Python | 函数编程进阶知识介绍(图13)

相关文章
  • 亚马逊运营成功转行软件测试,薪资13K表示很满意!2022-03-30 14:43:05
  • 西安川石的兰朋友喊你来当他的学弟学妹啦!2022-03-30 14:43:05
  • 国外的月亮也不一定比国内测试猿的年薪美~2022-03-30 14:43:05
  • 建筑工程专业朱同学成功转行为软件测试人!2022-03-30 14:43:05
  • 财务管理专业转行软件测试月薪甩会计几条街!2022-03-30 14:43:05
  • 只有技术沉淀才能成功上岸,深圳就业薪资13K!2022-03-30 14:43:05
  • 薪资11K!实现自我价值,从掌握一门IT技术开始...2022-03-30 14:43:05
  • 文科生转行软件测试照样拿下高薪15K!2022-03-30 14:43:05
  • 恭喜罗同学喜提19.5K,成功入行软件测试!2022-03-30 14:43:05
  • 毕业1年,迷茫的他最终选择转行软件测试2022-03-30 14:43:05