01 2020 档案

摘要:typing模块 一、引言 前言:很多人在写完代码一段时间后回过头看代码,很可能忘记了自己写的函数需要传什么参数,返回什么类型的结果,就不得不去阅读代码的具体内容,降低了阅读的速度,加上Python本身就是一门弱类型的语言,这种现象就变得更加的严重,而typing这个模块很好的解决了这个问题。 系列 阅读全文
posted @ 2020-01-31 22:33 RandySun 阅读(185) 评论(0) 推荐(0)
摘要:模块基础小结 一、为什么要有模块 面条版代码 函数版代码 文件版代码(模块) 文件夹版(包) 代码会变得更加简洁,清晰,模块化 一个模块里会有多个函数,相当于一个大功能细分成多个小功能 1. 自定义模块 2. 第三方模块,如requests 3. 内置模块,如time 4. 包(文件夹) 二、imp 阅读全文
posted @ 2020-01-31 16:55 RandySun 阅读(195) 评论(0) 推荐(0)
摘要:软件开发目录规范 一、软件开发的目录规范 为了提高程序的可读性与可维护性,我们应该为软件设计良好的目录结构,这与规范的编码风格同等重要,简而言之就是把软件代码分文件目录。假设你要写一个ATM软件,你可以按照下面的目录结构管理你的软件代码: 阅读全文
posted @ 2020-01-30 23:14 RandySun 阅读(142) 评论(0) 推荐(0)
摘要:编译Python文件 一、编译Python文件 为了提高加载模块的速度,强调强调强调: 提高的是加载速度而绝非运行速度 。python解释器会在__pycache__目录中下缓存每个模块编译后的版本,格式为:module.version.pyc。通常会包含python的版本号。例如,在CPython 阅读全文
posted @ 2020-01-30 22:58 RandySun 阅读(359) 评论(0) 推荐(0)
摘要:python文件的两种用途 编写好的一个python文件可以有两种用途: 一: 脚本,一个文件就是整个程序,用来被执行 二: 模块,文件中存放着一堆功能,用来被导入使用 python为我们内置了全局变量\_\_name\_\_, 当文件被当做脚本执行时:\_\_name_\_ 等于'\_\_main 阅读全文
posted @ 2020-01-30 22:52 RandySun 阅读(274) 评论(0) 推荐(0)
摘要:函数高级实战之ATM和购物车系统升级 一、项目 二、项目地址 https://github.com/RandySun01/atm 三、功能需求 阅读全文
posted @ 2020-01-30 15:19 RandySun 阅读(139) 评论(0) 推荐(0)
摘要:函数高级小结 一、闭包函数 把函数和变量一起打包拿出去了,内部函数包含对外部作用于而非全局作用域的引用 二、装饰器 不改变函数体代码,并且不改变函数调用方式,为函数添加功能,它本质就是一个函数 完善装饰器 三、三层装饰器 四、迭代器 1. 可迭代对象:具有\_\_iter\_\_方法的对象(Pyth 阅读全文
posted @ 2020-01-30 15:04 RandySun 阅读(122) 评论(0) 推荐(0)
摘要:匿名函数 一、有名函数 之前定的函数都是有名函数,它是基于函数名使用。 from func from func from func 二、匿名函数 匿名函数,他没有绑定名字,使用一次即被收回,加括号既可以运行。 语法: lambda 参数列表 : 表达式 说明 1. 使用lambda关键字创建匿名函数 阅读全文
posted @ 2020-01-30 14:10 RandySun 阅读(427) 评论(0) 推荐(0)
摘要:生成器 一、yield关键字(生成器) yield的英文单词意思是生产,在函数中但凡出现yield关键字,再调用函数,就不会继续执行函数体代码,而是会返回一个值。 生成器的本质就是迭代器,同时也并不仅仅是迭代器,不过迭代器之外的用途实在是不多,所以我们可以大声地说:生成器提供了非常方便的自定义迭代器 阅读全文
posted @ 2020-01-30 11:36 RandySun 阅读(143) 评论(0) 推荐(0)
摘要:字典生成式 一、字典生成式 二、zip()方法 zip(keys,values): info_dict: {'name': 'randy', 'age': 19, 'sex': 'male'} 通过解压缩函数生成一个字典 info_dict.keys(): dict_keys(['name', 'a 阅读全文
posted @ 2020-01-29 21:22 RandySun 阅读(240) 评论(0) 推荐(0)
摘要:列表推导式 一、列表推导式 1.1 一般写法 1.2 列表推导式 阅读全文
posted @ 2020-01-29 20:33 RandySun 阅读(267) 评论(0) 推荐(0)
摘要:三元表达式 一、三元表达式 结构:条件成立时的返回值 if 条件 else 条件不成立时的返回值; 使用:事件用两种结果采用; 1.1 if双分支实现 1.2 三元表达式 疯狂🐕 阅读全文
posted @ 2020-01-29 20:20 RandySun 阅读(817) 评论(0) 推荐(0)
摘要:函数基础实战之ATM和购物车系统 一、系统功能 1. 用户名和密码存放于文件中,格式为:randy|123456 2. 启动程序后,先登录,登录成功则让用户输入工资,然后打印商品列表,失败则重新登录,超过三次则退出程序 3. 允许用户根据商品编号购买商品 4. 用户选择商品后,检测余额是否够,够就直 阅读全文
posted @ 2020-01-29 15:44 RandySun 阅读(195) 评论(0) 推荐(0)
摘要:函数基础小结 一、定义函数 只检测语法,不执行代码 二、函数定义的三种方式 1. 有参函数 2. 无参函数 3. 空函数 三、调用函数 四、函数的返回值 return返回返回值,函数遇到return会终止,return可以返回任意数据类型的值,同时也可以返回多个值 函数只有在调用阶段才会接收返回值, 阅读全文
posted @ 2020-01-29 15:28 RandySun 阅读(182) 评论(0) 推荐(0)
摘要:函数嵌套 一、函数的嵌套定义 函数内部定义的函数,无法在函数外部使用内部定义的函数。 现在有一个需求,通过给一个函数传参即可求得某个圆的面积或者圆的周长。也就是说把一堆工具丢进工具箱内,之后想要获得某个工具,直接从工具箱中获取就行了。 circle(10): 314.1592653589793 ci 阅读全文
posted @ 2020-01-29 14:38 RandySun 阅读(218) 评论(0) 推荐(0)
摘要:可变长参数 可变长参数:指的是在调用函数时,传入的参数个数可以不固定 调用函数时,传值的方式无非两种,一种是位置实参,另一种是关键字实参,因此形参也必须得有两种解决方法,以此来分别接收溢出的位置实参( )与关键字实参( ) 一、可变长实参之 结果: ('a', 1, 3) 1 二、可变长形参之 形参 阅读全文
posted @ 2020-01-29 12:06 RandySun 阅读(254) 评论(0) 推荐(0)
摘要:函数参数 一、形参和实参 形参:在函数定义阶段括号内定义的参数,称之为形式参数,简称形参,本质就是变量名 实参:在函数调用阶段括号内传入的参数,称之为实际参数,简称实参,本质就是变量的值。 二、位置形参和位置实参 位置形参:在函数定义阶段,按照从左到右的顺序依次定义的形参,称之为位置形参。 特点:按 阅读全文
posted @ 2020-01-29 11:35 RandySun 阅读(192) 评论(0) 推荐(0)
摘要:函数的调用 一、什么是函数调用? 函数名(…)`即调用函数,会执行函数体代码,直到碰到return或者执行完函数体内所有代码结束。 函数运行完毕所有代码,如果函数体不写return,则会返回None。 二、为何用调用函数? 很愚蠢的一个问题,但是我们依然得回答:使用函数的功能。 三、函数调用的三种形 阅读全文
posted @ 2020-01-29 10:58 RandySun 阅读(452) 评论(0) 推荐(0)
摘要:函数的返回值 一、什么是返回值? 函数内部代码经过一些列逻辑处理获得的结果。 二、为什么要有返回值? 现在有一个需求,比较两个人的月薪,然后想获取月薪较大人的年薪。 如果需要在程序中拿到函数的处理结果做进一步的处理,则需要函数必须要有返回值。 需要注意的是: return是一个函数结束的标志,函数内 阅读全文
posted @ 2020-01-29 10:28 RandySun 阅读(408) 评论(0) 推荐(0)
摘要:定义函数的三种形式 一、无参函数 定义函数时参数是函数体接收外部传值的一种媒介,其实就是一个变量名 在函数阶段括号内没有参数,称为无参函数。需要注意的是:定义时无参,意味着调用时也无需传入参数。 如果函数体代码逻辑不需要依赖外部传入的值,必须得定义成无参函数。 二、有参函数 在函数定义阶段括号内有参 阅读全文
posted @ 2020-01-29 10:16 RandySun 阅读(642) 评论(0) 推荐(0)
摘要:文件处理实战之购物车系统 一、文件处理实战之购物车系统 1. 用户名和密码存放于文件中,格式为:randy|randy123 2. 启动程序后,先登录,登录成功则让用户输入工资,然后打印商品列表,失败则重新登录,超过三次则退出程序 3. 允许用户根据商品编号购买商品 4. 用户选择商品后,检测余额是 阅读全文
posted @ 2020-01-28 20:20 RandySun 阅读(217) 评论(0) 推荐(0)
摘要:文件处理小结 一、文件处理 1.1 打开文件的流程 1. 打开文件 open 2. 读写文件 read/write 3. 关闭文件 close 1.2 with管理上下文 1.3 打卡文件的三种模式 1. r只读 (默认) 2. w清空只写 3. a追加写入 4. t 文本模式(默认) 5. b 二 阅读全文
posted @ 2020-01-28 20:10 RandySun 阅读(153) 评论(0) 推荐(0)
摘要:文件修改的两种方式 文件的数据是存放于硬盘上的,因而只存在覆盖、不存在修改这么一说,我们平时看到的修改文件,都是模拟出来的效果,具体的说有两种实现方式。 一、方式一 将硬盘存放的该文件的内容全部加载到内存,在内存中是可以修改的,修改完毕后,再由内存覆盖到硬盘(word,vim,nodpad++等编辑 阅读全文
posted @ 2020-01-28 17:57 RandySun 阅读(792) 评论(0) 推荐(0)
摘要:with管理文件操作上下文 一、with管理文件操作上下文 使用open()方法操作文件,但是open打开文件后我们还需要手动释放文件对操作系统的占用。但是其实我们可以更方便的打开文件,即Python提供的上下文管理工具——with open()。 1. 打开单个文件 2. 打开多个文件 with 阅读全文
posted @ 2020-01-28 17:43 RandySun 阅读(187) 评论(0) 推荐(0)
摘要:绝对路径和相对路径 一、绝对路径 Windows系统绝对路径从盘符(C:\D:\)开始写一个完整的路径。 macos系统从根目录(/Users)开始写一个完整的路径。 " " 二、相对路径 相对于当前执行文件所在的文件夹开始找。 三、总结 绝对路径:一个完整的路径,从头走到尾,在于绝字; 相对路径: 阅读全文
posted @ 2020-01-28 17:17 RandySun 阅读(423) 评论(0) 推荐(0)
摘要:基本的文件操作 虽然视频、音频和图片在硬盘中也是用二进制存储的,但是上一章节讲的字符编码只和文本文件有关,因为‘utf 8’格式的编码并不使用视频,视频有其本身的编码格式,如MP4、avi、mkv等。 一、什么是文件? 文件是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位。文件的操作是基于文件 阅读全文
posted @ 2020-01-28 17:07 RandySun 阅读(359) 评论(1) 推荐(1)
摘要:Python2和3字符编码的区别 一、字符编码应用之Python 1.1 执行Python程序的三个阶段 (再强调一遍,执行test.py的第一步,一定是先将文件内容从硬盘读入到内存中) test.py文件内容以gbk格式保存的,内容为: [ 阶段一:启动Python解释器 阶段二:Python解释 阅读全文
posted @ 2020-01-28 16:57 RandySun 阅读(194) 评论(0) 推荐(0)
摘要:字符编码 一、文本编辑器存取文件的原理 1. 打开编辑器就打开了启动了一个进程,是在内存中的,所以,用编辑器编写的内容也都是存放与内存中的,断电后数据丢失。 2. 要想永久保存,需要点击保存按钮:编辑器把内存的数据刷到了硬盘上。 3. 在我们编写一个py文件(没有执行),跟编写其他文件没有任何区别, 阅读全文
posted @ 2020-01-28 16:26 RandySun 阅读(159) 评论(0) 推荐(0)
摘要:Python进阶实战之三级菜单 一、Python进阶实战之三级菜单 1. 打印省、市、县三级菜单 2. 可返回上一级 3. 可随时退出程序 1.1 面条版 北京 上海 山东 第一层 : 北京 北京 上海 山东 第一层 : 北京 海淀 昌平 朝阳 东城 第二层 : 海淀 五道口 中关村 上地 第三层 阅读全文
posted @ 2020-01-28 15:43 RandySun 阅读(262) 评论(0) 推荐(0)
摘要:一、异常 万能捕捉异常公式 division by zero 二、深浅拷贝 2.1 拷贝 拷贝/浅拷贝/深拷贝都是针对可变类型数据而言的 如果l2是l1的拷贝对象,则l1内部的任何数据类型的元素变化,则l2内部的元素也会跟着改变,因为可变类型值变id不变 2.2 浅拷贝 如果l2是l1的浅拷贝对象, 阅读全文
posted @ 2020-01-28 15:23 RandySun 阅读(147) 评论(0) 推荐(0)
摘要:一、Python基础实战之猜年龄游戏 1. 给定年龄,用户可以猜三次年龄 2. 年龄猜对,让用户选择两次奖励 3. 用户选择两次奖励后可以退出 阅读全文
posted @ 2020-01-20 18:46 RandySun 阅读(638) 评论(0) 推荐(0)
摘要:[TOC] 计算机基础之编程 什么是编程语言 编程语言是人与计算机交流的介质 什么是编程 通过编程语言编写一大堆文件 为什么要编程 奴役计算机,替代劳动力 计算机五大组成 CPU 控制器 控制硬件 运算器 算术运算和逻辑运算 内存 优点: 速度快 缺点: 断掉即消失,存储容量小 外存 优点:容量大, 阅读全文
posted @ 2020-01-20 18:38 RandySun 阅读(395) 评论(0) 推荐(0)
摘要:流程控制之for循环 一、语法 有了骚气的while循环,为什么还满足不了那个需求呢,为什么还需要for ,看看下面的问题,给出一个列表,要取出列表里面的所有数据取出来,该怎么做呢,下面看看while如何实现: eg(while): python nums_list = [1, 2, 3, 4] n 阅读全文
posted @ 2020-01-20 11:16 RandySun 阅读(195) 评论(0) 推荐(0)
摘要:流程控制之while循坏 一、语法 循环就是一个重复的过程,我们人需要重复干一个活,人岂不是要累死啊,而且还是那么…..的枯燥乏味,向我这样要的小年轻,不骚里骚气的行吗?那岂不是白白流浪了这么多年头,所以说呢要合理利用工具和资源,那么就不得不提及这个人笨重的大家伙,那就是传说中的神奇——计算机,利用 阅读全文
posted @ 2020-01-20 10:50 RandySun 阅读(209) 评论(0) 推荐(0)
摘要:流程控制之if判断 一、语法 if判断是干什么的呢?if判断其实是在模拟人做判断。就是说如果这样干什么,如果那样干什么。对于ATM系统而言,则需要判断你的账号密码的正确性,进行账户认定,否则你的money不就可以别人家随便拿跑了。 二、if单分支结构 学什么都是为了让计算机向人一样工作,我们无时无刻 阅读全文
posted @ 2020-01-20 09:32 RandySun 阅读(170) 评论(0) 推荐(0)
摘要:基本运算符 当我们眼前飘过一只生物后,我们会立即获得这个生物的信息,种类、性别、身高、三维,当我们获取这些信息的同时,我们还会马上对这些信息做一些逻辑处理,如这个生物种类是老虎的时候,我们会跑开;这个生物是人,性别为女,但是身高只有一米三时,我们可能会不自觉地靠近? 一、算术运算符 说起运算符,我就 阅读全文
posted @ 2020-01-15 22:11 RandySun 阅读(215) 评论(0) 推荐(0)
摘要:python格式化输出 一、格式化输出三种方式 在写程序的过程中难免要得,输出有有特色的格式来,没有特色,谁还会耐得下去看呢,恐怕自己都写小烦躁,不要不要得,毕竟人就是个神奇的小动物嘛,所以说不得不提及,python传说中的占位符,此符非彼符(可不是用来搞僵尸的), 必须用此骚气漫天的占位符,下面进 阅读全文
posted @ 2020-01-15 21:44 RandySun 阅读(273) 评论(0) 推荐(0)
摘要:Python与用户交互 一、为什么交互? 让我们来回顾计算机的发明有何意义,计算机的发明是为了奴役计算机,解放劳动力。假设我们现在写了一个ATM系统取代了柜员,如果我们要在这台ATM上取款,那么这个ATM是不是会要求我们输入姓名、密码?是不是需要我们输入我们需要取款金额?这是不是就可以理解为一种交互 阅读全文
posted @ 2020-01-15 21:19 RandySun 阅读(577) 评论(0) 推荐(0)
摘要:解压缩 一、 解压缩 如果我们给出一个列表,我们需要一次性取出多个值,我们是不是可以用下面的方式实现呢? 解压缩 解压缩可以这样理解:超市打包是把多个商品放在一起,解压缩其实就是解包把多个商品一次性拿出来。 还能有一个更骚的操作,只可意会不可言传。 写程序不是用来装逼的,关键是创造价值。python 阅读全文
posted @ 2020-01-14 22:31 RandySun 阅读(268) 评论(0) 推荐(0)
摘要:数据类型 首先回顾变量是什么:变量用来记录世界的状态。创建计算机的目的就是想要让计算机和人一样能够识别世间万物,既然计算机能够识别世间万物。那么我们来想想怎么让计算机来认识我呢? 我们不讲计算机怎么认识我,我们聊聊你是怎么认识我的?如果是你,你是不是会通过我的名字、年龄、身高、性别和爱好认识我。那么 阅读全文
posted @ 2020-01-14 22:15 RandySun 阅读(207) 评论(0) 推荐(0)
摘要:变量 什么是变量 变量用来描述世间万物的状态 变量名的命名规范 1. 变量名由数字/字母/下划线组成,不能以数字开头 2. 变量名不能以关键字命名 3. 变量名具有意义 变量的组成 1. 变量名:接收变量值 2. 赋值符号:把变量值赋值给变量名 3. 变量值:就是一个数值 定义变量名的两种风格 1. 阅读全文
posted @ 2020-01-14 21:36 RandySun 阅读(157) 评论(0) 推荐(0)
摘要:注释 一、注释 当把变量理解透了,你就已经进入了编程的世界。随着学习的深入,用不了多久,你就可以写复杂的上千甚至上万行的代码啦,有些代码你花了很久写出来,过了些天再回去看,发现竟然看不懂了,这太正常了。 另外,你以后在工作中会发现,一个项目多是由几个甚至几十个开发人员一起做,你要调用别人写的代码,别 阅读全文
posted @ 2020-01-14 21:30 RandySun 阅读(210) 评论(0) 推荐(0)
摘要:花式赋值 一、链式赋值 二、交叉赋值 三、总结 1. 链式赋值:在多个变量具有相同值的时候使用 2. 链式赋值:在变量之间交换值的(它们交换的是地址,地址并没有发生变化),解压缩也可以用到 阅读全文
posted @ 2020-01-14 21:24 RandySun 阅读(187) 评论(0) 推荐(0)
摘要:变量的三个特征 Python中对于每个变量,python都提供了这三个方法分别获取变量的三个特征,其中python的内置功能id(),内存地址不一样,则id()后打印的结果不一样,因为每一个变量值都有其内存地址,而id是用来反映变量值在内存中的位置,内存地址不同则id不同 一、id() 二、type 阅读全文
posted @ 2020-01-14 21:08 RandySun 阅读(999) 评论(0) 推荐(0)
摘要:Python变量内存管理 一 、引入 解释器在执行到定义变量的语法时,会申请内存空间来存放变量的值,而内存的容量是有限的,这就涉及到变量值所占用内存空间的回收问题,当一个变量值没有用了(简称垃圾)就应该将其占用的内存给回收掉,那什么样的变量值是没有用的呢? 由于变量名是访问到变量值的唯一方式,所以当 阅读全文
posted @ 2020-01-14 20:48 RandySun 阅读(1805) 评论(0) 推荐(1)
摘要:常量 一、 常量 变量:变量是变化的量,常量则是不变的量。python中没有使用语法强制定义常量,也就是说,python中定义常量本质上就是变量。如果非要定义常量,变量名必须全大写,这点与其他语言不同。 如果是常量,那就没必要更改,所以python就只制定了一个规范,而没指定常量的语法, 因此常量也 阅读全文
posted @ 2020-01-14 19:54 RandySun 阅读(278) 评论(0) 推荐(0)
摘要:变量 一、什么是变量 变量:描述变化的世间万物的状态 量:记录现实世界中的状态,让计算机能够像人一样去识别世间万物。 今天我可能180,明年我是不是可能就是185了(5cm不过分),那这种状态是不是会发生变化。 变:现实世界中的状态是会发生改变的。 二、 定义变量 变量的组成(规则): 变量名(接收 阅读全文
posted @ 2020-01-14 19:41 RandySun 阅读(211) 评论(0) 推荐(0)
摘要:Anaconda环境安装 一、Anaconda Anaconda是Python的一个开源的发行版本,里面包含了很多科学计算相关的包,它和Python的关系就像linux系统中centos和Ubuntu的关系一样,不冲突,你可以同时在电脑上安装这两个东西。那至于为什么我已经在电脑上安装了pycharm 阅读全文
posted @ 2020-01-14 18:52 RandySun 阅读(666) 评论(0) 推荐(0)
摘要:ORM表之间高级设计 一、表的继承 总结: 1. 自定义基表,主要是用于解决多个表出现重复的字段,可以自定义基表(参考auth.models.User表) 2. 首先需要自定义创建一个表,然后在写内部类 Meta 3. 在Meta内部类中必须设置属性abstract = True,基表既可以别普通类 阅读全文
posted @ 2020-01-13 21:15 RandySun 阅读(241) 评论(1) 推荐(0)
摘要:drf序列化和反序列化 [TOC] 一、自定义序列化 总结: 1. 通过ORM操作获取数据库拿到资源数据 2. 将获取的的数据进行序列化,序列化之后将数据返回给前台的数据 3. 通过Response返回格式化后的数据 1.1 设置国际化 二、通过视图类的序列化和反序列化 2.1通过视图类序列化 自定 阅读全文
posted @ 2020-01-09 10:23 RandySun 阅读(1280) 评论(0) 推荐(0)
摘要:django restframework 一、安装与使用 1.安装 2.使用 在settings.py中注册: 模块 基于CBV完成满足RSSTful规范接口 二、request请求分析 2.1. request数据请求 总结: 1. drf中的request是在wsgi的request基础上进行再 阅读全文
posted @ 2020-01-07 08:25 RandySun 阅读(362) 评论(0) 推荐(0)
摘要:django restframework 一、安装与使用 1.安装 2.使用 在settings.py中注册: 模块 基于CBV完成满足RSSTful规范接口 二、request请求分析 2.1. request数据请求 总结: 1. drf中的request是在wsgi的request基础上进行再 阅读全文
posted @ 2020-01-05 16:29 RandySun 阅读(843) 评论(0) 推荐(0)