
Python提高
梦因you而美
因为坚守,所以花开不败!
展开
-
Python 中如何实现自动导入缺失的库
大家在日常编程时,总会导入各种各样的库。我们可能经常会遇到导入模块失败的错误:ImportError: No module named 'xxx'或者ModuleNotFoundError: No module named 'xxx'。导入失败问题,通常分为两种:一种是导入自己写的模块(即以 .py 为后缀的文件),另一种是导入三方库。这次主要讨论第二种情况。解决导入 Python...原创 2019-11-02 18:04:38 · 2536 阅读 · 0 评论 -
正则表达式练习
练习1:要求从斗鱼https://www.douyu.com/g_yz获取网页的源代码保存到本地为douyu.html文件,然后利用正则匹配出来所有的jgp图片,通过协程下载所有图片到本地注:博客(正则表达式概述)中的“实战演练(爬斗鱼美女照片)”代码不能够实现多任务,以下代码进行优化:# coding=utf-8from gevent import monkeymonkey....原创 2018-08-03 09:59:54 · 984 阅读 · 0 评论 -
Python 提高 - 1
1 GIL(全局解释器锁)GIL面试题如下:描述Python GIL的概念, 以及它对python多线程的影响?编写一个多线程抓取网页的程序,并阐明多线程抓取程序是否可比单线程性能有提升,并解释原因。Guido的声明:http://www.artima.com/forums/flat.jsp?forum=106&thread=214235he language does...原创 2018-08-08 11:17:15 · 1039 阅读 · 0 评论 -
网络-udp
1 网络通信概述1.1 什么是网络网络就是一种辅助双方或者多方能够连接在一起的工具。1.2 使用网络的目的使用网络能够把多方链接在一起,然后可以进行数据传递 所谓的网络编程就是,让在不同的电脑上的软件能够进行数据传递,即进程之间的通信2 ip地址ip地址:用来在网络中标记一台电脑,比如192.168.1.1;在本地局域网上是唯一的。2.1 ip地址的分类(了解)每一...原创 2018-07-31 11:55:58 · 1161 阅读 · 0 评论 -
vim编辑器的使用
默认打开的是 命令模式:输入的东西 当做命来来处理,比如yy就是复制一行,p就是粘贴想要编辑代码,要在 编辑模式才可以,,,从命令模式---->编辑模式 : 小写字母i从编辑模式---->命令模式 : esc命令模式:用来输入命令,进行操作vim编辑模式:用来写代码末行模式:用来处理 保存、退出等末行模式:w--->保存q--->退出...原创 2018-07-31 10:55:38 · 779 阅读 · 0 评论 -
Linux 的基本命令
学习终端命令的技巧: 不需要死记硬背,对于常用命令,用的多了,自然就记住了 不要尝试一次学会所有的命令,有些命令是非常不常用的,临时遇到,临时百度就可以。小技巧:ctrl + shift + = 放大终端窗口的字体显示 ctrl + - 缩小终端窗口的字体显示 按 上 / 下 光标键可以在曾经使用过的命令之间来回切换 如果想要退出选择,并且不想执行当前选中的命令,可以按 ctrl +...原创 2018-07-31 10:31:34 · 1395 阅读 · 0 评论 -
Linux 基础
OS作为接口的示意图 1.操作系统的作用是现代计算机系统中 最基本和最重要 的系统软件;是 配置在计算机硬件上的第一层软件,是对硬件系统的首次扩展;主要作用是管理好硬件设备,并为用户和应用程序提供一个简单的接口,以便于使用;而其他的诸如编译程序、数据库管理系统,以及大量的应用软件,都直接依赖于操作系统的支持。2.Linux 的基本命令ls:显示当前路径下的文件以...原创 2018-07-31 09:22:27 · 837 阅读 · 0 评论 -
网络-udp—代码
# 01-socket的基本使用.pyimport socketdef main(): # 创建一个udp套接字 udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 可以使用套接字收发数据 # udp_socket.sendto("hahahah", 对方的ip以及port) ...原创 2018-07-29 20:56:27 · 923 阅读 · 0 评论 -
详解Python的装饰器
Python中的装饰器是你进入Python大门的一道坎,不管你跨不跨过去它都在那里。为什么需要装饰器我们假设你的程序实现了say_hello()和say_goodbye()两个函数。def say_hello(): print "hello!" def say_goodbye(): print "hello!" # bug hereif __name_...转载 2019-02-10 14:46:31 · 1100 阅读 · 0 评论 -
HTTP协议、http服务器的实现-1
1 HTTP协议简介在Web应用中,服务器把网页传给浏览器,实际上就是把网页的HTML代码发送给浏览器,让浏览器显示出来。而浏览器和服务器之间的传输协议是HTTP,所以:HTML(超文本标记语言,HyperText Markup Language 的简称)是一种用来定义网页的文本; HTTP(超文本传输协议,HyperText Transfer Protocol 的简称)是在网络上传输H...原创 2018-08-02 15:38:11 · 1940 阅读 · 0 评论 -
正则表达式(总结版)
1.正则表达式的基本使用re.match(r’xxx’, 匹配的字符串) 尝试从字符串的起始位置匹配一个模式匹配成功re.match方法返回一个匹配的对象,否则返回None。可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式,groups()返回的是一个元组。2.使用正则表达式匹配单个字符.(点) 匹配任意1个字符(除了\n) re.S则可以匹配换行 ...原创 2018-08-02 15:08:48 · 916 阅读 · 0 评论 -
网络-tcp
1 tcp简介1.1 TCP介绍TCP协议,传输控制协议(英语:Transmission Control Protocol,缩写为 TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。TCP通信需要经过创建连接、数据传送、终止连接三个步骤。1.2 TCP特点1.2.1 面向连接通信双方必须先建立连接才能进行数据的传输,双方都必须为该...原创 2018-07-31 19:10:29 · 2206 阅读 · 0 评论 -
多任务-线程
1 多任务的介绍现实生活中有很多的场景中的事情是同时进行的,比如开车的时候手和脚共同来驾驶汽车、唱歌跳舞也是同时进行的。试想,如果把唱歌和跳舞这2件事情分开依次完成的话,估计就没有那么好的效果了(想一下场景:先唱歌,然后在跳舞,O(∩_∩)O哈哈~)如下程序,来模拟“唱歌跳舞”这件事情#coding=utf-8from time import sleepdef sing():...原创 2018-07-31 19:10:51 · 859 阅读 · 2 评论 -
多任务-进程
1 进程以及状态1.1 进程程序:例如xxx.py这是程序,是一个静态的进程:一个程序运行起来后,代码+用到的资源 称之为进程,它是操作系统分配资源的基本单元。不仅可以通过线程完成多任务,进程也是可以的1.2 进程的状态工作中,任务数往往大于cpu的核数,即一定有一些任务正在执行,而另外一些任务在等待cpu进行执行,因此导致了任务有不同的状态。就绪态:运行的条件都...原创 2018-07-31 19:11:15 · 977 阅读 · 0 评论 -
多任务-协程
1 迭代器迭代是访问集合元素的一种方式。 迭代器是一个可以记住遍历的位置的对象。 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。 迭代器只能往前不会后退1.1 可迭代对象我们已经知道可以对list、tuple、str等类型的数据使用for...in...的循环语法从其中依次拿到数据进行使用,我们把这样的过程称为遍历,也叫迭代。但是,是否所有的数据类型都...原创 2018-07-31 19:11:44 · 2145 阅读 · 0 评论 -
正则表达式概述
1 re模块操作在Python中需要通过正则表达式对字符串进行匹配的时候,可以使用一个模块,名字为re1.1 re模块的使用过程 #coding=utf-8 # 导入re模块 import re # 使用match方法进行匹配操作 result = re.match(正则表达式,要匹配的字符串) # 如果上一步匹配到数据的话,可以使...原创 2018-07-31 19:13:26 · 1286 阅读 · 0 评论 -
python 提高 - 2
1 多继承以及MRO顺序1.1 单独调用父类的方法# coding=utf-8print("******多继承使用类名.__init__ 发生的状态******")class Parent(object): def __init__(self, name): print('parent的init开始被调用') self.name = na...原创 2018-08-10 09:05:19 · 932 阅读 · 0 评论 -
网络通信过程
1 网络通信过程1.1 2台电脑的网络说明:如果两台电脑之间通过网线连接是可以直接通信的,但是需要提前设置好ip地址以及网络掩码 并且ip地址需要控制在同一网段内,例如 一台为192.168.1.1另一台为192.168.1.2则可以进行通信1.2 TCP/IP 简介点击 ——> 网络 TCP 介绍1.2.1 什么是协议有的说英语,有的说中文,有的说...原创 2018-08-06 17:30:52 · 3700 阅读 · 2 评论 -
Python 提高重要知识点汇总
1 什么是GIL?GIL对多线程的影响GIL全称Global Interpreter Lock(全局解释器锁)。GIL和Python语言没有任何关系,只是因为历史原因导致在官方推荐的解释器Cpython中遗留的问题。(多线程)每个线程在执行的过程中都需要先获取GIL,保证同一时刻只有一个线程可以执行代码,但是当遇到IO阻塞会自动的释放GIL锁,所以使用多线程还是比单线程的效率要高。如果想发挥多...原创 2018-08-10 21:06:54 · 1174 阅读 · 0 评论 -
web 服务器 - 并发服务器 - 2
1 Web静态服务器在“HTTP协议、http服务器的实现-1”中已经完成了“根据用户的需求返回相应的页面”的任务,接下分别使用多进程、多线程、协程gevent,来完成http服务器。1.1 使用多进程完成http服务器import socketimport reimport multiprocessingdef service_client(new_socket): ...原创 2018-08-04 11:52:54 · 1226 阅读 · 0 评论