Python函数
万wu皆可爱
代码改变世界,人丑就要多读书,多运动!
展开
-
Python拷贝文件夹及文件
方式一缺点,拷贝后的目录和拷贝前的目录层次结构一模一样,不够灵活"""需求:给定需要拷贝的源文件路径和 目标存放路径,做到对文件和文件夹的拷贝"""import osdef copy_file(source, destination): with open(source, mode='rb') as r_file, open(destination, mode='wb') as w_file: for f in r_file: w_fi原创 2021-05-19 17:44:44 · 1170 阅读 · 0 评论 -
Python os.work()函数
假如有下述文件组织结构储备知识:a = [1, 2, 3]b = [4, 5, 6]c = [7, 8, 9]print(list(zip(a,b,c)))结果:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]for h, i, j in zip(a, b, c): print("h=", h, "i=", i, "j=", j)结果:h= 1 i= 4 j= 7h= 2 i= 5 j= 8h= 3 i= 6 j= 9示例代码1:import原创 2021-05-18 22:23:06 · 3834 阅读 · 3 评论 -
Python统计文件夹大小
用到知识,os模块,递归调用根据文件夹路径计算文件夹大小,路径也可以是文件import ossize = 0def get_dir_size(path): """ 递归调用,统计文件大小 :param path: 文件夹路径 :return: 文件字节 """ global size # 列表显示出文件夹下的所有子文件及子文件夹 dir_list = os.listdir(path) for file in dir_lis原创 2021-05-18 17:06:39 · 1110 阅读 · 0 评论 -
函数式编程之filter, map ,reduce和匿名函数lambda
三 、函数式函数式编程并非用函数编程这么简单,而是将计算机的运算视为数学意义上的运算,比起面向过程,函数式更加注重的是执行结果而非执行的过程,代表语言有:Haskell、Erlang。而python并不是一门函数式编程语言,但是仍为我们提供了很多函数式编程好的特性,如lambda,map,reduce,filter3.1 匿名函数与lambda 对比使用def关键字创建的是有名字的函数,使用lambda关键字创建则是没有名字的函数,即匿名函数,语法如下lambda 参数1,参数2,…: expre原创 2020-12-15 12:26:54 · 326 阅读 · 0 评论 -
面向过程编程哲学
一 、编程范式 很多初学者在了解了一门编程语言的基本语法和使用之后,面对一个’开发需求‘时仍然会觉得无从下手、没有思路/套路,本节主题“编程范式”正是为了解决该问题,那到底什么是编程范式呢?编程范式指的就是编程的套路,打个比方,如果把编程的过程比喻为练习武功,那编程范式指的就是武林中的各种流派,而在编程的世界里常见的流派有:面向过程、函数式、面向对象等,本节我们主要介绍前两者。 在正式介绍前,我们需要强调:“功夫的流派没有高低之分,只有习武的人才有高低之分“,在编程世界里更是这样,各种编程范式在不原创 2020-12-14 22:24:33 · 246 阅读 · 0 评论 -
函数的递归调用(阶乘函数)
一、 函数递归调用介绍函数不仅可以嵌套定义,还可以嵌套调用,即在调用一个函数的过程中,函数内部又调用另一个函数,而函数的递归调用指的是在调用一个函数的过程中又直接或间接地调用该函数本身例如在调用f1的过程中,又调用f1,这就是直接调用函数f1本身def f1(): print('from f1') f1()f1()在调用f1的过程中,又调用f2,而在调用f2的过程中又调用f1,这就是间接调用函数f1本身def f1(): print('from f1') f原创 2020-12-08 21:08:02 · 2553 阅读 · 0 评论 -
Python生成器详解(自定义的迭代器)
文章目录一 、生成器与yield二、 yield表达式应用三、 三元表达式、列表生成式、生成器表达式3.1 三元表达式3.2 列表生成式3.3 字典生成式3.4 集合生成式3.5 生成器表达式3.6 总结一 、生成器与yield如之前所述,我们得到一个迭代器通常都是调用可迭代对象的__iter__方法 ,例如 list.iter() 得到一个迭代器,但是当list很大时候,就违背了python的初衷,假设我们要创造一个包含1000w个值的可迭代对象,总不可能先把这1000w个值放入列表,然后调用__i原创 2020-12-06 21:08:11 · 339 阅读 · 0 评论 -
Python迭代器和可迭代对象详解
文章目录一 、迭代器和可迭代对象1.1 可迭代对象1.2 迭代器对象1.3判断对象是否是可迭代对象或迭代器1.4 可迭代对象与迭代器对象总结二、 for循环原理三 迭代器的优缺点3.1 优点:3.2 缺点:一 、迭代器和可迭代对象迭代器即用来迭代取值的工具,而迭代是重复反馈过程的活动,其目的通常是为了逼近所需的目标或结果,每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值,单纯的重复并不是迭代while True: msg = input('>>:原创 2020-11-28 15:46:16 · 353 阅读 · 0 评论 -
Python装饰器用途(详解)
一 、装饰器介绍1.1 为何要用装饰器软件的设计应该遵循开放封闭原则,即对扩展是开放的,而对修改是封闭的。对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。对修改封闭,意味着对象一旦设计完成,就可以独立完成其工作,而不要对其源代码进行修改。软件包含的所有功能的源代码以及调用方式,都应该避免修改,否则一旦改错,则极有可能产生连锁反应,最终导致程序崩溃,而对于上线后的软件,新需求或者变化又层出不穷,我们必须为程序提供扩展的可能性,这就用到了装饰器。1.2 什么是装饰器’装饰原创 2020-11-27 21:49:38 · 2801 阅读 · 0 评论 -
函数对象与闭包函数
目录一 . 函数对象和闭包1.1 函数可以被引用1.2 函数可以作为容器类型的元素1.3 函数名可以作为参数传入另外一个函数1.4 函数的返回值可以是一个函数二 闭包函数2.1 闭与包2.2 闭包的用途一 . 函数对象和闭包函数对象指的是函数可以被当做’数据’来处理,具体可以分为四个方面的使用,我们如下1.1 函数可以被引用>>> def add(x,y):... return x+y... >>> func=add>>> fun原创 2020-11-26 21:13:09 · 115 阅读 · 0 评论 -
命名空间(namespaces)与作用域(global、nonlocal)
一、命名空间命名空间即存放名字与对象映射/绑定关系的地方,对栈区的划分。对于x=3,Python会申请内存空间存放对象3,然后将名字x与3的绑定关系存放于命名空间中,del x表示清除该绑定关系。 在程序执行期间最多会存在三种命名空间(相当于把栈区划分了三部分),有了名称空间后,就可以在栈区存放相同的名字了。1.1 内建命名空间存活周期:伴随python解释器启动/关闭而产生/回收,因而是第一个被加载的命名空间,用来存放一些内置的名字,比如内建函数名>>> max<bu原创 2020-11-26 14:53:19 · 711 阅读 · 1 评论 -
Python函数及参数详解
引言随着程序功能的增多,代码量随之增大,此时仍不加区分地把所有功能的实现代码放到一起,将会使得程序的组织结构不清晰,可读性变差,且程序中需要频繁使用同一功能时,只能重复编写该功能的实现代码,日积月累,程序将变得冗长,并且当某一功能需要修改时,又不得不找出所有定义及使用这段功能的地方修改之,管理维护的难度极大。到底该如何解决提出的这些问题呢?我们完全可以从现实生活中找到简化程序设计的方案:比如一个修理工会事先准备好螺丝刀、锤子等工具,这样在进行修理的过程中,需要用到拧螺丝的功能时就直接拿来螺丝刀使用,需要原创 2020-11-25 12:54:00 · 552 阅读 · 4 评论