摘要:
网络编程目录 "1 CS架构介绍" "2 TCP、IP各层介绍" "3 Socket介绍" "4 Socket代码实例" "5 粘包现象与解决方案" "6 通过Socket发送文件" 阅读全文
posted @ 2019-10-12 10:19
不要找借口
阅读(160)
评论(0)
推荐(0)
摘要:
通过socket收发文件软件开发 收发收发文件与远程执行命令的程序原理是一摸一样的,比如下载文件的过程: 参照上一小节文艺青年实现版二,示范代码如下 服务端实现 阅读全文
posted @ 2019-10-12 10:16
不要找借口
阅读(777)
评论(0)
推荐(0)
摘要:
简单远程执行命令程序开发 是时候用户socket干点正事呀,我们来写一个远程执行命令的程序,写一个socket client端在windows端发送指令,一个socket server在Linux端执行命令并返回结果给客户端 执行命令的话,肯定是用我们学过的subprocess模块啦,但 注意注意注 阅读全文
posted @ 2019-10-12 10:15
不要找借口
阅读(292)
评论(0)
推荐(0)
摘要:
基本Socket例子 做了这么久的铺垫,是时候该与远方的她say hi啦 Server Client 先启动server端,再启动client端,看结果 此时一定要停下来,让学生自己写一遍! 循环收发数据 第一次接触就这么交待了,只说了一句话,感觉不够过瘾,如何实现更多的交互呢?简单,只需要让客户端 阅读全文
posted @ 2019-10-12 10:13
不要找借口
阅读(314)
评论(0)
推荐(0)
摘要:
引子 我们已经知道,假设我现在要写一个程序,给另一台计算机发数据,必须通过tcp/ip协议 ,但具体的实现过程是什么呢?我应该怎么操作才能把数据封装成tcp/ip的包,又执行什么指令才能把数据发到对端机器上呢? 不能只有世界观,没有方法论呀。。。此时,socket隆重登场,简而言之,socket这个 阅读全文
posted @ 2019-10-12 10:02
不要找借口
阅读(424)
评论(0)
推荐(0)
摘要:
TCP/IP五层模型讲解 我们将应用层,表示层,会话层并作应用层,从tcp/ip五层协议的角度来阐述每层的由来与功能,搞清楚了每层的主要协议 就理解了整个互联网通信的原理。 首先,用户感知到的只是最上面一层应用层,自上而下每层都依赖于下一层,所以我们从最下一层开始切入,比较好理解 每层都运行特定的协 阅读全文
posted @ 2019-10-12 10:00
不要找借口
阅读(953)
评论(0)
推荐(0)
摘要:
什么是C/S架构 C指的是client(客户端软件),S指的是Server(服务端软件),本章的重点就是教大家写一个C/S架构的软件,实现服务端软件与客户端软件基于网络通信。 计算机基础知识 作为应用开发程序员,我们开发的软件都是应用软件,而应用软件必须运行于操作系统之上,操作系统则运行于硬件之上, 阅读全文
posted @ 2019-10-12 09:53
不要找借口
阅读(10366)
评论(0)
推荐(0)
摘要:
面向对象目录 "1 面向对象介绍" "2 类和对象" "3 属性查找和绑定方法" "4 继承和派生" "5 组合" "6 抽象类" "7 多态和多态性" "8 封装" "9 绑定方法和非绑定方法" "10 内置方法(1)" "11 内置方法(2)" "12 元类" "13 面向对象的软件开发" "1 阅读全文
posted @ 2019-10-12 09:24
不要找借口
阅读(190)
评论(0)
推荐(0)
摘要:
一 什么是异常 异常就是程序运行时发生错误的信号(在程序出现错误时,则会产生一个异常,若程序没有处理它,则会抛出该异常,程序的运行也随之终止),在python中,错误触发的异常如下 而错误分成两种 1.语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) 2.逻辑错误 阅读全文
posted @ 2019-10-12 09:19
不要找借口
阅读(134)
评论(0)
推荐(0)
摘要:
好了,你现在会了面向对象的各种语法了, 那请看下本章最后的作业需求,我相信你可能是蒙蔽的, 很多同学都是学会了面向对象的语法,却依然写不出面向对象的程序,原因是什么呢?原因就是因为你还没掌握一门面向对象设计利器, 你说我读书少别骗我, 什么利器? 答案就是: 领域建模 。 从领域模型开始,我们就开始 阅读全文
posted @ 2019-10-12 09:18
不要找借口
阅读(179)
评论(0)
推荐(0)
摘要:
面向对象的软件开发 很多人在学完了python的class机制之后,遇到一个生产中的问题,还是会懵逼,这其实太正常了,因为任何程序的开发都是先设计后编程,python的class机制只不过是一种编程方式,如果你硬要拿着class去和你的问题死磕,变得更加懵逼都是分分钟的事,在以前,软件的开发相对简单 阅读全文
posted @ 2019-10-12 09:17
不要找借口
阅读(167)
评论(0)
推荐(0)
摘要:
七 __setitem__,__getitem__,__delitem__ 八 __str__,__repr__,__format__ 改变对象的字符串显示__str__,__repr__ 自定制格式化字符串__format__ 自定义format练习 issubclass和isinstance 九 阅读全文
posted @ 2019-10-12 09:16
不要找借口
阅读(91)
评论(0)
推荐(0)
摘要:
一 知识储备 exec的使用 二 引子(类也是对象) python中一切皆是对象,类本身也是一个对象,当使用关键字class的时候,python解释器在加载class的时候就会创建一个对象(这里的对象指的是类而非类的实例),因而我们可以将类当作一个对象去使用,同样满足第一类对象的概念,可以: 把类赋 阅读全文
posted @ 2019-10-12 09:16
不要找借口
阅读(144)
评论(0)
推荐(0)
摘要:
一 isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 issubclass(sub, super)检查sub类是否是 super 类的派生类 二 反射 1 什么是反射 反射的概念是由Smi 阅读全文
posted @ 2019-10-12 09:15
不要找借口
阅读(102)
评论(0)
推荐(0)
摘要:
引子 从封装本身的意思去理解,封装就好像是拿来一个麻袋,把小猫,小狗,小王八,还有alex一起装进麻袋,然后把麻袋封上口子。照这种逻辑看,封装=‘隐藏’,这种理解是相当片面的 先看如何隐藏 在python中用双下划线开头的方式将属性隐藏起来(设置成私有的) 这种自动变形的特点: 1. 类中定义的__ 阅读全文
posted @ 2019-10-12 09:14
不要找借口
阅读(120)
评论(0)
推荐(0)
摘要:
类中定义的函数分成两大类 一:绑定方法(绑定给谁,谁来调用就自动将它本身当作第一个参数传入): 1. 绑定到类的方法:用classmethod装饰器装饰的方法。 2. 绑定到对象的方法:没有被任何装饰器装饰的方法。 二:非绑定方法:用staticmethod装饰器装饰的方法 1. 不与类或对象绑定, 阅读全文
posted @ 2019-10-12 09:14
不要找借口
阅读(125)
评论(0)
推荐(0)
摘要:
接口与归一化设计 1.什么是接口 hi boy,给我开个查询接口。。。此时的接口指的是:自己提供给使用者来调用自己功能的方式\方法\入口,java中的interface使用如下 2. 为何要用接口 接口提取了一群类共同的函数,可以把接口当做一个函数的集合。 然后让子类去实现接口中的函数。 这么做的意 阅读全文
posted @ 2019-10-12 09:13
不要找借口
阅读(130)
评论(0)
推荐(0)
摘要:
多态 多态指的是一类事物有多种形态,比如 动物有多种形态:人,狗,猪 文件有多种形态:文本文件,可执行文件 多态性 一 什么是多态动态绑定(在继承的背景下使用时,有时也称为多态性) 多态性是指在不考虑实例类型的情况下使用实例,多态性分为静态多态性和动态多态性 静态多态性:如任何类型都可以用运算符+进 阅读全文
posted @ 2019-10-12 09:13
不要找借口
阅读(243)
评论(0)
推荐(0)
摘要:
组合与重用性 软件重用的重要方式除了继承之外还有另外一种方式,即:组合 组合指的是,在一个类中以另外一个类的对象作为数据属性,称为类的组合 组合与继承都是有效地利用已有类的资源的重要方式。但是二者的概念和使用场景皆不同, 1.继承的方式 通过继承建立了派生类与基类之间的关系,它是一种'是'的关系,比 阅读全文
posted @ 2019-10-12 09:12
不要找借口
阅读(131)
评论(0)
推荐(0)
摘要:
初识继承 什么是继承? 继承指的是类与类之间的关系,是一种什么“是”什么的关系,继承的功能之一就是用来解决代码重用问题 继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可以成为基类或超类,新建的类称为派生类或子类 python中类的继承分为:单继承和多继承 查看继承 阅读全文
posted @ 2019-10-12 09:11
不要找借口
阅读(230)
评论(0)
推荐(0)
摘要:
属性查找 类有两种属性:数据属性和函数属性 1、类的数据属性是所有对象共享的 2、类的函数数据是绑定给对象用的,称为绑定到对象的方法 在obj.name会先从obj自己的名称空间里找name,找不到则去类中找,类也找不到就找父类...最后都找不到就抛出异常 绑定方法 定义类并实例化出三个对象 类中定 阅读全文
posted @ 2019-10-12 09:08
不要找借口
阅读(129)
评论(0)
推荐(0)
摘要:
类与对象的概念 类即类别、种类,是面向对象设计最重要的概念,从一小节我们得知对象是特征与技能的结合体,而类则是一系列对象相似的特征与技能的结合体。 那么问题来了,先有的一个个具体存在的对象(比如一个具体存在的人),还是先有的人类这个概念,这个问题需要分两种情况去看 在现实世界中:肯定是先有对象,再有 阅读全文
posted @ 2019-10-12 09:07
不要找借口
阅读(141)
评论(0)
推荐(0)
摘要:
编程范式 编程即写程序or写代码,具体是指程序员用特定的语法+数据结构+算法编写代码,目的是用来告诉计算机如何执行任务 。 如果把编程的过程比喻为练习武功,那么编程范式指的就是武林中的各种流派,而在编程的世界里最常见的两大流派便是:面向过程与面向对象。 “功夫的流派没有高低之分,只有习武的人才有高低 阅读全文
posted @ 2019-10-12 09:05
不要找借口
阅读(161)
评论(0)
推荐(0)
摘要:
常用模块目录 "1 模块和包的介绍" "2 time模块" "3 datetime模块" "4 random模块" "5 OS模块" "6 sys模块" "7 shutil模块" "8 json&pickle模块" "9 shelve模块" "10 xml模块" "11 configparser模块 阅读全文
posted @ 2019-10-12 09:03
不要找借口
阅读(280)
评论(0)
推荐(0)
摘要:
re模块(正则表达式) 引子 请从以下文件里取出所有的手机号 你能想到的办法是什么? 必然是下面这种吧? 有没有更简单的方式? re模块 正则表达式就是字符串的匹配规则,在多数编程语言里都有相应的支持,python里对应的模块是re 常用的表达式规则 re的匹配语法有以下几种 re.match 从头 阅读全文
posted @ 2019-10-12 08:54
不要找借口
阅读(207)
评论(0)
推荐(0)
摘要:
logging模块 很多程序都有记录日志的需求,并且日志中包含的信息即有正常的程序访问日志,还可能有错误、警告等信息输出,python的logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,logging的日志可以分为 5个级别,下面我们看一下怎么用。 最简单用法 输出 看一下这几 阅读全文
posted @ 2019-10-12 08:53
不要找借口
阅读(156)
评论(0)
推荐(0)
摘要:
加密算法介绍 HASH Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能 阅读全文
posted @ 2019-10-12 08:52
不要找借口
阅读(131)
评论(0)
推荐(0)
摘要:
subprocess模块 我们经常需要通过Python去执行一条系统命令或脚本,系统的shell命令是独立于你的python进程之外的,每执行一条命令,就是发起一个新进程,通过python调用系统命令或脚本的模块在python2有os.system, 这条命令的实现原理是什么呢?(视频中讲,解释进程 阅读全文
posted @ 2019-10-12 08:52
不要找借口
阅读(150)
评论(0)
推荐(0)
摘要:
configparser模块 此模块用于生成和修改常见配置文档,当前模块的名称在 python 3.x 版本中变更为 configparser。 来看一个好多软件的常见配置文件格式如下 解析配置文件 其它增删改查语法 阅读全文
posted @ 2019-10-12 08:51
不要找借口
阅读(124)
评论(0)
推荐(0)
摘要:
xml模块 xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融行业的很多系统的接口还主要是xml。 xml的格式如下,就是通过节点来区别数据结构的: xml协议在各个 阅读全文
posted @ 2019-10-12 08:51
不要找借口
阅读(142)
评论(0)
推荐(0)
摘要:
序列化 序列化是指把内存里的数据类型转变成字符串,以使其能存储到硬盘或通过网络传输到远程,因为硬盘或网络传输时只能接受bytes 为什么要序列化? 你打游戏过程中,打累了,停下来,关掉游戏、想过2天再玩,2天之后,游戏又从你上次停止的地方继续运行,你上次游戏的进度肯定保存在硬盘上了,是以何种形式呢? 阅读全文
posted @ 2019-10-12 08:50
不要找借口
阅读(130)
评论(0)
推荐(0)
摘要:
shelve模块 shelve模块是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式 序列化: 反序列化: 阅读全文
posted @ 2019-10-12 08:50
不要找借口
阅读(95)
评论(0)
推荐(0)
摘要:
shutil 模块 高级的 文件、文件夹、压缩包 处理模块 shutil.copyfileobj(fsrc, fdst[, length]) 将文件内容拷贝到另一个文件中 shutil.copyfile(src, dst) 拷贝文件 shutil.copymode(src, dst) 仅拷贝权限。内 阅读全文
posted @ 2019-10-12 08:49
不要找借口
阅读(152)
评论(0)
推荐(0)
摘要:
OS模块 阅读全文
posted @ 2019-10-12 08:46
不要找借口
阅读(213)
评论(0)
推荐(0)
摘要:
sys模块 | 模块代码 | 解释 | | | | | sys.argv | 命令行参数List,第一个元素是程序本身路径例如:['D:/路飞学城Python/常用模块/sys模块.py'] | | sys.exit() | 退出程序 | | sys.version | 获取Python解释程序的版 阅读全文
posted @ 2019-10-12 08:46
不要找借口
阅读(122)
评论(0)
推荐(0)
摘要:
random模块 string模块 python print(string.ascii_letters) 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' print(string.ascii_lowercase) 'abcdefghijk 阅读全文
posted @ 2019-10-12 08:45
不要找借口
阅读(105)
评论(0)
推荐(0)
摘要:
datetime模块定义了下面这几个类: datetime.date:表示日期的类。常用的属性有year, month, day; datetime.time:表示时间的类。常用的属性有hour, minute, second, microsecond; datetime.datetime:表示日期 阅读全文
posted @ 2019-10-12 08:44
不要找借口
阅读(184)
评论(0)
推荐(0)
摘要:
1 python中,有这几种的方式表示时间 时间戳(timestamp) 格式化的时间字符串 元组(struct_time)共九个元素。由于Python的time模块实现主要调用C库,所以各个平台可能有所不同。 2 定义 UTC 简称: 协调世界时 ,又称世界统一时间、世界标准时间、国际协调时间 时 阅读全文
posted @ 2019-10-12 08:43
不要找借口
阅读(185)
评论(0)
推荐(0)
摘要:
模块 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在Python中, 一个.py文件就称之为一个模块(Mod 阅读全文
posted @ 2019-10-12 08:42
不要找借口
阅读(407)
评论(0)
推荐(0)
摘要:
函数编程目录 "1 函数定义" "2 函数参数" "3 返回值" "4 局部变量和全局变量" "5 嵌套函数" "6 匿名函数" "7 高阶函数" "8 递归函数" "9 函数进阶 命名空间" "10 函数进阶 闭包" "11 函数进阶 装饰器" "12 函数进阶 生成器" "13 函数进阶 迭代器 阅读全文
posted @ 2019-10-12 08:38
不要找借口
阅读(153)
评论(0)
推荐(0)
摘要:
列表生成式 生成器 通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。 所以,如果列表元素可以按照某种算法推算出来,那我们是否 阅读全文
posted @ 2019-10-12 08:31
不要找借口
阅读(101)
评论(0)
推荐(0)
摘要:
我们已经知道,可以直接作用于for循环的数据类型有以下几种: 一类是集合数据类型,如list、tuple、dict、set、str等; 一类是generator,包括生成器和带yield的generator function。 这些可以直接作用于for循环的对象统称为可迭代对象:Iterable。 阅读全文
posted @ 2019-10-12 08:31
不要找借口
阅读(138)
评论(0)
推荐(0)
摘要:
闭包 即函数定义和函数表达式位于另一个函数的函数体内(嵌套函数)。而且,这些内部函数可以访问它们所在的外部函数中声明的所有局部变量、参数。当其中一个这样的内部函数在包含它们的外部函数之外被调用时,就会形成闭包。也就是说,内部函数会在外部函数返回后被执行。而当这个内部函数执行时,它仍然必需访问其外部函 阅读全文
posted @ 2019-10-12 08:30
不要找借口
阅读(105)
评论(0)
推荐(0)
摘要:
装饰器 python装饰器就是用于拓展原来函数功能的一种函数,这个函数的特殊之处在于它的返回值也是一个函数,使用python装饰器的好处就是在不用更改原函数的代码前提下给函数增加新的功能。 一般而言,我们要想拓展原来函数代码,最直接的办法就是侵入代码里面修改 \ 假设你是一家视频网站的后端开发工程师 阅读全文
posted @ 2019-10-12 08:30
不要找借口
阅读(85)
评论(0)
推荐(0)
摘要:
名称空间共3种 ,分别如下 locals: 是函数内的名称空间,包括局部变量和形参 globals: 全局变量,函数定义所在模块的名字空间 builtins: 内置模块的名字空间 不同变量的作用域不同就是由这个变量所在的命名空间决定的。 作用域即范围 全局范围:全局存活,全局有效 局部范围:临时存活 阅读全文
posted @ 2019-10-12 08:29
不要找借口
阅读(113)
评论(0)
推荐(0)
摘要:
在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是 递归函数 递归特性: 1. 必须有一个明确的结束条件 2. 每次进入更深一层递归时,问题规模相比上次递归都应有所减少 3. 递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的 阅读全文
posted @ 2019-10-12 08:28
不要找借口
阅读(140)
评论(0)
推荐(0)
摘要:
高阶函数 变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。 只需满足以下任意一个条件,即是 高阶函数 一个或多个函数作为输入 return 返回另外一个函数 阅读全文
posted @ 2019-10-12 08:27
不要找借口
阅读(99)
评论(0)
推荐(0)
摘要:
```python name = "python" def change_name(): name = "java" def change_name2(): name = "linux" print("第3层打印", name) change_name2() # 调用内层函数 print("第2层打印", name) change_name() print("最外层打印", name) #输出 第 阅读全文
posted @ 2019-10-12 08:26
不要找借口
阅读(124)
评论(0)
推荐(0)
摘要:
匿名函数 (lambda)就是不需要显式的指定函数名 和 map()函数 一起使用 和 filter()函数 一起使用 阅读全文
posted @ 2019-10-12 08:26
不要找借口
阅读(83)
评论(0)
推荐(0)
摘要:
局部变量和全局变量 1. 在函数中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。 2. 全局变量作用域是整个程序,局部变量作用域是定义该变量的函数。 3. 当全局变量与局部变量同名时,在定义局部变量的函数内,局部变量起作用;在其它地方全局变量起作用。 不用传name 值到函数里,不可 阅读全文
posted @ 2019-10-12 08:25
不要找借口
阅读(474)
评论(0)
推荐(0)
摘要:
形参 只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量 实参 可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值 阅读全文
posted @ 2019-10-12 08:24
不要找借口
阅读(145)
评论(0)
推荐(0)
摘要:
返回值 函数外部的代码要想获取函数的执行结果,就可以在函数里用return语句把结果返回 注意 函数在执行过程中只要遇到return语句,就会停止执行并返回结果,也可以理解为 return 语句代表着函数的结束 如果未在函数中指定return,那这个函数的返回值为None 阅读全文
posted @ 2019-10-12 08:24
不要找借口
阅读(250)
评论(0)
推荐(0)
摘要:
函数 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,具体区别,我们后面会讲,编程中的函数在英文中也有很多不同的叫法。在BASIC中叫做subroutine(子过程或子程序),在Pascal中叫做procedure(过程)和function,在C中只有function,在J 阅读全文
posted @ 2019-10-12 08:23
不要找借口
阅读(405)
评论(0)
推荐(0)
摘要:
Python学习之路 "1 Python基础" "2 函数编程" "3 常用模块" "4 面向对象" "5 网络编程" "6 并发编程" "7 MySql数据库" 更新中。。。 阅读全文
posted @ 2019-10-12 08:19
不要找借口
阅读(174)
评论(0)
推荐(0)

浙公网安备 33010602011771号