python
听说这有个小白
python的一小白
展开
-
爬虫反爬之验证码
本文章使用的识别验证码工具为超级鹰通过开发文档页面获取超级鹰python语言demo解压压缩包,获取chaojiying.py文件,放置到项目文件夹中提取chaojiying.py中的main主程序 if __name__ == '__main__': chaojiying = Chaojiying_Client('超级鹰用户名', '超级鹰用户名的密码', '96001') #用户中心>>软件ID 生成一个替换 96001 im = open('a.jpg', 'r..原创 2020-10-06 15:31:24 · 537 阅读 · 0 评论 -
爬虫反爬之代理
使用爬虫爬取网站的数据时,在短时间内对网站发起高频请求,可能会被该网站禁用ip,这时候可以使用不同的代理服务器来进行请求。代理类型:一般根据访问的页面类型分为两种:httphttps代理匿名度: - 透明:使用代理,服务端可以获得本机ip,知道本地ip使用代理进行访问 - 匿名:使用代理,服务端无法获得本机ip,但是知道访问页面的是代理 - 高匿:使用代理,服务端无法分辨是否使用了代理代理的使用# 进行代理池的封装,代理服务器在ip代理网站获取# 本代码..原创 2020-10-06 14:43:46 · 250 阅读 · 0 评论 -
爬虫反爬之cookie
爬取某些网页需要携带cookie才可以进行访问携带cookie一般有两种方式:手动设置cookie:#在header中携带cookieheaders = { 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36', "cookie":""}自动获取cookie:#使用reque原创 2020-10-06 14:10:55 · 1498 阅读 · 0 评论 -
数据库IDE与pymysql
Navicat软件"""一开始学习python的时候 下载python解释器然后直接在终端书写pycharm能够更加方便快捷的帮助你书写python代码excel word pdf我们在终端操作MySQL 也没有自动提示也无法保存等等 不方便开发Navicat内部封装了所有的操作数据库的命令 用户在使用它的时候只需要鼠标点点即可完成操作 无需书写sql语句"""安装直接百度...原创 2020-05-07 21:35:16 · 143 阅读 · 0 评论 -
mysql关键字与连表操作理论
1、关键字重点中的重点:关键字的执行优先级 from where group by having select distinct order by limit 1.找到表:from2.拿着where指定的约束条件,去文件/表中取出一条条记录3.将取出的一条条记录进行分组group by,如果没有group by,则整体作为一组4.将分组的结果进行having过滤...原创 2020-05-06 20:04:50 · 139 阅读 · 0 评论 -
mysql表相关
1、存储引擎日常生活中文件格式有很多中,并且针对不同的文件格式会有对应不同存储方式和处理机制(txt,pdf,word,mp4…)针对不同的数据应该有对应的不同的处理机制来存储存储引擎就是不同的处理机制MySQL主要存储引擎Innodb是MySQL5.5版本及之后默认的存储引擎存储数据更加的安全myisam是MySQL5.5版本之前默认的存储引擎速度要比Innodb更快...原创 2020-05-04 21:55:12 · 219 阅读 · 0 评论 -
初识数据库(mysql)
1、 存储数据的演变过程1)、随意的存到一个文件中、数据格式也是千差万别的完全取决于我们自己"""# 小李jason|123|NB# 小王egon-123-DBJ# 小红tank~123~hecha"""2) 软件开发目录规范限制了存储数据的具体位置"""binconfcoredblibreadme"""假设上述是一个单机游戏那么每个人的游戏记录只会在...原创 2020-05-03 21:08:54 · 236 阅读 · 0 评论 -
python并发编程之io模型
1、 IO模型简介我们这里研究的IO模型都是针对网络IO的Stevens在文章中一共比较了五种IO Model:* blocking IO 阻塞IO* nonblocking IO 非阻塞IO* IO multiplexing IO多路复用* signal driven IO 信号驱动IO* asynchronous IO 异步I...原创 2020-04-28 21:50:16 · 134 阅读 · 0 评论 -
python并发编程之协程
1、协程进程:资源单位线程:执行单位协程:这个概念完全是程序员自己意淫出来的 根本不存在 协程是单线程下实现并发 我们程序员自己再代码层面上检测我们所有的IO操作 一旦遇到IO了 我们在代码级别完成切换 这样给CPU的感觉是你这个程序一直在运行 没有IO 从而提升程序的运行效率多道技术 切换+保存状态 CPU两种切换 1.程序遇到IO 2.程序长时间占用TCP服务端...原创 2020-04-27 21:20:31 · 154 阅读 · 0 评论 -
python并发编程之多线程
1、 什么是线程进程:资源单位线程:执行单位将操作系统比喻成一个大的工厂那么进程就相当于工厂里面的车间而线程就是车间里面的流水线每一个进程肯定自带一个线程再次总结:进程:资源单位(起一个进程仅仅只是在内存空间中开辟一块独立的空间)线程:执行单位(真正被cpu执行的其实是进程里面的线程,线程指的就是代码的执行过程,执行代码中所需要使用到的资源都找所在的进程索要)进程和线程都是虚拟...原创 2020-04-23 23:25:11 · 159 阅读 · 0 评论 -
python并发编程之多进程
1、 操作系统发展史1.1、手工操作——穿孔卡片程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制台开关启动程序针对数据运行;计算完毕,打印机输出计算结果;用户取走结果并卸下纸带(或卡片)后,才让下一个用户上机。手工操作方式两个特点: (1)用户独占全机。不会出现因资源已被其他用户占用而等待的现象,但资源的利用率低。 (...原创 2020-04-22 21:37:59 · 389 阅读 · 0 评论 -
网络基础之网络协议
1、CS架构与BS架构Client<===========>Server客户端软件send 服务端软件recv操作系统 操作系统计算机硬件<==== 物理介质 =====>计算机硬件Browser<===========>Server网端 < ============>服...转载 2020-04-16 22:12:42 · 660 阅读 · 0 评论 -
异常处理
1、什么是异常异常是程序发生错误的信号,程序一旦出错就会抛出异常,程序的运行随即终止print('start....')[1,2,3][1000] #IndexError: list index out of rangeprint('stop...')1.1、 异常处理的三个特征1、异常的追踪信息2、异常的类型3、异常的内容2、为何处理异常为了增强程序的健壮性,即便是程序运...转载 2020-04-16 21:48:42 · 90 阅读 · 0 评论 -
元类
1、什么是元类一切源自于一句话:python中一切皆为对象元类就是用来实例化产生类的类关系:元类—实例化---->类(People)—实例化---->对象(obj)class People: def __init__(self,name,age): self.name=name self.age=age def say(self...原创 2020-04-15 18:26:38 · 141 阅读 · 0 评论 -
反射与类内置方法
1、反射python是动态语言,而反射(reflection)机制被视为动态语言的关键。反射机制指的是在程序的运行状态中对于任意一个类,都可以知道这个类的所有属性和方法;对于任意一个对象,都能够调用他的任意方法和属性。这种动态获取程序信息以及动态调用对象的功能称为反射机制。反射的实现:class People: def __init__(self,name,age): ...原创 2020-04-15 18:04:20 · 65 阅读 · 0 评论 -
多态性与鸭子类型
1、什么多态:同一事物有多种形态class Animal: passclass People(Animal): passclass Dog(Animal): passclass Pig(Animal): pass2、为何要有多态为何要有多态=》多态会带来什么样的特性 多态性指的是可以在不考虑对象具体类型的情况下而直接使用对象cl...原创 2020-04-12 23:50:18 · 108 阅读 · 0 评论 -
封装、继承与派生
1、封装1.1、封装介绍封装是面向对象三大特性最核心的一个特性封装指的就是把数据与功能都整合到一起,针对封装到对象或者类中的属性,我们还可以严格控制对它们的访问,分两步实现:隐藏与开放接口1.2、将封装的属性进行隐藏操作如何隐藏:在属性名前加__前缀,就会实现一个对外隐藏属性效果该隐藏需要注意的问题:I:在类外部无法直接访问双下滑线开头的属性,但知道了类名和属性名就可以拼出名字:_...原创 2020-04-09 21:18:36 · 203 阅读 · 0 评论 -
面向对象编程
1、对象的概念对象就是容器,把数据与功能集合装起来的容器,这个容器就是对象。以学生信息为例:在学习对象概念之前,数据与功能是分开的如下:# 学生的数据stu_name='egon'stu_age=18stu_gender='male'# 学生的功能def tell_stu_info(): print('学生信息:名字:%s 年龄:%s 性别:%s' %(stu_name...原创 2020-04-07 21:04:21 · 96 阅读 · 0 评论 -
编写项目的三层结构
原创 2020-04-02 23:09:27 · 99 阅读 · 0 评论 -
常用模块三
1、logging1.1、logging使用的基本格式import logginglogging.basicConfig( # 1、日志输出位置:1、终端 2、文件 filename filename='access.log', # 不指定,默认打印到终端 # 2、日志格式format format='%(asctime)s - %(name)s - %(...原创 2020-04-01 18:25:54 · 89 阅读 · 0 评论 -
常用模块二
1、json与pickle1.1、什么是序列化&反序列化内存中的数据类型---->序列化---->特定的格式(json格式或者pickle格式)内存中的数据类型<----反序列化<----特定的格式(json格式或者pickle格式)土办法: {'aaa':111}--->序列化str({'aaa':111})----->"{'aaa':11...原创 2020-03-31 21:12:14 · 91 阅读 · 0 评论 -
常用模块
1、time与datetime1.1、time时间分为三种格式:1、时间戳:从1970年到现在经过的秒数作用:用于时间间隔的计算improt timeprint(time.time())2、按照某种格式显示的时间:2020-03-30 11:11:11作用:用于展示时间print(time.strftime('%Y-%m-%d %H:%M:%S %p'))print(time...原创 2020-03-31 00:00:32 · 88 阅读 · 0 评论 -
软件开发目录
1、软件开发目录为了提高程序的可读性与可维护性,我们应该为软件设计良好的目录结构,这与规范的编码风格同等重要。软件的目录规范并无硬性标准,只要清晰可读即可,假设你的软件名为foo,笔者推荐目录结构如下Foo/|-- core/| |-- core.py||-- api/| |-- api.py||-- db/| |-- db_handle.py||-- lib/...原创 2020-03-29 21:09:50 · 392 阅读 · 0 评论 -
模块
1、什么是模块?模块就是一系列功能的集合体,分为三大类 I:内置的模块 II:第三方的模块 III:自定义的模块 一个python文件本身就一个模块,文件名m.py,模块名叫m ps:模块有四种形式 1 使用python编写的.py文件 2 已被编译为共享库或DLL的C或C++扩展 3 把一系列模块组织到一...原创 2020-03-26 20:38:03 · 131 阅读 · 0 评论 -
面向过程与函数式
1、面向过程1.1、编程思想/范式 编程范式指的就是编程的套路,打个比方,如果把编程的过程比喻为练习武功,那编程范式指的就是武林中的各种流派,而在编程的世界里常见的流派有:面向过程、函数式、面向对象等,1.2、面向过程的编程思想 面向过程核心是"过程"二字,过程即流程,指的是做事的步骤:先什么、再什么、后干什么基于该思想编写程序就好比在设计一条流水线,即无论采用什么语言、无论依据...原创 2020-03-26 20:27:02 · 501 阅读 · 0 评论 -
算法之二分法
1、二分法算法:是是一种高效解决问题的办法需求:有一个按照从小到大顺序排列的数字列表需要从该数字列表中找到我们想要的那个一个数字如何做更高效???nums=[-3,4,7,10,13,21,43,77,89]find_num=10nums=[-3,4,13,10,-2,7,89]nums.sort() #首先进行排序print(nums)方案一:整体遍历效率太低for...原创 2020-03-26 20:02:39 · 285 阅读 · 0 评论 -
函数的递归调用
1、递归的定义函数的递归调用:是函数嵌套调用的一种特殊形式具体是指:在调用一个函数的过程中又直接或者间接地调用到本身直接调用本身def f1(): print('是我是我还是我') f1()f1() 间接接调用本身def f1(): print('===>f1') f2()def f2(): print('===>f2')...原创 2020-03-25 18:54:55 · 641 阅读 · 0 评论 -
三元表达式
1、三元表达式三元表达式是python为我们提供的一种简化代码的解决方案,语法如下res = 条件成立时返回的值 if 条件 else 条件不成立时返回的值针对以下需求def func(x,y): if x > y: return x else: return yres=func(1,2)print(res)三元表达式语...转载 2020-03-25 18:22:34 · 5562 阅读 · 1 评论 -
生成器
1、生成器与yield在函数内一旦存在yield关键字,调用函数并不会执行函数体代码会返回一个生成器对象,生成器即自定义的迭代器def func(): print('第一次') yield 1 print('第二次') yield 2 print('第三次') yield 3 print('第四次')g=func()print(g...转载 2020-03-24 20:01:50 · 322 阅读 · 0 评论 -
迭代器
1、什么是迭代器 迭代器指的是迭代取值的工具,迭代是一个重复的过程,每次重复都是基于上一次的结果而继续的,单纯的重复并不是迭代2、为何要有迭代器 迭代器是用来迭代取值的工具,而涉及到把多个值循环取出来的类型有:列表、字符串、元组、字典、集合、打开文件 l=['egon','liu','alex'] i=0 while i < len(l): pr...原创 2020-03-24 19:54:59 · 218 阅读 · 0 评论 -
装饰器
1.知识储备 想要学习装饰器需掌握可变长度参数(* **)的使用、名称空间与作用域、函数对象、函数嵌套、闭包函数。可以参考前三篇博客。2.装饰器1、什么是装饰器器指的是工具,可以定义成成函数装饰指的是为其他事物添加额外的东西点缀合到一起的解释: 装饰器指的定义一个函数,该函数是用来为其他函数添加额外的功能2、为何要用装饰器 软件的设计应该遵循开放封闭原则,即对扩展...原创 2020-03-23 19:34:56 · 94 阅读 · 0 评论 -
函数对象、函数嵌套和闭包函数
1、函数对象函数对象指的是函数可以被当做’数据’来处理,具体可以分为四个方面的使用,如下func=内存地址def func(): print('from func')1、可以赋值f=func #将函数的内存地址绑定给fprint(f,func)f() #内存地址加()调用函数2、可以当做函数当做参数传给另外一个函数def foo(x): # x = func的内存...原创 2020-03-20 19:44:13 · 158 阅读 · 0 评论 -
名称空间与变量域
1、名称空间namespacs存放名字的地方,是对栈区的划分。有了名称空间之后,就可以在栈区中存放相同的名字。详细的名称空间分为三种1.1 内置名称空间存放的名字:存放的python解释器内置的名字内存空间存活周期:python解释器启动则产生,python解释器关闭则销毁例如:>>> print #内置函数print<built-in function ...原创 2020-03-19 19:26:02 · 144 阅读 · 0 评论 -
函数参数的使用
1、 形参与实参介绍形参:在定义函数阶段定义的参数称之为形式参数,简称形参,相当于变量名def func(x, y): # x=1,y=2 print(x, y)实参:在调用函数阶段传入的值称之为实际参数,简称实参,相当于变量值func(1,2) #1,2为实参形参与实参的关系: 1、在调用阶段,实参(变量值)会绑定给形参(变量名) 2、这种绑定关系只能在函数体内使...原创 2020-03-18 18:52:08 · 844 阅读 · 0 评论 -
函数的基本使用
1、什么是函数 函数就相当于具备某一功能的工具 函数的使用必须遵循一个原则: 先定义 后调用2、为何要用函数 直接写代码有以下缺点: 1、组织结构不清晰,可读性差 2、代码冗余 3、可维护性、扩展性差 使用函数功能可避免上述问题3、如何用函数3.1、先定义# 定义的语法def 函数名(参数1,参数2,...): ...原创 2020-03-17 18:01:31 · 347 阅读 · 0 评论 -
文件处理
1、什么是文件文件文件是操作系统提供给用户/应用程序操作硬盘的一种虚拟的概念/接口用户/应用程序(open())操作系统(文件)计算机硬件(硬盘)2、为何要用文件用户/应用程序可以通过文件将数据永久保存的硬盘中即操作文件就是操作硬盘用户/应用程序直接操作的是文件,对文件进行的所有的操作,都是在向操作系统发送系统调用,然后再由操作系统将其转换成具体的硬盘操作3、如何用文...原创 2020-03-13 21:33:28 · 206 阅读 · 0 评论 -
字符编码
一、字符编码介绍1、什么是字符 我们学习python的过程中接触的到字符串类型,其中包含的文字、英文字母或者符号等都是字符。2、什么是编码 我们写下的都是人类能理解的字符。但是计算机只能理解1和0数字,所以为了让计算机能输入输出我们人类的字符,就要让计算机知道这些字符。这就是编码,将字符变写成对应的二进制数字。3、什么是解码 解码就是将计算机存储的对应字符的二进制提取出来,...原创 2020-03-13 18:37:58 · 113 阅读 · 0 评论 -
基本数据类型及内置方法
一、可变与不可变类型 变量的赋值操作本质是将值的内存地址交给变量(也就是内存地址相对应的空间存着值),由此数据类型区分出了可变与不可变的类型。 可变类型定义:值改变,id不变,证明原值可以被修改。 不可变类型定义:值改变,id也变,证明产生了新值,没有改变原值。原值是不可被修改的。验证:intx=10print(id(x))x=11 # 产生新值print(id(x))结果...转载 2020-03-11 20:06:46 · 341 阅读 · 0 评论 -
python入门之变量与基本数据类型
一、变量1、什么是变量?顾名思义变量是可以变化的量,例如:身高(身高是一个名词意思身体的高度,但是它代表多高确没有明确的定义,可以是149cm,也可以是220cm,根据不同的人可以代替不同的值)2、为什么要有变量?可以让计算机能够像人一样去记忆事物的某种状态,并且状态是可以发生变化的。以人为例,一个人从5岁长大到20岁,身高变高、体重变重等,根据不同时期的人的变化反映出人的成长。计算机...原创 2020-03-04 21:05:06 · 158 阅读 · 0 评论 -
python入门之条件与流程控制
一、条件 1、什么是条件? 条件是判断、影响事物的一个因素 2、什么可以当做条件? 布尔值、比较运算符、数字、None、列表、字典、字符串、元组、集合 其中:判断为假的为 不成立的比较、False 、0、None与空(空字符串、空列表、 空集合、空字典、空元组) 3、为什么要用条件? 因为计算机执行语句判断时,要让计算机知道该如何选择语句去进行执行, 条件的真假为语句是...原创 2020-03-09 22:55:55 · 120 阅读 · 0 评论