Python
文章平均质量分 88
Python相关知识
Water_Coder
正在学算法
展开
-
Python爬虫 之数据解析之xpath
1、xpath解析1、xpath是什么xpath是最常用且最高效的一种解析方式。通用性很高,不止在Python语言中可以使用,在其它语言中也可以使用。xpath 全称 XML Path Language,即 XML 路径语言,它是一门 XML 文档中查找信息的语言。它最初是用来搜寻 XML 文档的,但是它同样适用于 HTML 文档的搜索。所以在做爬虫时,我们完全可以使用 xpath 来做相应的信息抽取。2、xpath解析原理:① 实例化一个 etree 的对象,且需要将被解析的页面源码数据加载到该原创 2020-08-19 22:26:31 · 3389 阅读 · 0 评论 -
Python爬虫 之数据解析之bs4
一、bs4进行数据解析1、数据解析的原理① 标签定位。② 提取标签、标签属性中存储的数据值。2、bs4数据解析的原理① 实例化一个BeautifulSoup对象,并且将网页源码数据加载到该对象中。② 通过调用BeautifulSoup对象中相关的属性或者方法进行标签定位和数据提取。二、bs4库和lxml库的安装因为BeautifulSoup对象是存在bs4库中的。而lxml是一个解析器,在bs4进行数据解析的时候需要lxml,当我们用bs4和xpath进行数据解析时都需要这个解析器。1、原创 2020-08-18 20:58:19 · 4082 阅读 · 1 评论 -
Python爬虫 之数据解析之正则表达式
数据解析:正则表达式这里已经开始学习了聚焦爬虫,而聚焦爬虫与统用爬虫不同的是,聚焦爬虫需要进行数据解析。而数据解析其中一种方法就是使用正则表达式。原创 2020-08-18 12:04:42 · 1273 阅读 · 2 评论 -
Python爬虫 之Ajax请求
AJAX 是 Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)的缩写。AJAX 通过使用原有的 web 标准组件,实现了在不重新加载整个页面的情况下,与服务器进行数据交互。例如在新浪微博中,你可以展开一条微博的评论,而不需要重新加载,或者打开一个新的页面。但是这些内容并不是一开始就在页面中的,而是在你点击的时候被加载进来的。这就导致了你抓取这个页面的时候,并不能获得这些评论信息。原创 2020-08-17 11:27:07 · 10864 阅读 · 6 评论 -
Python爬虫 之UA伪装
网页采集器-UA伪装1、UA的概念UA指的是User-Agent,这是一个请求头信息,是请求载体的身份标识。2、UA检测(反爬机制)门户网址的服务器会检测对应请求载体身份标识。如果检测到请求的载体身份标识为某一款浏览器,意味这当前的用户请求是一个通过浏览器发起的正常的请求。说明是一个正常的请求(用户通过浏览器发出的请求)。但是,如果检测到的请求的载体身份标识不是基于某一款浏览器的,则表示该请求为一个不正常的请求(是一个爬虫请求)。则服务器端很有可能拒绝该次请求。为了让我们的请求每次都成功,我们原创 2020-08-17 09:53:36 · 7635 阅读 · 1 评论 -
Python爬虫 之requests模块
Python 之requests模块Python爬虫初探:一、Requests模块的概念二、requests库的安装三、requests的基本用法四、简单实例,get()基本请求原创 2020-08-15 18:17:39 · 600 阅读 · 0 评论 -
Python 之文件操作
文件操作计算机中的文件是指,相关记录或存放在一起的数据集合。一、文本输入和输出open()函数用来创建一个文件对象并使用这个对象的read()和write()方法读写数据file_object = open(file_path, mode)# mode为文件的打开方式文件的打开模式mode描述“r”只读方式打开文件。文件的指针将会放在文件开头“w”写入方式打开一个文件,如果文件已存在,文件的内容会被销毁“a”追加方式打开一个文件,会在文件的末尾追加本次原创 2020-08-08 17:56:27 · 661 阅读 · 0 评论 -
Python 之实现单例模式
实现单例模式(Singleton)一、单例模式的概念概念:单例模式也叫做单子模式,单例对象的类必须保证只有一个实例存在。通过覆盖__new__()函数实现单例。class Singleton(object): def __new__(cls, *args, **kwargs): # hasattr() 函数用于判断对象是否包含对应的属性 if not hasattr(cls, "__me") cls.__me = object.__new__(Singleton) return原创 2020-08-07 16:56:04 · 451 阅读 · 0 评论 -
Python 之继承详解
继承详解一、面向对象OPP(Object Oriented Programming)1.1、什么是面向对象Python中万物皆对象面向对象是一种对现实世界理解和抽象的方法面向对象的方法:封装、继承、多态1.2、对象的基本概念对象:对象是存在的具体实体,具有明确定义的状态(属性)和行为(方法)1.3、类基本概念:具有相同属性的方法和方法的一组对象的集合类是对象的模板/图纸,可以规定对象的特征(属性和方法)例:老师类、学生类、玩家类、管理员类 等等1.4、类和对象的关系类是抽象的概原创 2020-08-07 13:34:05 · 2170 阅读 · 0 评论 -
Python 之自定义列表
自定义列表运算符和特殊方法算术运算符对应特殊方法in / not incontains(self, elem)[index]getitem(self, index)[index] = valuesetitem(self, index, value)del[index]delitem(self, index)需求: 自定义一个自己的列表,实现列表的操作。完整代码:# 自定义列表class MyList: # 初始化列表 def _原创 2020-08-01 09:11:03 · 3369 阅读 · 0 评论 -
Python 之运算符重载
运算符重载Python允许为运算符和函数定义特殊的方法来实现常用操作为运算符定义方法被称为运算符重载。所谓重载,就是赋予新的含义。同一个运算符可以有不同的功能。作用:1、让自定义的实例想内建对象一样进行运算符操作2、让程序简洁易读3、让自定义对象将运算符赋予新的规则运算符和特殊方法算术运算符对应特殊方法+add(self, other)-sub(self, other)*mul(self, other)/truediv(self, other)原创 2020-07-31 20:25:28 · 1014 阅读 · 0 评论 -
Python 之字符串(str)的常用方法
字符串的常用方法一、str类的常用方法-1方法作用说明isalnum(): bool返回当前字符串是否是字母和数字的组合(至少包含一个字符)isalpha(): bool返回当前字符串是否是纯字母的组合(至少包含一个字符)isdigit():返回当前字符串是否是纯数字的组合(至少包含一个字符)isidentifier(): bool返回当前字符串是否是合法的Python标识符islower(): bool返回当前字符串中的字符是否全部是小写字母(至少原创 2020-07-31 17:02:26 · 1677 阅读 · 0 评论 -
Python 之创建圆的类和对象
创建圆的类和对象项目需求:用面向对象的方法创造一个圆,并且打印圆的属性(半径,颜色,坐标,周长,面积)。在图形界面中根据对象的属性显示出对应的圆。完整代码:import mathimport turtleimport timeclass Circle: #初始化圆的参数 def __init__(self,r=50,border="black",fill="blue",x=0,y=0): self.r = r self.border = bor原创 2020-07-30 10:32:39 · 4080 阅读 · 0 评论 -
Python 之元组(tuple)
元组一、元组的特点:1、与列表相似,不同之处就在于元组的元素不能被修改。2、列表使用的是中括号“[]”,元组使用的是小括号“()”。3、列表属于可变类型,元组属于不可变类型。4、Python内部对元组进行了大量的优化,访问喝处理速度都比列表快。二、元组的创建、访问喝删除1、创建创建有两种形式,与列表的创建类似。#创建tuple1 = tuple((1,2,3)) #创建了一个包括3个元素的元组对象print(tuple1)tuple2 = (1,2,3,4,5,6,原创 2020-07-28 13:21:15 · 45319 阅读 · 1 评论 -
Python 之排序(冒泡排序、选择排序、插入排序)
排序一、冒泡排序用随机数任意生成5个元素,并用冒泡排序(升序)排列。# 冒泡排序import randomlist1 = [random.randint(1,100) for i in range(5)] #1~99随机5个元素print("没冒泡排序之前为:",list1)# 冒泡排序(升序)for i in range(len(list1) - 1): flag = True for j in range(len(list1)- i- 1):原创 2020-07-16 18:20:51 · 926 阅读 · 0 评论 -
Python 之查找(线性查找和二分查找)
查找一、线性查找线性查找法:对于大型列表而言,效率低下。例:输入一个数字,在一个数字列表中查找,并判断列表中是否存在。如果没有打印提示信息,如果存在打印下标。代码:list1 = [55,66,22,11,88,77,99,33,44]num = eval(input("请输入要查找的数字:"))list1_index = -1 #用来记录查找到的数字下标(用一个不可能的数字为初值,判断时好判断)#使用循环线性查找for i in range(len(list1)原创 2020-07-15 20:14:55 · 606 阅读 · 0 评论 -
Python 之列表基础知识
列表基础知识一、序列的常用操作博客:Python 之序列的常用操作二、列表的方法博客:Python 之列表的方法三、列表简单案例案例:打印成绩需求:1、输入学生人数n。2、输入n个学生的成绩。3、计算平均成绩。4、打印超过平均分同学的成绩。5、计算及格人数。6、计算及格率。代码:n=0 #学生人数list1 = [] #全班所有同学的成绩list2 = [] #超过平局分的同学的成绩avg = 0原创 2020-07-15 19:09:43 · 414 阅读 · 0 评论 -
Python 之列表的方法
列表的方法列表被创建还可以使用list类的方法简化操作方法作用说明append(elem):None将元素添加到列表的末尾count(elem):int返回元素elem在列表中出现的次数extend(other_list):None将列表other_list中的所有元素追加到当前列表中index(elem):int返回元素elem在列表中第一次出现的下标,不存在会报错insert(index,elem):None将elem插入到指定的下标处。(如果插原创 2020-07-14 21:33:51 · 520 阅读 · 0 评论 -
Python 之序列的常用操作
序列的常用操作Python中的字符串和列表都是序列类型列表是任何元素的序列,字符串是一个字符序列。操作作用说明x in list / x not in list如果元素x在序列list中,返回True;如果元素x不在序列中返回Truelist1 + list2连接两个序列list1和list2list * n,n * listn个序列list的连接list[i]访问序列中的第i个元素,i为下标,从0开始list[i:j]取序列中从下标i到j-1的片原创 2020-07-13 19:17:00 · 513 阅读 · 0 评论 -
Python 之循环案例
while和for循环案例一、计算器(while循环+哨兵值)需求:输入两个数字和一个运算符,写一个可以循环的计算器,并且利用哨兵值控制循环。代码:#输入两个数字和一个运算符,写一个可以循环的计算器ans = "y" #哨兵值#用哨兵值控制循环(相当于do-while循环,先执行后判断)while ans=="y" or ans=="Y": num1,num2 = eval(input("请输入两个操作数:")) operator = input("请输入运算符原创 2020-07-13 10:12:04 · 1885 阅读 · 0 评论 -
Python 之if-elif-else实际案例
if-elif-else实际案例一、判断闰年和每月天数需求:1、输入一个年份判断该年是闰年还是平年2、输入一个月份判断该月有几天。代码:#判断输入的年份是平年还是闰年#判断输入的月份有几天year = eval(input("请输入年份:"))month = eval(input("请输入月份:"))daynum = 0 #该月的天数#判断闰年if (year%4==0 and year%100!=0) or year%400==0: print("{}年是闰年!".fo原创 2020-07-11 10:59:01 · 5160 阅读 · 0 评论 -
Python 之变量与数据类型
Python中的整数类型和浮点数类型一、整数类型整数类型中的进制整数类型共有四种进制表示:分别是十进制、二进制、八进制和十六进制。进制类型引用符号描述十进制无默认情况,如1234,-45678二进制0b或者0B由字符0和1组成,如0b1001,0B0110八进制0o或者0O由字符0到7组成,如0o777,0O732十六进制0x或者0X由字符0到9,a到f组成(A到F),如0xBCA,0X10FC取值范围:[-∞,+∞]实际的取值范围原创 2020-05-31 21:19:19 · 662 阅读 · 0 评论 -
Python 之变量
Python中的变量一、变量在计算机程序中,变量是一个存储位置(地址)1.每个变量都有名字并且包含一个值。每个变量在使用前都必须赋值,变量赋值以后变量才会被创建。(注:字符串只能连接字符串,如果我们想连接其他类型的数据,那么就需要把其他类型先转换成字符串类型再拼接。函数:str())2.在Python中,变量就是变量,它没有数据类型,我们所说的“类型”是变量所指内存中对象的类型。补充:1.Python中会通过赋值给变量来自动判定数据类型。2.print(item1,item2,item3…,原创 2020-05-31 19:52:31 · 1227 阅读 · 0 评论 -
Python 之运算符
Python 之 算数运算符一、算数运算符( + , - , * , / , % )加减乘除取模运算在Python 中,/ 除法表示的跟数学中的除法一致,除的结果一定是浮点型num1 = 100num2 = 3print(num1 / num2) # 数学中的普通除法(结果是浮点型)print(num1 // num2) ...原创 2020-03-05 21:09:02 · 573 阅读 · 0 评论 -
Python 之 Turtle(海龟库)
Python 之 Turtle(海龟库)大家初次学习通常喜欢通过图形学习程序设计,使用 Turtle 绘制线、圆及其他形状。体验交互式编程。函数操作: 海归库方法 描述setuo(x,h,x,y) 设置窗体的位置和大小goto(x,y) 指从当前的点指向括号内所给坐标fd(d)/bk(d) 沿着海龟的前方向运行、沿着海龟的反方向运行c...原创 2020-03-03 19:46:41 · 1621 阅读 · 0 评论