08 2018 档案
摘要:for i in range(1,10): for j in range(1,i+1): print('%s * %s = %s ' %(i,j,i*j),end="") print() print('\n'.join(['\t'.join(["%2s*%2s=%2s"%(j,i,i*j) for j in range(1,i+1)]) for i in r...
阅读全文
摘要:HTML介绍 Web服务本质 import socket sk = socket.socket() sk.bind(("127.0.0.1", 8080)) sk.listen(5) while True: conn, addr = sk.accept() data = conn.recv(8096
阅读全文
摘要:# 进程池 #为什么要有进程池? #在程序实际处理任务过程中,忙时会有成千上万的任务需要被执行,闲时可能只有零星任务. #那么在成千上万个任务需要执行的时候,我们就需要去创建成千上万个进程么? #首先,创建进程需要消耗时间,销毁进程也需要消耗时间.第二即便开启成千上万的进程 #操作系统也不能让他们同时执行,这样反而影响程序的效率.因此我们不能无限的根据 #任务开启或者任务结束. ...
阅读全文
摘要:# 进程之间的通信----队列和管道 #进程间通信:IPC (Inter Process Communication) # 队列 #创建共享的进程队列,Queue是多进程安全的队列,可以使用Queue实现多进程之间的数据传递 # Queue([maxsize]) #创建共享的进程队列 #参数:maxsize是队列中允许的最大项数.如果省略这个参数,则无大小限制 #队...
阅读全文
摘要:Manager的dict,list使用
阅读全文
摘要:阅读目录 一.楔子 二.客户端/服务端架构 三.网络基础 四.套接字(socket)初使用 五.黏包 六.socket的更多方法介绍 七.验证客户端链接的合法性 八.socketserver模块 回到顶部 一.楔子 你现在已经学会了写python代码,假如你写了两个python文件a.py和b.py
阅读全文
摘要:# 1.创建一个logger对象 # 2.创建一个文件管理操作符 # 3.创建一个屏幕管理操作符 # 4.创建一个日志输出格式 # 5.给文件操作符绑定一个格式 # 6.给屏幕管理操作符绑定一个格式 # 7.logger对象绑定文件管理操作符 # 8.logger对象绑定屏幕管理操作符 import logging import time import os # logging.basicC...
阅读全文
摘要:# 理论知识 #操作系统基础知识 #顾名思义,进程即正在执行的一个过程.进程是对正在运行程序的一个抽象 #进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最 #古老也是最重要的抽象概念之一.操作系统的其他所有内容都是围绕进程的概念 #展开的> #ps:利用cpu自有一个,也能保证支持并发的能力.将一个单独的cpu变成多个虚拟的cpu #(多道技术:时间多路复用和...
阅读全文
摘要:在说堆和栈之前,我们先说一下JVM(虚拟机)内存的划分: Java程序在运行时都要开辟空间,任何软件在运行时都要在内存中开辟空间,Java虚拟机运行时也是要开辟空间的。JVM运行时在内存中开辟一片内存区域,启动时在自己的内存区域中进行更细致的划分,因为虚拟机中每一片内存处理的方式都不同,所以要单独进行管理。 JVM内存的划分有五片: 1. 寄存器;...
阅读全文
摘要:介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己的宽度,但宽度是可选的 详细参考链接:http://www.runoob.com/mysql/mysql-data-types.html mysql常用数据类型概括: #1. 数字: 整型:tinyint int b
阅读全文
摘要:Python程序的执行原理 1. 过程概述 Python先把代码(.py文件)编译成字节码,交给字节码虚拟机,然后解释器一条一条执行字节码指令,从而完成程序的执行。 1.1python先把代码(.py文件)编译成字节码,交给字节码虚拟机,然后解释器会从编译得到的PyCodeObject对象中一条一条执行字节码指令, 并在当前的上下文环境中执行这条字节码指令,从而完成程序的执行。Python解...
阅读全文
摘要:阅读目录 手工操作 —— 穿孔卡片 批处理 —— 磁带存储和批处理系统 多道程序系统 分时系统 实时系统 通用操作系统 操作系统的进一步发展 操作系统的作用 手工操作 —— 穿孔卡片 1946年第一台计算机诞生--20世纪50年代中期,计算机工作还在采用手工操作方式。此时还没有操作系统的概念。 程序
阅读全文
摘要:subprocess模块 subprocess是Python 2.4中新增的一个模块,它允许你生成新的进程,连接到它们的 input/output/error 管道,并获取它们的返回(状态)码。这个模块的目的在于替换几个旧的模块和方法,如: os.system os.spawn* 1. subprocess模块中的常用函数 函数 描述 subprocess.run() Pytho...
阅读全文
摘要:TCP和UDP的最完整的区别 TCP UDP TCP与UDP基本区别: 1.基于连接与无连接 2.TCP要求系统资源较多,UDP较少; 3.UDP程序结构较简单 4.流模式(TCP)与数据报模式(UDP); 5.TCP保证数据正确性,UDP可能丢包 6.TCP保证数据顺序,UDP不保证 UDP应用场景: 1.面向数据报方式 2.网络数据大多为短消息 3...
阅读全文
摘要:解决方案 # 我们可以借助一个模块,这个模块可以把要发送的数据长度转换成固定长度的字节。这样客户端每次接 # 收消息之前只要先接受这个固定长度字节的内容看一看接下来要接收的信息大小,那么最终接受的数据 # 要达到这个值就停止,就能刚好不多不少的接收完整的数据了。 # import json,struct # #假设通过客户端上传1T:1073741824000的文件a.txt # #为避免...
阅读全文
摘要:#黏包:发送端发送数据,接收端不知道应如何去接收造成的一种数据混乱现象.#关于分包和黏包: #黏包:发送端发送两个字符串"hello"和"word",接收方却一次性接收到"helloword" #分包:发送端发送字符串"helloword",接收方却受到了两个字符串"hello"和"word"#虽然
阅读全文
摘要:# #********struct模块********# # 1.按照指定格式将Python数据转换为字符串,该字符串为字节流,如网络传输时, # 不能传输int,此时先将int转化为字节流,然后再发送; # 2.按照指定格式将字节流转换为Python指定的数据类型; # 3.处理二进制数据,如果用struct来处理文件的话,需要用’wb’,’rb’以二 # 进制(字节流)写,读的方式来处...
阅读全文
摘要:#黏包:发送端发送数据,接收端不知道应如何去接收造成的一种数据混乱现象. #关于分包和黏包: #黏包:发送端发送两个字符串"hello"和"word",接收方却一次性接收到"helloword" #分包:发送端发送字符串"helloword",接收方却受到了两个字符串"hello"和"word" #虽然socket环境有这些问题,但是TCP传输数据能保证几点: #顺序不...
阅读全文
摘要:import socket import subprocess sk = socket.socket() sk.bind(('127.0.0.1',10800)) sk.listen() conn,addr = sk.accept() #内容 while 1: cmd = conn.recv(1024).decode('utf-8') # 接收的字节先解码,然后进系统命令 ...
阅读全文
摘要:TCP是因特网中的传输层协议,使用三次握手协议建立连接。当主动方发出SYN连接请求后,等待对方回答SYN+ACK[1],并最终对对方的 SYN 执行 ACK 确认。这种建立连接的方法可以防止产生错误的连接。[1] TCP三次握手的过程如下: 客户端发送SYN(SEQ=x)报文给服务器端,进入SYN_SEND状态。 服务器端收到SYN报文,回应一个SYN (SEQ=y)ACK(ACK=x+1)报文...
阅读全文
摘要:阅读目录 一 模块 3.1 import 3.2 from ... import... 3.3 把模块当做脚本执行 3.4 模块搜索路径 3.5 编译python文件 二 包 2.2 import 2.3 from ... import ... 2.4 __init__.py文件 2.5 from
阅读全文
摘要:在python开发的过程中,经常会遇到需要打印各种信息。海量的信息堆砌在控制台中,就会导致信息都混在一起,降低了重要信息的可读性。这时候,如果能给重要的信息加上字体颜色,那么就会更加方便用户阅读了。 当然了,控制台的展示效果有限,并不能像前段一样炫酷,只能做一些简单的设置。不过站在可读性的角度来看,已经好很多了。 书写格式,和相关说明如下: 复制代码 复制代码 #格式: 设置...
阅读全文
摘要:阅读目录 楔子 装饰器的形成过程 开放封闭原则 谈装饰器主要功能和装饰器固定结构 带参数的装饰器 多个装饰器装饰一个函数 返回顶部 楔子 作为一个会写函数的python开发,我们从今天开始要去公司上班了。写了一个函数,就交给其他开发用了。 def func1(): print('in func1')
阅读全文
摘要:#什么叫序列化模块: # # 将原本的字典,列表等内容转换成一个字符串的过程就叫做序列化 # #序列化的目的: # #1.以某种存储形式使自定义对象持久化 # #2.将对象从一个地方传递到另外一个地方 # #3.使程序更具维护性. # # str>>>> 反序列化>>>>数据结构 # # 数据结构>>>>序列化>>>>>>>str #...
阅读全文
摘要:import random # 随机 : 在某个范围内取到每一个值的概率是相同的 # 随机小数 # print(random.random()) # 0-1之内的随机小数 # print(random.uniform(1,5)) # 任意范围之内的随机小数 # 随机整数 ***** # print(random.randint(1,2)) # [1,2] 包含2在内的范围内随机取整数 # p...
阅读全文
摘要:#sys模块是与python解释器交互的一个接口 import sys # print(sys.argv) #命令行参数list,第一个元素是程序本身路径 #第一个元素就是执行文件的时候,写在python命令后的第一个值,之后的元素 #在执行python启动的时候可以写多个值,这些值都会依次添加到列表中 # sys.exit() # 退出程序,正常退出时exit(0),错误退出sys.exi...
阅读全文
摘要:#os模块 #os模块 用于提供系统级别的操作 # 当前执行这个python文件的工作目录相关的工作路径 import os os.getcwd() # 获取当前工作目录,即当前python脚本工作的目录路径(在那执行就是那个路径) print(os.getcwd()) #结果 # K:\python3\test\day27 os.chdir("K:/python3/test/day2...
阅读全文
摘要:#时间模块 #time模块中时间表现的格式主要有三种: # 1.时间戳时间(timestamp),时间戳表示是从英国敦伦时间1970年1月1日00:00:00开始按秒计算的偏移量 # 2.结构化时间(struct_time),时间对象,能够通过属性名来获取对象中的值,共有九个元素组 # 3.格式化时间(format_time),已格式化的结构让时间更具可读性,可以根据自定义时间格式...
阅读全文
摘要:# re模块 findall(模式,字符串,flags= 0(默认0) # 返回字符串中所有不重叠匹配的列表,返回所有匹配的内容 # 如果模式中存在一个或多个捕获组,则返回 # 组的列表;如果是模式,这将是一个元组列表 # 有多个组 # 注意 : findall的分组用法 # findall(pattern, string, flags=0): #返回字符串中所有不重叠匹配的...
阅读全文
摘要:一 前言 1.1正则表达式: 正则表达式是对字符串操作的一种逻辑公式,就是用是先定义好的特定字符以及这些特定字符的组合,组成一个"规则字符串" ,这个"规则字符串"用来表达对字符串的一种过滤逻辑(匹配字符串的一种规则) 1.2正则表达式应用领域: 1.表单验证(登录注册页) 2.爬虫 3.自动化开发
阅读全文
摘要:阅读目录 认识模块 什么是模块 模块的导入和使用 常用模块一 collections模块 时间模块 random模块 os模块 sys模块 序列化模块 re模块 常用模块二 hashlib模块 configparse模块 logging模块 认识模块 返回顶部 什么是模块 什么是模块? 常见的场景:
阅读全文
摘要:阅读目录 isinstance和issubclass 反射 setattr delattr getattr hasattr __str__和__repr__ __del__ item系列 __getitem__ __setitem__ __delitem__ __new__ __call__ __l
阅读全文
摘要:# class Saler: # def __init__(self,name,sex,ident): # self.name = name # self.sex = sex # self.ident = ident # def sale(self): # print('%s卖东西'%self.name) # ...
阅读全文