Re模块:(正则表达式) 正则表达式就是字符串的匹配规则 正则表达式在多数编程语言里都有相应的支持,Python里面对应的模块时re 常用的表达式规则:(都需要记住) “ . ”   #  默认匹配除\n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行 “ ^ ”  #  匹配字符开头,若指定flags MULTILINE,这种也可以匹配上("^a","\nabc\neee",flags=re.MULTILINE)(即:如果flags指定了…
模块 模块的基本概念 模块: # 一系列功能的结合体 模块的三种来源 """ 模块的三种来源 1.python解释器内置的模块(os.sys....) 2.第三方的别人写好的模块文件(requests...) 3.自己定义开发的功能模块(你写在py文件里的内容,可以被当成模块导入) """ 模块的四种表现形式 """ 模块的四种表现形式 1.用python语言编写的py文件(也就意味着py文件也可以称之为模块:一个p…
函数递归: 函数递归指的是重复 “直接调用或间接调用” 函数本身, 这是一种函数嵌套调用的表现形式. 直接调用: 指的是在函数内置,直接调用函数本身. 间接调用: 两个函数之间相互调用间接造成递归. 了解: 面试可能会问: python中有 PS: 但是在每一台操作系统中都会根据硬盘来设置默认递归深度. 获取递归深度: 了解 sys.getrecursionlimit() 设置递归深度: 了解 sys.setrecursionlimit(深度值) 注意: 单纯的递归调用时没有任何意义的. def…
6.4 软件开发目录规范 软件(例如:ATM)目录应该包含: 文件名 存放 备注 bin start.py,用于起动程序   core src.py,程序核心功能代码   conf settings.py, 程序配置信息   db db.txt 数据库信息   lib common.py ,存放常用功能   log access.log ,存放记录   start.py : import sys,os #应该把项目的根目录添加到环境变量中BASE_DIR=os.path.dirname(os.p…
目录 py 包和模块,软件开发目录规范 什么是包? 什么是模块? 软件开发目录规范 py 包和模块,软件开发目录规范 什么是包? 包指的是内部包__init__.py的文件夹 包的作用: 存放模块,包可以更好的管理模块 什么是模块? 一些列功能的结合体 相当于模块包着一堆函数与代码 模块本质上是一个.py文件 模块的三种来源: python内置的模块:(python解释器) ​ 比如:sys\time\os\turle 第三方模块:(别人写的) ​ 比如:requests 自定义模块:(自己写的…
最近参加了一个比赛,然后看到队友编程的代码,我觉得真的是觉得注释和命名规范的重要性了,因为几乎每个字符都要咨询他,用老师的话来说,这就是命名不规范的后续反应.所以此时的我意识到写一篇关于注释程序的重要性了,因此特地的写一篇文章规范自己,也帮助新手入门. (这篇文章已经是我自己更新的第三遍了,第一次叫浅谈注释的重要性,那时候我刚入门不久:学着学着我会发现变量名也很重要,第二次是规范变量名:这次我又改了,我觉得不止是这些东西,从长远的来说,编程以后就是自己的工作,或者说工具,所以遵循一套编码规则很重…
前言 我们这些初学者,目前要做的就是遵守代码规范,这是最基本的,而且每个团队的规范可能还不一样,以后工作了,尽可能和团队保持一致,目前初学者就按照官方的要求即可 新人进入一个企业,不会接触到核心的架构级别的代码,这些东西大多数有大佬写好了.所以新人要做的就是维护别人的代码,因此代码的可阅读性,良好的可维护性是最重要的,关键的影响性能的代码,不需要我们写,慢慢的写得多了,积累的多了,看几个优秀的代码就会了了,所以,初学者前期关注代码规范,不写bug,就ok. 学习软件开发目录的规范,为了让自己理解…
软件开发目录规范 开发一个软件,一个工程项目,一般应该具备以下的几个基本的文件夹和模块,当然,这并不是一成不变的,根据项目的不同会有一定的差异,不过作为一个入门级的新手,建议暂时按照以下的规范编写: 一级目录:项目名,一般大写 bin(放可执行文件) 例如Start.py(整个软件的启动文件) conf(配置文件,全局变量,参数) Setting.py core(核心逻辑) Src,py lib(自定义模块) 自定义的库 log(日志) 交易转账日志等 db(数据文件,例如账户信息等) Read…
目录 一.导入模块的两种方式 二.模块搜索的路径的优先级 三.循环导入 四.区分py文件的两种用途 五.编写一个规范的模板 五.包 1 什么是包 2 为什么要有包 3 包的相关使用 3.1 在当前文件内导该文件内的包 3.2 在当前文件内导该文件外的包 六.软件开发的目录规范 一.导入模块的两种方式 方式一 import + 模块 导入 优点:该模块内的名字不会和当前名称空间的名字冲突 缺点:在使用这个模块下的功能或者名字的时候需要加前缀显得麻烦 方式二 from + 模块 import 名字(…
软件开发的目录规范 建立文件夹 为了提高程序的可读性与可维护性,我们应该为软件设计良好的目录结构,这与规范的编码风格同等重要.软件的目录规范并无硬性标准,只要清晰可读即可 以ATM购物车项目为例: 首先需要建立一个项目文件夹,例如项目名称ATM,这个ATM的大文件夹下需要有几个子文件夹: bin文件夹:用于存放指令文件,可执行指令,例如:start.py conf文件夹:配置性的文件,存放一些变量,运行软件时需要从中读取一些变量值,例如:settings.py db文件夹:放数据库相关的操作代码…
目录 一.包的使用 1.什么是包 2.包的具体使用 1.常规导入 2.直接导入包名 二.编程思想转变 1.面条阶段 2.函数阶段 3.模块阶段 三.软件目录开发规范 1.bin 2.conf 3.core 4.interface 5.db 6.log 7.lib 8.readme 9.requirements 四.常用内置模块 1.collections模块 1.具名元组 2.双端队列 3.默认值字典 4.计数 2.time时间模块 1.时间戳 2.结构化时间 3.格式化时间 4.睡眠 5.da…
目录基本内容 log  #日志目录 conf  #配置目录 core/luffycity  #程序核心代码目录  #luffycity 是项目名,建议用小写 libs/modules  #内置模块 docs  #文件 README  #软件使用说明 setup.py  #安装文件 bin/  #程序启动脚本,程序入口脚本 luffy_server.py  #通过这个文件去调用其他文件夹里的东西 目录组织方式 假设你的项目名为foo, 我比较建议的最方便快捷目录结构这样就足够了: Foo/ |--…
目录规范: ATM  #工程文件夹 ------| bin  #用来存放可执行文件的 |----  start.py conf  #用来存放配置信息的 |----  settings.py lib  #用来存放自定义的模块 |----  common.py core  #用来存放核心的逻辑 |----  src.py log  #用来存放日志文件的 db  #用来存放数据库相关的文件 ------| readme.txt #存放自述软件信息…
模块的使用01 模块的循环导入问题 解决方案一: 把循环导入的语句放到名字定义的后面 解决方案二: 将循环导入语句放到函数内(先定义确定名称空间)02 区分python文件的两种用途 #当文件被执行时__name__=='__main__' #当文件被导入时__name__=='模块名' # if __name__ == '__main__':    (输入main时可直接出现左边语句)   #     f1()03 模块的搜索路径 # 模块搜索路径的优先级  # 1. 内存中已经加载过的  #…
本章重点: 理解在开发人标准软件时,如何布局项目目录结构,以及注意开发规范的重要性. 一.为什么要有好的目录结构 二.目录组织的方式 三.关于README的内容 四.关于requirements.txt和setup.py ================================================================================== 一.为什么要有好的目录结构 好的设计项目目录结构,就和编码风格一样,是每个程序员都有的风格,但是在流水化标准化作…
软件开发目录规范 bin--启动文件 conf--配置文件 core--核心代码 db--数据文件 lib--常用功能代码 log--日志文件 readme--软件介绍…
day16 循环导入.模块搜索路径.软件开发.包的使用 1.循环导入 循环导入:循环导入问题指的是在一个模块加载/导入的过程中导入另外一个模块,而在另外一个模块中又返回来导入第一个模块中的名字,由于第一个模块尚未加载完毕,所以引用失败.抛出异常,究其根源就是在python中,同一个模块只会在第一次导入时执行其内部代码,再次导入该模块时,即便是该模块尚未完全加载完毕也不会去重复执行内部代码 解决方案一: # 文件:m1.py print('正在导入m1') # 把代码放在导入上边,让它先加入内存中…
软件开发目录设计 对于提高项目可读性.可维护性的要求就很高了.”项目目录结构”其实也是属于”可读性和可维护性”的范畴,我们设计一个层次清晰的目录结构,就是为了达到以下两点: 可读性高: 不熟悉这个项目的代码的人,一眼就能看懂目录结构,知道程序启动脚本是哪个,测试目录在哪儿,配置文件在哪儿等等.从而非常快速的了解这个项目. 可维护性高: 定义好组织规则后,维护者就能很明确地知道,新增的哪个文件和代码应该放在什么目录之下.这个好处是,随着时间的推移,代码/配置的规模增加,项目结构不会混乱,仍然能够组…
一.项目开发流程 1.项目需求分析 明确项目具体功能: 明确到底要写什么东西,实现什么功能,在这个阶段的具体要询问项目经理和客户的需求 参与人员: 产品经理.架构师.开发经理 技术人员主要职责: 引导客户提出合理需求,贴近现实的需求,能够实现的需求 2.项目架构设计 明确项目核心技术点: 项目需要使用的编程语言 项目使用的框架 项目所使用的数据库 参与人员: 架构师 3.项目分组开发 任务分组开发: 明确每个组,每个人具体该写项目的哪些功能 参与人员: 架构师.开发经理.程序员 4.项目提交测试…
Python文件的两种用途 1 . 当脚本直接使用,直接当脚本运行调用即可 def func(): print("from func1") func() 2 . 当做模块被导入使用,但是又想测试当前脚本是否能正常运行就是用if name == 'main': def func(): print("from func1") if __name__ == '__main__': func() 绝对导入和相对导入 我们在创建包时,是给别人导入引用的,而在包的内部也会有彼此…
生成器 通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了. 所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间.在Python中,这种一边循环一边计算的机制,称为生成器:generator. 要创建一个generator,有很多种方…
1. 软件开发架构 我们了解的程序之间通讯的应用可分为两种: 第一种是应用类:qq.微信.百度网盘.腾讯视频这一类是属于需要安装的桌面应用. 第二种是web类:比如百度.知乎.博客园等使用浏览器访问就可以直接使用的应用. 这些应用的本质其实都是两个程序之间的通讯,而这两个分类又对应了两个软件开发的架构. 1.1 C/S架构 C/S即:Client与Server ,中文意思:客户端与服务器端架构,这种架构也是从用户层面(也可以是物理层面)来划分的. 这里的客户端一般泛指客户端应用程序EXE,程序需…
一.绑定方法与非绑定方法 1.绑定方法 绑定给谁,谁来调用就自动将它本身当作第一个参数传入 (1)绑定到类的方法:用classmethod装饰器装饰的方法. 为类量身定制 类.boud_method(),自动将类当作第一个参数传入 (其实对象也可调用,但仍将类当作第一个参数传入) (2)绑定到对象的方法:没有被任何装饰器装饰的方法. 为对象量身定制 对象.boud_method(),自动将对象当作第一个参数传入 (属于类的函数,类可以调用,但是必须按照函数的规则来,没有自动传值那么一说) 2.非…
软件目录结构规范有什么好处: 通过规范化,能够更好的控制软件结构,让程序具有更高的可读性. 项目目录组织结构如下: Foo/ # 项目名 --bin/ # 可执行文件目录 --foo # 可执行程序 --core/ # 主程序目录 --test/ # 测试用例(用于对项目中功能性测试) --__init__.py --test_main.py --__init__.py --main.py # 主程序入口 --conf/ # 配置文件目录 --settings.py #配置文件 --logs/…
当我们来到生产环境中的时候,对一个软件需要开发的时候,刚开始也可能会懵逼,挝耳挠腮.不知从何下手,其 实,大家也不要苦恼,这是大多数程序员都会遇到的问题.那么,我们就要想一想了,既然大家都会这样,到低怎么样 才能解决这个问题呢?好了,下面我们就来一起学学. 一.面向对象分析:(object oriented analysis ,OOA) 软件工程中的系统分析阶段,要求分析员和用户结合在一起,对用户的需求做出精确的分析和明确的表述,从大的 方面解析软件系统应该做什么,而不是怎么去做.面向对象的分析…
bin start.py 主要是放着当前项目的启动文件 conf settiings.py 放着对当前文件的配置文件 core src.py 主要核心逻辑 db 数据存储文件 lib common.py 一些共用的文件 log log.log  日志文件 Readme 对当前项目文件的解释说明 启动文件的两种方式: 1.放在bin目录下 2.放在根目录下 放在根目录下就需要对当前的路径做一些配置 import os import sys path = os.path.dirname(__file…
一. SQL脚本标准 各文件夹存放的脚本说明 存储过程:除“基础_”开头的所有存储过程,包含新增.修改.删除.列表.提交.审核. 基础数据:“基础_”开头的存储过程,用于下拉列表的数据加载公共方法. 函数:视图与存储过程中使用到的函数,如获取简拼等. 其他脚本:存放新增表.新增列等脚本,命名规则: 1) 新增表,例:XB_学报_新增表 2) 新增列,例:XB_学报_新增列 3) 修改表,对表格某一列的数据类型修改,例:XB_学报_修改表 4) 数据修改,对表中数据的UPDATE.DELETE.I…
一. SVN标准 1) 提交代码前先获取最新代码 2) 提交时需要填写信息,填写任务Excel中的修改内容列,如以下任务填写“业绩考核-工作量管理”,如果发生修改再次提交,在其后加上修改原因,例“业绩考核-工作量管理(脚本错误修改)”. 提交时不可以合并任务提交,一个任务改了哪些文件提交哪部分文件,不可以混合,需要非常清楚自己一个任务改了哪些代码脚本.尽量做到一个任务一个SVN版本.…
一. JS标准 新增页面表单检查方法名称固定为checkForm. 查询页面表单检查方法名称固定为checkSearchForm. 检查表单方法checkForm与checkSearchForm固定放在第一和第二. function checkForm() { var fg = true; if (!error) { fg = verifyInput("txtRequestDate", "申报日期", "NO", "", &q…
一. 代码标准 列表界面 1.1前台代码 1) 样式与js脚本,UI.css为界面样式,Font.css为字体样式,Common.js为通用基础js脚本,基本所有页面都需要,如果有需要新增的复制一行,修改href与src中的路径即可,保持统一格式,脚本的type在前src在后,样式的type与rel在前href在后. 2) 列表上方按钮:提交.新增.删除.查询.通过.不通过.导出Excel,根据需求减少按钮,顺序保持不变. 3) 底部的class为paging_table的表格为分页使用,如果不…