![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
疯狂python讲义
痴迷、淡然~
Life is 10% what happens to you and 90% how you react to it.
展开
-
《疯狂Python讲义》视频课笔记
《疯狂Python讲义》视频课笔记第一章:Python入门与字符串1.1 Python数据类型1.2 Python字符串1.3 Python运算符第二章:Python列表、元祖和字典2.1 Python列表与元组2.2 Python字典第三章:Python流程控制3.1 Python if分支结构3.2 Python循环第四章:Python函数4.1 Python为函数提供...原创 2019-07-28 16:23:45 · 5110 阅读 · 1 评论 -
6.3 Python写文件
3、写文件(1)write(str或bytes)说明:输出字符串或字节串(只有以二进制模式(b模式)打开的文件才能写入字节串)输出字符串with open('data.txt', 'a', True, 'GBK') as f: f.write('痴迷、淡然\r\n')输出字节串with open('data.txt', 'ab', True) as f: ...原创 2019-07-05 16:25:26 · 191 阅读 · 0 评论 -
6.2 Python文件指针
2、文件指针说明:文件指针用于标明文件将要读写的位置seek(offset[, whence]):把文件指针移动到指定位置tell():判断文件指针的位置import osprint(os.path.getsize('data.txt')) # getsize可获取文件字节大小24演示:# r模式打开,文件指针位于开始处f = open('data.txt', 'r...原创 2019-07-05 16:16:59 · 791 阅读 · 0 评论 -
6.1 Python打开(缓冲)文件、读文件
1、打开(缓冲)文件、读文件1)文件模式模式意义r只读模式w写模式a追加模式+读写(更新)模式,可与其他模式结合使用。比如 r+ 代表读写模式,w+ 也代表读写模式(w 模式会清空文件,因此实际中不可读)b二进制模式,可以其他模式结合使用。比如 rb 代表二进制只读模式,rb+ 代表二进制读写模式,ab 代表二进制追加模式分析:...原创 2019-07-05 16:12:00 · 1503 阅读 · 0 评论 -
Python定义计算N的阶乘的函数
定义计算N的阶乘的函数1)使用循环计算阶乘def frac(n): r = 1 if n<=1: if n==0 or n==1: return 1 else: print('n 不能小于0') else: for i in range(1, n+1): ...原创 2019-06-29 21:28:57 · 40267 阅读 · 0 评论 -
4.6 Python局部函数
6、局部函数1)理解局部函数**说明:**函数体内定义的函数。默认情况下,局部函数对外隐藏,只能在其封闭函数内使用2)定义、使用局部函数def foo(): print('foo函数') def bar(): # 局部函数 print('bar函数') bar() foo()# bar() # 无法访...原创 2019-06-29 21:27:01 · 555 阅读 · 0 评论 -
4.5 Python变量作用域
5、变量作用域1)理解变量作用域根据定义变量的位置:局部变量:在函数中定义的变量包括参数全局变量:在函数外面、全局范围内定义的变量2)变量字典获取变量字典:globals() 返回全局范围内所有变量组成的“变量字典”locals() 返回当前局部范围内所有变量组成的“变量字典”vars(object) 返回指定对象的范围内所有变量组成的“变量字典”,若不传入object 参...原创 2019-06-29 21:25:01 · 276 阅读 · 0 评论 -
4.4 Python参数收集和逆向参数收集
4、参数收集和逆向参数收集1)参数收集(1)*参数说明:在形参前面添加一个星号(*),意味着该参数可接受多个参数值Python 将传给带 * 参数的多个值收集成一个元组Python 允许参数收集的形参位于形参列表的任意位置,但只能带一个支持“普通”参数收集的形参若支持“普通”参数收集的形参位于前面,后面的参数则需要使用关键字参数传值def test(num, *books):...原创 2019-06-29 21:21:16 · 1717 阅读 · 2 评论 -
4.3 Python关键字参数与参数默认值
3、关键字参数与参数默认值1)关键字参数位置参数:按顺序为每个参数指定参数值关键字参数(命名参数):按参数名为参数指定参数值def info(name, age, height): print('name:', name) print('age:', age) print('height:', height) info('w', 25, 175) ...原创 2019-06-29 21:18:01 · 823 阅读 · 0 评论 -
4.2 Python多返回值函数与递归函数
2、多返回值函数与递归函数1)多返回值,本质为返回元组**说明:**程序可返回元组,也可直接返回多个值(系统自动将其封装成元组)import randomdef test(): c1 = chr(random.randint(65, 90)) c2 = chr(random.randint(65, 90)) c3 = chr(random.randint(65, ...原创 2019-06-29 21:16:22 · 749 阅读 · 0 评论 -
4.1 Python为函数提供说明文档并查看函数文档
1、为函数提供说明文档并查看函数文档为函数提供说明文档def test(parm1,parm2): ''' test 函数的说明 parm1 - 代表... parm2 - 代表... return - 代表... ''' pass查看函数文档方法1print(test.__doc__) test 函数的说明...原创 2019-06-29 21:14:14 · 1043 阅读 · 0 评论 -
9.4 Python读取各国GDP数据的json文件并用Pygal绘图
4、读取各国GDP数据的json文件并用Pygal绘图各国 GDP 数据的 json 文件下载步骤:读取 json 数据json 模块包含了将 json 字符串恢复成 Python 对象函数,也提供了将 Python 对象转换成 JSON 字符串的函数json 模块的 load() 函数加载 json 数据后,读取指定字典中 key 对应的 value使用 Pygal 绘图...原创 2019-07-13 16:32:50 · 2408 阅读 · 0 评论 -
6.4 Python with语句
4、with语句说明:with 语句管理资源关闭with open('data.txt', 'r', True, 'GBK') as f: # 把打开文件放在 with 语句中,可自动关闭文件 print(f.read())第一行第二行第三行原理:使用 with 语句管理的资源必须是一个实现上下文管理协议(context manage protocol)的类。...原创 2019-07-05 16:29:12 · 329 阅读 · 0 评论 -
6.5 Python异常处理、多异常捕捉、异常处理嵌套、自定义引发异常
5、异常处理、多异常捕捉、异常处理嵌套、自定义引发异常1)异常处理try: f = open('test.txt', 'r', True, 'GBK') print(f.read())except OSError as e: print(e) print(e.args) # 异常参数 print(e.errno) # ...原创 2019-07-05 16:31:43 · 2101 阅读 · 0 评论 -
10.5 Python导出爬取的数据至数据库并绘图分析
5、导出爬取的数据至数据库并绘图分析1)导出爬取的数据至数据库需求:将爬取到的数据导入数据库在添加爬取多页功能(第4节)的基础上进行后续开发步骤:(1)修改 pipeline.py 文件(输出到数据库)获取数据连接导入sqlite3模块重写 Pipeline 的构造方法,获取数据库连接,并获取执行 SQL 语句的游标使用游标将数据写入数据库重写 process_...原创 2019-07-28 15:21:27 · 2600 阅读 · 0 评论 -
10.4 Python导出爬取的数据至json文件并添加爬取多页功能
4、导出爬取的数据至json文件并添加爬取多页功能需求:爬取 BOSS 直聘北京地区所有页面的招聘信息将爬取到的数据导入到 json 格式的文件中在Scrapy开发爬虫的步骤(第3节)的基础上进行后续开发步骤:(1)修改 pipeline.py 文件(输出到 json 文件)在构造器中初始化资源重写两个方法:process_item(self, item, s...原创 2019-07-28 15:12:05 · 1194 阅读 · 0 评论 -
10.3 Python Scrapy开发爬虫的步骤
3、Scrapy开发爬虫的步骤创建 Scrapy 项目(第1节)通过 shell 调试(第2节)能成功获取目标数据后进行后续开发1)编写Item定义 Item 类,所有 Item 类都需要继承 scrapy.Item 类为所有需要爬取的信息定义对应的属性,每个属性都是一个 scrapy.Field 对象打开…\ZhipinSpider\ZhipinSpider\items.py...原创 2019-07-28 15:01:22 · 431 阅读 · 0 评论 -
10.2 Python Scrapy的shell编程
2、Scrapy的shell编程使用 Scrapy 进行爬虫时,先用 shell 程序调试成功后再在 Scrapy 项目中运行,减少直接在 Scrapy 项目中运行出错导致工作效率低需求:爬取BOSS直聘官网北京地区的招聘信息BOSS直聘官网北京地区 url:https://www.zhipin.com/job_detail/?query=&city=101010100&am...原创 2019-07-28 14:47:33 · 418 阅读 · 0 评论 -
10.1 Python Scrapy下载和安装及创建目录
1、Scrapy下载和安装及创建目录1)安装Scrapy模块步骤:(1)Scrapy 依赖大量第三方包,尤其是 Twisted,pip 自动下载的 Twisted 安装包有一些缺陷,因此需要先自行下载、安装 Twisted打开 python 模块下载地址搜索 twisted,找到下载对应的 Twisted 版本,我下载的 Twisted-19.2.1-cp37-cp37m...原创 2019-07-28 10:16:51 · 888 阅读 · 0 评论 -
8.6 Python使用poplib模块收取邮件
6、使用poplib模块收取邮件1)poplib 模块:poplib 模块提供了 poplib.POP3 和 poplib.POP3_SSL 两个类,分别用于连接普通的 POP 服务器和基于 SSL 的 POP 服务器使用 poplib.POP3 或 poplib.POP3_SSL 连接到服务器后,按照 POP3 协议与服务器交互2)POP3协议:POP3 协议简介POP3 的...原创 2019-07-11 17:13:48 · 2547 阅读 · 3 评论 -
8.5 Python使用smtplib模块发送邮件
5、使用smtplib模块发送邮件1)使用smtplib模块发送简单邮件步骤:连接SMTP服务器,并使用用户名、密码登陆服务器创建EmailMessage对象,该对象代表了邮件本身调用sendmail()方法发送邮件示例:我用自己的QQ邮箱(英文地址)给自己(原始地址)发一封邮件(QQ邮箱需要授权码(详见))smtplib.SMTP() 代表的普通SMTP连接(默认端口21)...原创 2019-07-11 16:59:46 · 686 阅读 · 0 评论 -
8.4 Python使用socket通信(创建TCP服务端和客户端)并加入多线程
4、使用socket通信(创建TCP服务端和客户端)并加入多线程需求:服务端收到客户端连接后输出客户端地址信息可同时连接多个客户端收到客户端发送的数据后,将数据发送给所有连接的客户端客户端:获取用户输入后,将输入数据发送给服务端打印服务端返回的数据用户可多次输入解决方案:使用socket通信发送数据:send() 方法用于 TCP 协议的通信;sendt...原创 2019-07-11 16:50:06 · 2665 阅读 · 0 评论 -
8.3 PythonPython创建TCP服务端和客户端
3、Python创建TCP服务端和客户端1)TCP协议示意(Socket英文里是“插座”的意思,翻译到中文为“套接字”)2)创建TCP服务端步骤:创->绑->监->接创建socket对象 socket.socket(family=AF_INET, type=SOCK_STREAM, protp=0, fileno=None)family:指定网络类型(AF_IN...原创 2019-07-11 16:39:35 · 474 阅读 · 0 评论 -
8.2 Python使用urllib模块读取网络资源、发送请求参数、访问受保护的网络资源
2、使用urllib模块读取网络资源、发送请求参数、读取受保护的网络资源1)打开URL对应的资源urlopen(url, data=None) 方法(urllib.request子模块下):用于打开 url 指定的资源,并从中读取数据import urllib.requestwith urllib.request.urlopen('http://www.crazyit.org/ind...原创 2019-07-11 16:36:12 · 359 阅读 · 0 评论 -
8.1 Python网络模块概述与urllib.parse模块解析、恢复url和查询字符串(url参数)
1、网络模块概述与urllib.parse模块解析、恢复url和查询字符串(url参数)0)网络分层及协议1)Pyhton的网络模块spcket:基于传输层 TCP、UDP 协议进行网络编程的模块email:Email 和 MIME 消息处理模块smtplib:支持 SMTP 协议(发送邮件)的客户端模块poplib:支持 POP3 协议的客户端模块urllib及其子模块:支持 ...原创 2019-07-11 16:09:22 · 495 阅读 · 0 评论 -
9.3 Python爬取天气数据并用Pygal绘图
3、爬取天气数据并用Pygal绘图需求:使用 Python 获取 2018 年太原的天气的最高气温和最低气温信息使用 Pygal 展示天气数据步骤:下载、提取数据使用 urllib.request 向 https://m.tianqi.com/ 发送请求,获取该网站的源代码使用 re 模块来解析网站源代码,从中提取日期、天气最高气温、天气最低气温数据数据清洗检查...原创 2019-07-13 16:31:14 · 2125 阅读 · 0 评论 -
9.2 Python Pygal绘制叠加柱状图、叠加折线图、饼图与点图
2、Pygal绘制叠加柱状图、叠加折线图、点图与饼图1)叠加图叠加图第二组数据会叠加在第一组数据上,可看到两组数据的累加效果,其它组数据亦同(1)叠加柱状图:Pygal.StackedBar()import pygalimport random# 数据year_data = [str(i) for i in range(2011, 2020)]banana_data = [r...原创 2019-07-13 16:28:06 · 10367 阅读 · 0 评论 -
5.4 Python实例方法
4、实例方法说明:类中定义的方法默认是实例方法实例方法第一个参数会被自动绑定到方法的调用者(该类的实例),因此这些实例方法至少应该定义一个参数,该参数通常被命名为 selfclass Book: def desc(self): # 实例方法,第一个参数推荐使用 self(不强制),有更好的可读性 self.name = 'Python' s...原创 2019-07-03 09:30:44 · 319 阅读 · 0 评论 -
5.3 Python实例变量
3、实例变量1)构造方法说明:构造方法是一个特殊的实例方法,方法名为_init_,用于初始化对象的实例变量创建对象时,自动调用构造方法若没有为类定义构造方法,Python 会自动为类定义一个只包含一个 self 参数的默认的构造方法class Person: # 构造方法 def __init__(self, name='无名氏', age=0): ...原创 2019-07-03 09:27:59 · 539 阅读 · 0 评论 -
5.2 Python类变量
2、类变量说明:在类空间或通过类引用赋值的变量class User: # 类变量(类空间定义的变量) category = '未知类型' # 类变量(通过类引用赋值的变量)User.type = '普通用户'1)调用类变量(1)通过类调用类变量说明:通过类可以获取和改变类变量的值class User: category = '未知类型'prin...原创 2019-07-03 09:25:22 · 294 阅读 · 0 评论 -
5.1 Python类与对象
1、类与对象说明:类类是某一批对象的抽象(可理解为某种概念)类的作用:创建对象、派生子类对象对象是具体存在的东西对象的作用:操作对象的实例变量(包括访问实例变量的值、添加实例变量、删除实例变量)、操作对象的方法(包括调用方法、添加方法、删除方法)语法:class 类名: ''' 说明 ''' 执行语句... (定义类时自动执行) 零到...原创 2019-07-03 09:22:51 · 375 阅读 · 0 评论 -
7.4 Python用程序执行SQL脚本
4、用程序执行SQL脚本SQL 脚本:script.sql(UTF-8)insert into user_tb values(null, '白龙马', '456789', 23);create table buddha_tb( _id integer primary key autoincrement, name text, pass text, descr...原创 2019-07-08 08:53:45 · 6787 阅读 · 0 评论 -
7.3 Python使用事物控制数据库操作
3、使用事物控制数据库操作1)事务说明:事务是由一步或几步数据库操作序列组成的逻辑执行单元事务的 4 个特性:原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持续性(Durability)这 4 个特性简称为 ACID 性。2)提交事务说明:使用数据库连接的 commit() 方法提交事务若游标只是执行 DD...原创 2019-07-08 08:51:02 · 427 阅读 · 0 评论 -
7.2 Python执行DML语句(数据库增删改查)
前言:DDL与DML(1)DDL(Data Definition Language)数据定义语言适用范围:对数据库中的某些对象(例如,database、table)进行管理,如建库、建表等(create(创建),alter(修改) 和 drop(删除) 等)。(2)DML(Data Manipulation Language)数据操纵语言适用范围:对数据库中的数据进行一些简单操作,主要指数...原创 2019-07-08 08:48:04 · 1290 阅读 · 0 评论 -
7.1 Python数据库介绍、使用sqlite3模块创建数据表
1、数据库介绍、使用sqlite3模块创建数据表1)数据库介绍说明:Python 操作不同数据库使用不同的模块,但这些模块遵守 Python 制定的DB API协议,该协议目前最新版本是2.0,被称为 Python DB API 2.0。Python 自带了 SQLite 数据库和 SQLite 数据库的 API 模块全局变量:用于判断数据库模块所支持的功能,通常有以下 3 ...原创 2019-07-08 08:44:07 · 3322 阅读 · 0 评论 -
python查询类和方法信息
print(dir(str)) # dir()查看某个类的所有方法print(help(str.islower)) # help()查看某个类的某方法原创 2019-06-26 21:37:38 · 6207 阅读 · 0 评论 -
1.3 Python运算符
3、运算符赋值运算符与扩展的赋值运算符a_1 = 123print(a_1)a_2 = 20a_2 -= 5 print(a_2)12315算术运算符div_1 = 5/3print(div_1)div_2 = 5//3 # 整除print(div_2)div_3 = 5.3//3.2print(div_3)mod = 23%...原创 2019-06-26 21:35:09 · 351 阅读 · 0 评论 -
1.2 Python字符串
2、字符串字符串中包含单引号或双引号使用不同引号讲字符串括起来对引号进行转义str_1 = "hello' world"print(str_1)str_2 = 'hello\' world'print(str_2)hello’ worldhello’ world字符串连接# + 可作为字符串连接运算符str_1 = 'hello'str_2 = ' wor...原创 2019-06-26 21:33:18 · 702 阅读 · 0 评论 -
5.5 Python类方法与静态方法
5、类方法与静态方法说明:类方法与静态方法相似,它们都推荐使用类来调用(可用对象来调用)1)类方法定义类方法:使用 @classmethod 修饰方法的第一个参数定义为 cls,用类调用该方法时该参数会自动绑定class Tiger: # 类方法:1、用 @classmethod 修饰;2、定义 cls 形参 @classmethod def info(cl...原创 2019-07-03 09:32:03 · 213 阅读 · 0 评论 -
5.6 Python合成属性
6、合成属性说明:使用 property(fget=Nnone, fset=None, fdel=Nnone, doc=None) 合成属性相于实例变量。class Rectangle: def __init__(self, width, height): self.width = width self.height = height ...原创 2019-07-03 09:33:18 · 298 阅读 · 0 评论