
Python学习
分享python学习过程和感受
ZoomToday
笔耕不辍,热血青春。多看多学发现自己会的只是冰山一角
展开
-
【Python】Scrapy框架
初窥门径 使用Scrapy抓取一个网站一共需要四个步骤:创建一个Scrapy项目定义Item容器编写爬虫存储内容在这里插入图片描述原创 2021-10-24 17:34:02 · 117 阅读 · 2 评论 -
【Python Interview】Python垃圾回收机制
文章目录写在前面引用计数原理简述引用计数器优缺点优点缺点标记-清除与分代回收循环引用问题原理简述标记-清除分代回收触发条件处理流程写在前面 垃圾回收(Garbage Collection,GC)作为现代编程语言的自动内存管理机制,专注于两件事:1)找到内存中无用的垃圾资源;2)清除这些垃圾并把内存让出来给其他对象使用。 现在的高级语言如Java、C#等,都采用了垃圾回收机制,而不再是C,C++里用户自己管理维护内存的方式。自己管理内存极其自由,可以任意申请内存,但如同一把双刃剑,为大量内存泄漏、悬原创 2021-04-07 21:58:37 · 2793 阅读 · 6 评论 -
【Python入门基础】Pygame实例
Pygame程序实例源自小甲鱼python教学视频,如有需要教学视频可在评论区留下邮箱Pygame实现移动动画import pygameimport sys# 初始化Pygamepygame.init()size = width,height=1200,820speed=[-2,1]bg=(255,255,255) # RGB# 创建指定大小的窗口 Surfacescreen = pygame.display.set_mode(size)# 设置窗口标题pygame.dis.原创 2021-02-25 20:36:42 · 1500 阅读 · 3 评论 -
【Python入门基础】Pycharm格式化代码常用快捷键
一 常用快捷键编辑类:Ctrl + D 复制选定的区域或行Ctrl + Y 删除选定的行Ctrl + Alt + L 代码格式化Ctrl + Alt + O 优化导入(去掉用不到的包导入)Ctrl + 鼠标 简介/进入代码定义Ctrl + / 行注释 、取消注释Ctrl + 左方括号 快速跳到代码开头Ctrl + 右方括号 快速跳到代码末尾Shift + F10 运行Sh原创 2021-02-25 13:49:00 · 5185 阅读 · 0 评论 -
【Python爬虫】异常处理
异常处理方法一# 异常处理from urllib.request import Request,urlopenfrom urllib.error import URLError,HTTPErrorreq = Request('https://www.baidu.com')try: response = urlopen(req)except HTTPError as e: print('出错') print('Error code:',e.code)except URL原创 2021-02-23 20:11:14 · 1022 阅读 · 0 评论 -
【Python爬虫】使用代理爬取妹子图
文章目录代理使用步骤使用示例代理使用步骤1.参数是一个字典{‘类型’:‘代理ip:端口号’}proxy_support = urllib.request.ProxyHandler({})2.定制、创建一个openeropener = urllib.request.built_opener(proxy_support)3a.安装openerurllib.request.install_opener(opener)3b.调用openeropener.open(url)使用示例import原创 2021-02-23 14:23:09 · 1117 阅读 · 2 评论 -
【Python爬虫】简单实现中英翻译器
网页分析打开有道翻译,使用翻译功能,F12打开Network,会发现有很多get和post的数据,找到对所翻译内容请求的数据,如下图简单分析一下header的内容原创 2021-01-07 14:24:58 · 1262 阅读 · 1 评论 -
【Python入门基础】定义容器与迭代器
定义容器举例迭代器迭代器的魔法方法原创 2021-01-05 06:53:17 · 849 阅读 · 0 评论 -
【Python入门基础】属性访问与描述符
属性访问举例计算矩形面积,当输入为正方形时,长与宽相等。描述符举例:摄氏度和华氏度互相转换的类原创 2021-01-04 23:39:13 · 718 阅读 · 0 评论 -
【Python入门基础】简单实现计时器
原创 2021-01-04 23:05:25 · 918 阅读 · 0 评论 -
【Web前端】垃圾分类查询
文章目录垃圾分类前端代码效果展示垃圾分类前端代码<!-- HTML - 超文本标记语言 - 可以在浏览器中运行出网页的编程语言 1. 标签 - 承载网页上显示的内容 2. 层叠样式表 - 负责网页的显示 3. JavaScript - 负责交互行为--><!DOCTYPE html><html lang="en"><head> <meta charset="utf-8"> <titl原创 2020-12-21 17:02:39 · 1687 阅读 · 1 评论 -
【Python入门基础】Web前端
函数函数可以赋值给变量函数可以作为函数的参数函数可以作为函数的返回值高阶函数的用法(filter、map以及它们的替代品)items1 = list(map(lambda x: x ** 2, filter(lambda x: x % 2, range(1, 10))))items2 = [x ** 2 for x in range(1, 10) if x % 2]说明:mapfilter...原创 2020-12-21 15:02:38 · 1413 阅读 · 1 评论 -
【Python入门基础】算法与数据结构
算法与数据结构评价算法的好坏:渐近时间复杂度和渐近空间复杂度。时间复杂度渐近时间复杂度的大O标记: - 常量时间复杂度 - 布隆过滤器 / 哈希存储 - 对数时间复杂度 - 折半查找(二分查找) - 线性时间复杂度 - 顺序查找 / 桶排序 - 对数线性时间复杂度 - 高级排序算法(归并排序、快速排序) - 平方时间复杂度 - 简单排序算法(选择排序、插入排序、冒泡排序) - 立方时间复杂度 - Floyd算法 / 矩阵乘法运算 - 几何级数时间复杂度 - 汉诺塔 - 阶乘时间原创 2020-12-18 16:18:14 · 1200 阅读 · 0 评论 -
【Python入门基础】collections模块
简介collections包含了一些特殊的容器,针对Python内置的容器,例如list、dict、set和tuple,提供了另一种选择;namedtuple,可以创建包含名称的tuple;deque,类似于list的容器,可以快速的在队列头部和尾部添加、删除元素;Counter,dict的子类,计算可hash的对象;OrderedDict,dict的子类,可以记住元素的添加顺序;defaultdict,dict的子类,可以调用提供默认值的函数;模块使用Countercounter可以支持转载 2020-12-18 15:07:23 · 2498 阅读 · 0 评论 -
【Python入门基础】图像处理
文章目录图像处理颜色与像素颜色像素用Pillow处理图像裁剪图像生成缩略图缩放和粘贴图像旋转和翻转操作像素滤镜效果图像处理颜色与像素颜色 美术三原色是红黄蓝;色光三原色是红绿蓝,所以通常会将一个颜色表示为一个RGB值或者RGBA值(A表示Alpha通道,决定了通过这个图像的像素,也就是透明度)。名称RGBA值名称RGBA值White(255, 255, 255, 255)Red(255, 0, 0, 255)Green(0, 255, 0, 255)Blu原创 2020-12-17 15:43:40 · 1090 阅读 · 0 评论 -
【Python入门基础】网络编程
文章目录TCP/IP模型网络应用模式基于HTTP协议的网络资源访问HTTP(超文本传输协议)JSONrequests库基于传输层协议的套接字编程TCP套接字UDP套接字网络应用开发发送电子邮件发送带有附件的邮件发送短信TCP/IP模型 实现网络通信的基础是网络通信协议,这些协议通常是由互联网工程任务组(IETF)制定的。所谓“协议”就是通信计算机双方必须共同遵从的一组约定,例如怎样建立连接、怎样互相识别等,网络协议的三要素是:语法、语义和时序。构成我们今天使用的Internet的基础的是TCP/IP协原创 2020-12-16 20:51:40 · 1021 阅读 · 0 评论 -
【Python入门基础】进程和线程
进程 进程是操作系统中执行的一个程序,操作系统以进程为单位分配存储空间,每个进程都有自己的地址空间、数据栈以及其他用于追踪进程执行的辅助数据,操作系统管理所有进程的执行,为它们合理的分配资源。进程可以通过fork或spawn的方式来创建新的进程来执行其他的任务,不过新的进程也有自己独立的内存空间,因此必须通过进程间通信机制(IPC,Inter-Process Communication)来实现数据共享,具体的方式包括管道、信号、套接字、共享内存区等。 一个进程还可以拥有多个并发的执行线索,简单的说就原创 2020-12-16 06:52:44 · 382 阅读 · 1 评论 -
【Python入门基础】正则表达式
正则表达式 正则表达式是一种工具,它定义了字符串的匹配模式(如何检查一个字符串是否有跟某种模式匹配的部分或者从一个字符串中将与模式匹配的部分提取出来或者替换掉)。符号解释示例说明.匹配任意字符b.t可以匹配bat / but / b#t / b1t等\w匹配字母/数字/下划线b\wt可以匹配bat / b1t / b_t等但不能匹配b#t\s匹配空白字符(包括\r、\n、\t等)love\syou可以匹配love you\d匹配数字\d\原创 2020-12-09 09:32:56 · 991 阅读 · 0 评论 -
【Python入门基础】基于tkinter模块的GUI(三)——简单动画实例
Pygame Pygame是一个开源的Python模块,专门用于多媒体应用(如电子游戏)的开发,其中包含对图像、声音、视频、事件、碰撞等的支持。Pygame建立在SDL的基础上,SDL是一套跨平台的多媒体开发库,用C语言实现,被广泛的应用于游戏、模拟器、播放器等的开发。而Pygame让游戏开发者不再被底层语言束缚,可以更多的关注游戏的功能和逻辑。 Pygame安装方法 通过pygame中draw模块的函数可以在窗口上绘图,可以绘制的图形包括:线条、矩形、多边形、圆、椭圆、圆弧等。需要说明的是,屏原创 2020-12-07 16:26:32 · 1983 阅读 · 2 评论 -
【Python数据可视化(七)】使用正确的图表理解数据
对数图 根据一般经验,遇到一下情况应该使用对数标度:当要展示的数据的值跨越好几个量级时;当要展示的数据有朝向大值(一些数据点比其他数据大很多)的倾斜度时;当要展示变化率,而不是值的变化。...原创 2020-12-02 20:53:45 · 1945 阅读 · 0 评论 -
【Python数据可视化(六)】用图像和地图绘制图表
用PIL做图像处理 PIL坐标系统假定坐标(0,0)位于左上角。Image模块有一个非常有用的类和一些实例方法来对加载的图像对象(im)执行基本的操作。im=Image.open(filename)打开一个文件,并把图像加载到im对象上im.crop(box)裁剪box.box定义在左、上、右、下像素坐标(例如box=(0,100,100,100))指定的坐标区域内的图像im.filter(filter)为图像应用一个滤波器,并返回滤波后的图像im.histogram()原创 2020-11-30 19:05:31 · 1384 阅读 · 0 评论 -
【Python数据可视化(五)】创建3D可视化图表
创建3D柱状图import randomimport numpy as npimport matplotlib as mplimport matplotlib.pyplot as pltmpl.rcParams['font.size'] = 10fig = plt.figure()ax = fig.add_subplot(111, projection='3d')for z in [2011, 2012, 2013, 2014]: # xs和ys是x轴和y轴坐标;zs是z轴的坐标值原创 2020-11-25 14:16:37 · 2384 阅读 · 2 评论 -
【Python数据可视化(四)】定制图表
设置坐标轴标签的透明度和大小 matplotlib组织图表过程: 最上层是一个Figure实例,包含了所有可见的和其他一些不可见的内容。该Figure实例包含了一个Axes实例字段Figure.axes。Axes实例几乎包含了我们所关心的所有东西,如所有的线、点、刻度和标签。因此,当调用plot()方法时,就会向Axes.lines列表加一个线条的实例。Axes实例也包含了XAxis和YAxis实例的引用,分别指向相应的x轴和y轴。XAxis和YAxis管理坐标轴、标签、刻度、刻度标签、定位器和格式原创 2020-11-18 22:07:07 · 992 阅读 · 1 评论 -
【Python数据可视化(三)】定制图表
柱状图、线性图和堆积柱状图import matplotlib.pyplot as pltplt.figure(1)x = [1, 2, 3, 4]y = [5, 4, 3, 2]# 线性图plt.subplot(231)plt.plot(x, y)# 柱状图plt.subplot(232)plt.bar(x, y)# 水平柱状图plt.subplot(233)plt.barh(x, y)# 堆积柱状图plt.subplot(234)plt.bar(x, y)y1 = [7,原创 2020-11-12 19:09:49 · 1183 阅读 · 0 评论 -
【Python数据可视化(二)】数据导入
从CSV文件导入数据 CSV是指逗号分隔的值,文件中还包括一个文件头,也是以逗号分隔的。在这里所用的ex.csv作为示例数据,你可以把它下载到本地,把示例数据和代码放在相同的目录下。# 导入CSV模块以便访问所需的方法import csvimport sysfilename = 'ex.csv'data = []try: # 打开ex.csv文件,用with语句打开数据文件并把它绑定到对象f,不必操心在操作完资源后去关闭数据文件 # with语句的上下文管理器会帮助处理原创 2020-11-10 18:43:43 · 3847 阅读 · 1 评论 -
【Python数据可视化(一)】matplotlib配置
在代码中配置matplotlib参数 matplotlib库提供了强大的绘图功能,在其配置文件即.rc文件中,已经为大部分属性设定了默认值。操作步骤 在代码执行过程中,有两种方式更改运行参数:使用参数字典(rcParams)或调用matplotlib.rc()命令。第一种方式中,可以通过rcParams字典访问并修改所有已经加载的配置项;第二种方式中,可以通过向matplotlib.rc()传入属性的关键字元组来修改配置项。如果需要重置动态修改后的配置参数,可以调用matplotlib.rcdef原创 2020-11-05 14:39:38 · 950 阅读 · 0 评论 -
【最长回文子串】Manacher算法详解
写在前面manacher算法解决最长回文子串以及变形问题的时间复杂度为O(n)。如果你想囫囵吞枣,只需要使用到该算法,你可以直接把代码拿走;但如果你想深入了解这个算法的工作原理和关键部分解读,还是希望你能静下心来,拿出一张纸,一根笔,来好好揣摩算法背后的魅力,算法解读部分内容来自《来自于程序员代码面试指南:IT名企算法与数据结构题目最优解》,理解起来的确有点冗杂和费力。(以下来自网友真实案例)Python代码(Leetcode 5为例)class Solution: def.原创 2020-09-30 10:47:50 · 1469 阅读 · 0 评论 -
Python问题杂述
1.python通过cmd下载安装的包在哪个文件夹中?找到安装python的目录,你的Python的安装位置\Lib\site-packages;原创 2020-09-10 17:22:08 · 1547 阅读 · 0 评论 -
【Python爬虫】爬取笔趣阁小说(部分)
爬取小说的网站选取的是笔趣阁,笔趣阁没有反爬,比较好爬取一点。至于其他的小说网站,或者彩票,股票,也可以参照这个思路去爬取,这几天的股市真是见证历史了。源码见我的gitee或者优快云下载。下载单章内容#下载单章内容def download_one_chapter(): """获取网页源代码""" target_url = 'http://www.shuquge...原创 2020-03-13 12:22:34 · 1694 阅读 · 0 评论 -
Python exe运行隐藏不显示命令行窗口以及报错AttributeError: module 'win32ctypes.pywin32.win32api' has no attribute
Python打包exe文件后,执行exe文件总会打开命令行窗口,通过查找相关解决的方法,经过亲测,介绍几种可行的方案。 修改文件名后缀 将.py文件改成.pyw文件(使用的是脚本解析程序pythonw.exe) 修改打包命令 pyinstaller -i 添加图标 -w 去除命令行...原创 2020-03-13 09:16:40 · 1866 阅读 · 0 评论 -
【Python爬虫】爬取网易云音乐,打造音乐下载器
在前一篇文章,正好总结过了Tkinter以及canvas画布的使用,学以致用,用Tkinter来创建一个窗口,在此基础上实现音乐的下载逻辑,并在最后打包成exe文件。最近刚好学了Tkinter和Canvas画布,顺便总结了一下,想着那它来做点什么练练手,我平常挺喜欢听音乐,特别是在大型评论APP平台——网易云音乐(滑稽),歌不仅推荐的好,而且评论“个个说话又好听”。所以想着自己做一个音乐...原创 2020-03-12 22:18:55 · 12564 阅读 · 7 评论 -
【Python入门基础】基于tkinter模块的GUI(二)——canvas画布
canvas画图方法 说明 参数 .create_line() 画线 起点坐标,终点坐标,width=线宽,fill=颜色 .create_arc() 画弧线 起点坐标,终点坐标,width=线宽,fill=颜色 .create_rectangle() 画矩形 起点坐标,终点坐标,fill=‘填充的颜色’,outline=边框颜色 ...原创 2020-03-11 16:59:30 · 3467 阅读 · 0 评论 -
【Python入门基础】基于tkinter模块的GUI(一)——TK
图形用户界面GUI是图形用户界面的缩写,Python默认的GUI开发模块是tkinter,是基于Tk的,Tk是一个工具包,提供了跨平台的GUI控件。但Tk并不是最新最好的选择,也没有功能特别强大的GUI控件,事实上,开发GUI应用并不是Python最擅长的工作,如果真的需要使用Python开发GUI应用,wxPython、PyQt、PyGTK等模块都是不错的选择。 基本上使用tkinter来...原创 2020-03-11 11:19:02 · 1360 阅读 · 0 评论 -
Python下载安装第三方库cvxpy包
遇到的问题:Install packages failed: Installing packages: error occurred.检查Python版本打开命令行窗口(Windows+R输入cmd),输入python,查看当前python版本。下载对应的.whl文件下载网址为:https://www.lfd.uci.edu/~gohlke/pythonlibs/...原创 2020-03-10 18:20:06 · 10278 阅读 · 1 评论 -
Python安装第三方库Pygame
检查Python版本打开命令行窗口(Windows+R输入cmd),输入python,查看当前python版本。以版本python3.7为例,下载的Pygame包需要与之匹配,下载含有"cp37",否则会报错:ERROR: pygame-1.9.6-cp27-cp27m-win_amd64.whl is not a supported wheel on this platform...原创 2020-03-10 18:02:04 · 4742 阅读 · 1 评论 -
【Python入门基础】静态方法与类方法
@staticmethod定义静态方法,@classmethod定义类方法,第一个参数时cls;实例方法第一个参数是self。三个方法都可以通过实例和类名调用,但静态方法和类方法不可以调用类里面的属性值。如果需要参数,需要自己传参。何时定义静态方法和类方法:当你的某个函数与其它函数没有任何关系,就可以定义,静态方法和类方法只是为了方便调用,不需要创建实例,直接类名.函数名就可以调用。原创 2020-03-09 14:35:37 · 1197 阅读 · 0 评论 -
【Python入门基础】@property装饰器及__slot__
@property装饰器在前面《面向对象的三大特性》中说过了Python中属性和方法访问权限的问题,虽然不建议将属性设置为私有的,但是如果直接将属性暴露给外界也是有问题的。这里通过属性的getter(访问器)和setter(修改器)方法进行对应的操作,使用@property包装器来包装getter和setter方法对属性进行访问。eg.@property装饰器class Victor...原创 2020-03-09 13:41:30 · 789 阅读 · 0 评论 -
【Python入门基础】面向对象的三大特性
封装封装是使用特殊的语法,对成员属性和成员方法进行包装,达到保护和隐藏的目的,但不能把成员全部封装死,就失去了意义。被封装的成员主要是供类的内部使用,被特殊语法封装的成员会有不同的访问的权限。封装的实现公有的封装: 默认定义的成员都属于公有成员,公有成员可以在任何位置进行访问和操作;受保护的封装: 在成员名称前面加一个下划线_成员名称(Python没有具体实现,是约...原创 2020-03-09 09:54:17 · 766 阅读 · 0 评论 -
【Python入门基础】类与对象
类与对象把一组数据结构和处理它们的方法组成对象(object),把相同行为的对象归纳为类(class),通过类的封装(encapsulation)隐藏内部细节,通过继承(inheritance)实现类的特化(specialization)和泛化(generalization),通过多态(polymorphism)实现基于对象类型的动态分派。简单来说,类是对象的蓝图和模板,而对象是类的实例。...原创 2020-03-08 17:35:53 · 768 阅读 · 0 评论 -
【Python入门基础】井字棋小游戏
import osdef print_board(board): print(board['TL'] + '|' + board['TM'] + '|' + board['TR']) print('-+-+-') print(board['ML'] + '|' + board['MM'] + '|' + board['MR']) print('-+-+-')...原创 2020-03-07 13:14:24 · 461 阅读 · 0 评论