自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 使用gevent来实现HTTP服务器

代码实现:import socketimport reimport geventfrom gevent import monkeymonkey.patch_all()def service_client(new_socket): """为这个客户端返回数据""" # 1. 接收浏览器发送过来的请求 ,即http请求 # GET / HTTP/1.1...

2019-04-16 19:22:56 510

原创 使用多进程完成HTTP服务器

代码实现:import socketimport reimport multiprocessingdef service_client(new_socket): """为这个客户端返回数据""" # 1. 接收浏览器发送过来的请求 ,即http请求 # GET / HTTP/1.1 # ..... request = new_socket....

2019-04-16 19:14:56 418

原创 使用多线程完成HTTP服务器

代码实现:import socketimport reimport threadingdef service_client(new_socket): """为这个客户端返回数据""" # 1. 接收浏览器发送过来的请求 ,即http请求 # GET / HTTP/1.1 # ..... request = new_socket.recv(1...

2019-04-16 19:07:28 988

原创 python爬取网站图片

代码以爬取电脑壁纸为例1.导入模块:import requestsimport urllib.requestimport uuidfrom bs4 import BeautifulSoupimport os2.确定图片保存位置:if os.path.exists('D:\image') == True: print("image dir is exsit")els...

2019-04-12 19:43:00 581 1

原创 多任务版udp聊天器

需求说明:1.编写一个有两个线程的程序2.线程1用来接收数据然后显示3.线程2用来检测键盘数据然后通过udp发送数据代码实现:import socketimport threadingdef recv_msg(udp_socket): """接收数据并显示""" # 接收数据 while True: recv_data = udp_soc...

2019-04-09 17:29:05 223

原创 vim 出现 IndentationError: unexpected indent错误信息

问题:使用vim时出现IndentationError: unexpected indent错误提示提示我们出现了缩进错误,但是查看代码并没有找到哪里出错了错误原因:当我们查看代码时,vim 是看不到哪里没有对齐的。但是视觉上我们会觉得vim中代码已经对齐,那么现在导致出现缩进错误的原因很可能是tab键 与 空格键 混用导致实际代码缩进并没有遵守python语法规范解决方法:此错误...

2019-04-08 10:27:14 1185

原创 python二叉树广度优先遍历(层次遍历)

即从树的root开始,从上到下从从左到右遍历整个树的节点代码实现:def breadth_travel(self): """利⽤队列实现树的层次遍历""" if root == None: return queue = [] queue.append(root) while queue: node = queue.pop(...

2019-04-01 20:03:04 1563

原创 python二叉树的深度优先遍历

对于⼀颗⼆叉树,深度优先搜索是沿着树的深度遍历树的节点,尽可能深的搜索树的分⽀。深度遍历有重要的三种⽅法,这三种⽅式常被⽤于访问树的节点,它们之间的不同在于访问每个节点的次序不同。这三种遍历分别叫做先序遍历,中序遍历和后序遍历。我们来给出详细定义,然后举例看它们的应⽤。1.先序遍历在先序遍历中,我们先访问根节点,然后递归使⽤先序遍历访问左⼦树,再递归使⽤先序遍历访问右⼦树顺序:根节点...

2019-04-01 19:59:46 543

原创 python二分查找的两种实现方法(非递归实现,递归实现)

⼆分查找⼜称折半查找,优点是⽐较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插⼊删除困难。因此,折半查找⽅法适⽤于不经常变动⽽查找频繁的有序列表。1.⾸先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字⽐较,如果两者相等,则查找成功;2.否则利⽤中间位置记录将表分成前、后两个⼦表,如果中间位置记录的关键字⼤于查找关键字,则进⼀步查找前⼀⼦表,否则进⼀步查找...

2019-04-01 19:42:23 808

原创 python归并排序

归并排序是采⽤分治法的⼀个⾮常典型的应⽤。归并排序的思想就是先递归分解数组,再合并数组将数组分解最⼩之后,然后合并两个有序数组,基本思路是⽐较两个数组的最前⾯的数,谁⼩就先取谁,取了后相应的指针就往后移⼀位。然后再⽐较,直⾄⼀个数组为空,最后把另⼀个数组的剩余部分复制过来即可def merge_sort(list1): if len(list1) <= 1: r...

2019-04-01 19:34:18 453 3

原创 python快速排序

快速排序,⼜称划分交换排序1.通过⼀趟排序将要排序的数据分割成独⽴的两部分,其中⼀部分的所有数据都⽐另外⼀部分的所有数据都要⼩2.然后再按此⽅法对这两部分数据分别进⾏快速排序,整个排序过程可以递归进⾏,以此达到整个数据变成有序序列。步骤为:从数列中挑出⼀个元素,称为"基准"(pivot)重新排序数列,所有元素⽐基准值⼩的摆放在基准前⾯,所有元素⽐基准值⼤的摆在基准的后⾯(相同的数可以...

2019-04-01 19:17:49 2376

原创 python希尔排序

希尔排序是插⼊排序的⼀种。也称缩⼩增量排序,是直接插⼊排序算法的⼀种更⾼效的改进版本。希尔排序是⾮稳定排序算法。希尔排序是把记录按下标的⼀定增量分组,对每组使⽤直接插⼊排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减⾄1时,整个⽂件恰被分成⼀组,算法便终⽌。希尔排序过程:希尔排序的基本思想是:将数组列在⼀个表中并对列分别进⾏插⼊排序,重复这过程,不过每次⽤更⻓的列(...

2019-04-01 18:57:07 245

原创 python插入排序

插⼊排序是⼀种简单直观的排序算法。它的⼯作原理是:1.先通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插⼊。2.插⼊排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插⼊空间。def insert_sort(list1): # 从第二个位置,即下标为1的元素开始向前插入 for j in range(1, le...

2019-04-01 18:48:18 121

原创 python选择排序

选择排序是⼀种简单直观的排序算法。它的⼯作原理如下:1.⾸先在未排序序列中找到最⼩(⼤)元素,存放到排序序列的起始位置2.然后,再从剩余未排序元素中继续寻找最⼩(⼤)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕def select_sort(list1): # 需要进行 总长度-1次选择操作 for j in range(len(list1)-1):...

2019-04-01 18:41:45 323

原创 python冒泡排序

冒泡排序是⼀种简单的排序算法。它重复地遍历要排序的数列,⼀次⽐较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的⼯作是重复地进⾏直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越⼩的元素会经由交换慢慢“浮”到数列的顶端冒泡排序算法的运作如下:1.⽐较相邻的元素。如果第⼀个⽐第⼆个⼤(升序),就交换他们两个。2.对每⼀对相邻元素作同样的⼯作,从开始第⼀对...

2019-03-31 20:04:36 878 2

原创 python通过key值,或者value值 对字典进行排序

# 初始化字典a = {"b": 5, "c": 2, "a": 4, "d": 1}# 对字典按键(key)进行排序(默认由小到大)test_1 = sorted(a.items(), key=lambda x: x[0])# 输出结果print(test_1) # [('a', 4), ('b', 5), ('c', 2), ('d', 1)]# 对字典按值(value)进行...

2019-03-31 19:58:09 468

原创 python校验用户登录信息

要求:用户输入用户名,密码后对信息进行校验1.用户名长度在3-8个字符2.用户名中只能出现英文字母和数字3.密码长度必须是6位4.密码必须由纯数字组成分析:1.信息使用input操作获取2.定义自定义异常,描述非法信息3.提供检测的函数,针对情况进行处理4.执行程序中要使用try结构完成检测# 创建自定义用户名错误,密码错误异常类class NameQuestion(Exc...

2019-03-31 19:50:44 3081

原创 python抛出异常,处理异常,自定义异常实例

需求:提示用户输入性别,如果非男非女,抛出异常并处理# 自定义异常class GenderException(Exception): pass注释:自定义异常需要继承父类Exception# 定义sex函数def sex(): a = input("请输入性别:") if a != "男" or a != "女": # if a not in ("男...

2019-03-31 19:38:58 3097

原创 python复制粘贴文件,即创建副本文件

需求1:将命名为 1.txt 的文件名改为 1 - 副本.txtfile1_name = "d:/1.txt"# 查找文件中的点出现的位置idx = file1_name.rfind(".")# print(file1_name[0:idx])# print(file1_name[idx:])# 利用切片添加副本文字file2_name = file1_name[0:idx...

2019-03-31 19:26:36 3957

原创 python 文件写入操作

方法一:with open("test.txt","w") as file: file.write("hello")注释:1.open()函数第一个参数为文件名如果文件不存在将创建文件,若文件存在则覆盖原文件内容2.open()第二个参数为文件的读写模式,详情请查看python基础教程方法二:file2 = open("test2.txt","w")file2.write...

2019-03-31 19:16:44 7315

原创 python获取当前时间

python有很多模块可供我们直接使用想要获取当前时间只需要导入time模块就可以了1.导入模块import time2.调用函数 打印当前时间print(time.asctime())3.得到当前时间Fri Mar 29 17:28:44 2019...

2019-03-29 17:30:05 168

原创 python四行代码输出九九乘法表

话不多说,直接上代码。 # 外层循环控制行 for i in range(1, 10): # 里层循环控制列 for j in range(1, i + 1): # 格式化输出 print('%d*%d=%d' % (j, i, i * j), end="\t") print()补充:1....

2019-03-29 17:21:32 473

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除