![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python核心编程
Daniel_WL
这个作者很懒,什么都没留下…
展开
-
Python核心编程:重新加载模块
一般情况下,导入模块使用语句 import xxx当我们没有退出程序,但是被导入的模块被修改了,该如何加载出被更改的内容呢?方法一:关闭程序,重启导入方法二:使用语句from imp import *import reload(xxx)...原创 2019-03-06 07:10:04 · 250 阅读 · 0 评论 -
python核心编程:HTTP响应码
状态码 含义100 客户端应当继续发送请求。这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。服务器必须在请求完成后向客户端发送一个最终响应。101 服务器已经理解了客户端的请求,并将通过Upgrade 消息头通知客户端采用不同的协议来完成这个请求。在发送完这个响应最后的空行后,服务器将会切换到在Upg...原创 2019-03-26 19:39:02 · 199 阅读 · 0 评论 -
python核心编程:显示需要的网页
#-*-coding:utf-8-*-import socketfrom multiprocessing import Processimport redef handleClient(clientSocket): '用一个新的进程,为一个客户端进行服务' recvData = clientSocket.recv(2014) requestHeaderLines...原创 2019-03-26 19:39:30 · 102 阅读 · 0 评论 -
python核心编程:进制转换
#10进制转为2进制bin(10)‘0b1010’#2进制转为10进制int(“1001”,2)9#10进制转为16进制hex(10)‘0xa’#16进制到10进制int(‘ff’, 16)255int(‘0xab’, 16)171#十进制转为八进制print("%o" % 10)12#16进制到...转载 2019-03-26 19:40:01 · 278 阅读 · 0 评论 -
python核心编程:双向链表
class Node(object): def __init__(self,item): self.item = item self.next = None self.prev = Noneclass DLinkList(object): def __init__(self): self.__hea...原创 2019-03-27 20:35:43 · 101 阅读 · 0 评论 -
python核心编程:单向链表
单链表的操作is_empty() 链表是否为空length() 链表长度travel() 遍历整个链表add(item) 链表头部添加元素append(item) 链表尾部添加元素insert(pos, item) 指定位置添加元素remove(item) 删除节点search(item) 查找节点是否存在# coding:utf-8class Node(object):...原创 2019-03-27 20:36:09 · 151 阅读 · 0 评论 -
python核心编程:timeit模块测试一小段Python代码的执行速度
def test1(): l = [] for i in range(1000): l = l + [i]def test2(): l = [] for i in range(1000): l.append(i)def test3(): l = [] for i in range(1000): ...原创 2019-03-27 20:36:30 · 254 阅读 · 0 评论 -
python核心编程:栈
栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,英语:top)进行加入数据(英语:push)和输出数据(英语:pop)的运算。没有了位置概念,保证任何时候可以访问、删除的元素都是此前最后存入的那个元素,确定了一种默认的访问顺序。由于栈数据结构只允许在一端进行操作,因而按照后进先出(LIFO, Last In F...原创 2019-03-28 20:12:14 · 99 阅读 · 0 评论 -
python核心编程:队列
队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出的(First In First Out)的线性表,简称FIFO。允许插入的一端为队尾,允许删除的一端为队头。队列不允许在中间部位进行操作!假设队列是q=(a1,a2,……,an),那么a1就是队头元素,而an是队尾元素。这样我们就可以删除时,总是从a1开始,而插入时,总是在队列最后。这也比较符合我们...原创 2019-03-28 20:12:29 · 102 阅读 · 0 评论 -
python核心编程:双端队列
双端队列(deque,全名double-ended queue),是一种具有队列和栈的性质的数据结构。双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。双端队列可以在队列任意一端入队和出队。操作Deque() 创建一个空的双端队列add_front(item) 从队头加入一个item元素add_rear(item) 从队尾加入一个item元素remove_front(...转载 2019-03-28 20:12:50 · 82 阅读 · 0 评论 -
python核心编程:冒泡排序
冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。冒泡排序算法的运作如下:比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。对每一对相邻元素作同样的...原创 2019-03-28 20:13:05 · 167 阅读 · 0 评论 -
python核心编程:选择排序
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移到其最...原创 2019-03-28 20:13:21 · 124 阅读 · 0 评论 -
python核心编程:插入排序
插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。时间复杂度最优时间复杂度:O(n) (升序排列,序列已经处于升序状态)最坏时间复杂度:O(n2)稳定性:稳定def inse...原创 2019-03-28 20:13:35 · 106 阅读 · 0 评论 -
python核心编程:希尔排序
希尔排序希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。希尔排序过程希尔排序的基本思想是:将...原创 2019-03-28 20:13:48 · 116 阅读 · 0 评论 -
python核心编程:快速排序
快速排序快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。步骤为:从数列中挑出一个元素,称为"基准"(pivot),重新排序数列,所有元...原创 2019-03-28 20:14:03 · 169 阅读 · 0 评论 -
python核心编程:二叉树
# coding:utf-8class Node(object): """""" def __init__(self, item): self.elem = item self.lchild = None self.rchild = Noneclass Tree(object): """二叉树""" def _...原创 2019-03-29 18:04:03 · 113 阅读 · 0 评论 -
python核心编程:二分查找
def binary_search(alist, item): """二分查找,递归""" n = len(alist) if n > 0: mid = n//2 if alist[mid] == item: return True elif item < alist[mid]: ...原创 2019-03-29 18:03:47 · 99 阅读 · 0 评论 -
Python核心编程:深拷贝,浅拷贝
通俗的说,浅拷贝就是只拷贝了引用,深拷贝则拷贝了内容例如:#浅拷贝a = [1,2,3]b = a #b指向a的地址print(id(a))#打印a的地址print(id(b))#打印b的地址运行结果:3957632839576328本例可以看出b只是拷贝了a的地址, 并没有创建一个新的空间来存储a的内容接下来对比一下深拷贝#深拷贝import copya = [1...原创 2019-03-06 10:51:38 · 140 阅读 · 0 评论 -
python核心编程:多进程拷贝文件夹下所有文件
'''多进程拷贝文件夹下所有文件1.通过输入的路径找到需要被拷贝的文件夹2.读取文件夹下所有文件名3.启动进程进行拷贝4.主进程中显示文件拷贝进度'''import multiprocessingimport timeimport osimport random#定义实现拷贝功能def oldFileDir(q,file,fileName,newName): fr...原创 2019-03-13 21:15:45 · 410 阅读 · 0 评论 -
python核心编程:udp广播
#coding=utf-8import socket, sysdest = ('<broadcast>', 7878)# 创建udp套接字s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# 对这个需要发送广播数据的套接字进行修改设置,否则不能发送广播数据s.setsockopt(socket.SOL_SOCKET...原创 2019-03-19 17:55:03 · 199 阅读 · 0 评论 -
python核心编程:基于TCP的简易qq聊天室
#coding=utf-8#客户端代码from socket import *#创建套接字tcpSocket = socket(AF_INET,SOCK_STREAM)addr = ("192.168.123.1",7878)#创建连接tcpSocket.connect(addr)while True: senddata = raw_input("请输入(q退出):") ...原创 2019-03-19 17:55:33 · 485 阅读 · 0 评论 -
python核心编程:gevent实现单进程服务器
import geventimport sysfrom gevent import socket,monkeymonkey.patch_all()def test2(cli): while True: data = cli.recv(1024) if not data: print("客户端已关闭") ...原创 2019-03-20 19:38:22 · 129 阅读 · 0 评论 -
python核心编程:select版-TCP服务器
#-*-coding:utf-8-*-from socket import *import selectimport syss = socket(AF_INET,SOCK_STREAM)#s.setsockopt(SOL_SOCKET,SO_REUSEADDR,1)addr = ("",7878)s.bind(addr)s.listen(5)input = [s,sys.std...原创 2019-03-20 19:39:03 · 147 阅读 · 0 评论 -
python核心编程:单进程服务器非堵塞模式
#-*-coding:utf-8-*-from socket import *import timeg_socketlist = []def main(): s = socket(AF_INET,SOCK_STREAM) s.setsockopt(SOL_SOCKET,SO_REUSEADDR,1)#防止出现端口被占用的异常 addr = ("",7878) ...原创 2019-03-20 19:39:24 · 151 阅读 · 0 评论 -
python核心编程:元类,__slots__,生成器,send
元类:python中的类也是对象,元类就是用来创建这些类(对象)的,元类就是类的类格式:type(类名,父类名称组成的元组(父类名,可为空),包含属性的字典(名字和值))实际工作中基本用不到,只了解即可slotspython是动态语言,运行过程中可改变其结构先看一个例子:class Person(object): def __init__(self,name,age): ...原创 2019-03-13 11:30:52 · 152 阅读 · 0 评论 -
python核心编程:自己写的测试服务器是否开启的脚本
import osimport jsonimport socketfrom socket import *files = os.listdir("G:\\textFF")print(files)content = Nonesucess = 0badly = 0for filedata in files: #print(type(filedata)) fo = op...原创 2019-03-21 19:16:59 · 192 阅读 · 0 评论 -
python核心编程:使用udp完成多线程qq聊天室
#使用udp完成多线程qq聊天室from socket import *from threading import Threaddef recv_data(): while True: #接收信息 recvdata = udpsocket.recvfrom(1024) #打印信息 print(">>",rec...原创 2019-03-18 17:34:12 · 299 阅读 · 0 评论 -
python核心编程:迭代器,闭包,装饰器
迭代器:可迭代对象以直接作用于 for 循环的数据类型有以下几种:一类是集合数据类型,如 list 、 tuple 、 dict 、 set 、 str 等;一类是 generator ,包括生成器和带 yield 的generator function。这些可以直接作用于 for 循环的对象统称为可迭代对象: Iterable 。可以使用 isinstance() 判断一个对象是...原创 2019-03-13 17:35:52 · 143 阅读 · 0 评论 -
python核心编程:正则表达式练习
#匹配网址import restrtest = """http://www.interoem.com/messageinfo.asp?id=35http://3995503.com/class/class09/news_show.asp?id=14http://lib.wzmc.edu.cn/news/onews.asp?id=769http://www.zy-ls.com/alfx....原创 2019-03-22 17:50:02 · 286 阅读 · 0 评论 -
python核心编程:静态网页显示之固定页面
#-*-coding:utf-8-*-import socketfrom socket import *from multiprocessing import Processdef handleClient(newClient): data = newClient.recv(1024) requestHeaderLines = data.splitlines() ...原创 2019-03-22 17:53:11 · 307 阅读 · 0 评论 -
python核心编程:udp实现TFTP上传下载
# -*- coding:utf-8-*-"""udp实现tftp上传下载python2.71.首先要获得下载的文件名,使用input让用户输入2.创建套接字3.打包pack,用于将Python的值根据格式符,转换为字符串4.解包,用于将字节流转换成python数据类型5.判断ack的值6.判断操作码(1.下载 2.上传 3.数据包data 4.确认码ack 5.错误)"""...原创 2019-03-19 14:18:37 · 460 阅读 · 0 评论 -
python核心编程:归并排序
归并排序是采用分治法的一个非常典型的应用。归并排序的思想就是先递归分解数组,再合并数组。将数组分解最小之后,然后合并两个有序数组,基本思路是比较两个数组的最前面的数,谁小就先取谁,取了后相应的指针就往后移一位。然后再比较,直至一个数组为空,最后把另一个数组的剩余部分复制过来即可。时间复杂度最优时间复杂度:O(nlogn)最坏时间复杂度:O(nlogn)稳定性:稳定def merge_s...原创 2019-03-28 20:14:16 · 93 阅读 · 0 评论