今天讲课内容有两大部分: 一.文件目录规范二.定制程序入口三.使用标准目录后四.常规函数time.datetime 一.标准目录规范 之前用过的案例atm机+购物商城代码过长,在学习了模块和包以后,我们应该分文件和文件夹 案例演示:编写ATM #file:"start.py" def login(): #加载文件 with open ("/users/jerry/pycharmprojects/项目结构/db/db.txt") as f: print(f.read(…
一. 模块 模块:就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. import加载的模块分为四个通用类别: 1 使用python编写的代码(.py文件) 2 已被编译为共享库或DLL的C或C++扩展 3 包好一组模块的包 4 使用C编写并链接到python解释器的内置模块 import 语法: 导入一个模块相当于执行了这个被导入的文件 一个模块可以多次导入但不会被多次执行 导入一个模块的时候命名空间的变化 第一:创建了一块属于这个模块的命名空间 第二:创建了一个…
本节内容 1.背景 2.设计目录结构的好处 3.关于readme的内容 4.关于requirements.txt和setup.py 5.关于配置文件的使用方法 一.背景 "设计项目目录结构",就和"代码编码风格"一样,属于个人风格问题.所以对这种态度的人一般有两种态度: 这种个人风格问题"无关紧要".理由是能让程序work就好,风格问题根本不是问题. 规范化能更好的控制程序结构,让程序具有更高的可读性. 其实我更赞同第二种说法,因为我是前一类同学…
本节内容 1.背景 2.函数功能解释 3.绝对路径和相对路径 4.不同目录间进行模块调用 一.背景 之前写了软件开发目录规范这篇博客,相信很多人都已经知道,我们在写程序时需要遵循一定的规范,不然,就算很简答的逻辑程序的代码,读起来会很费劲,占用了我们大量的时间,但是,我们一旦用了这样的规范目录,我们怎么去愉快的进行模块之前的相互导入呢?这就不得不说我们今天讨论的两个概念:绝对路径和相对路径. 二.函数功能解释 1.__file__ 功能:返回自身文件的相对路径 1 2 3 4 5 6 7 8 9…
内置函数 map map映射:语法结构(函数对象,可迭代对象) 依次从可迭代对象中取值,然后给函数做运算,再依次返回运算的结果. ss = map(lambda x: x + x, [1, 2, 3]) print(ss) try: print(ss.__next__()) # 2 print(ss.__next__()) # 4 print(ss.__next__()) # 6 print(ss.__next__()) except StopIteration: print('完成') ---…
本节内容 1.概述 2.列表生成式 3.生成器 4.函数实现生成器 5.生成器表达式 一.概述 我们在使用一组数据时,通常情况下会定义一个列表,然后循环里面的元素,但是你想过没有,如果你只需要使用列表中的1-2个元素,其他的元素用不到,这样就会造成资源的浪费,这样不能很好的合理的利用我们机器的资源,那我们如何合理高效的利用这些利用这些资源,并且提高我们程序的运行速度呢?下面我们就来讲讲我们今天最关键的知识点,生成器. 二.列表生成式 1.定义 看列表[0,1,2,3,4,5,6,7,8,9],需…
1.filecmp模块介绍 当我们进行代码审计或校验备份结果时,往往需要检查原始与目 标目录的文件一致性,Python的标准库已经自带了满足此需求的模块 filecmp.filecmp可以实现文件.目录.遍历子目录的差异对比功能.比 如报告中输出目标目录比原始多出的文件或子目录,即使文件同名也会 判断是否为同一个文件(内容级对比)等,Python 2.3或更高版本默认 自带filecmp模块,无需额外安装,下面进行详细介绍. 2.模块常用方法说明 filecmp提供了三个操作方法,分别为cmp(…
本节内容 1.简书 2.可迭代对象 3.迭代器 4.rang方法 5.总结 一.简述 我们经常使用for循环去遍历一些序列数据,但是我们有的时间发现for循环的效率很低,而且很占用了大量的硬件资源,但是有的for循环遍历效率很高,而且很节省硬件资源,这是为什么呢?有人说是生成器的原因. 二.可迭代对象 1.for循环数据类型 集合数据类型,如:list.tuple.dict.set.str.bytes(字节)等. 生成器(generator),包括生成器和带yield的生成器函数. 2.定义 可…
本节内容 1.概述 2.装饰器定义 3.装饰器定义 4.带参数的生成器 一.概述 我们之前介绍了大幅片的内容,感觉跟装饰器半毛钱关系都没有,其实不然,我们分别详细阐述了高阶函数和内置函数,下面我们就来讲讲什么是真正的装饰器. 二.装饰器定义 首先装饰器实现的条件:高阶函数+嵌套函数 =>装饰器 1.定义 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 import time   #定义内置函数 def timmer(f…
本节内容 嵌套函数 局部作用域和全局作用域的访问顺序 一.嵌套函数 1.定义 在一个函数的函数体内,用def 去声明一个函数,而不是去调用其他函数,称为嵌套函数. 1 2 3 4 5 6 7 8 9 10 11 12 def foo():     print("in the foo")     def bar():  #在foo函数体内,用def声明一个函数         print("in the bar")       bar() #调用foo函数 foo()…