python
文章平均质量分 50
python语言学习
fighting&code
big data
展开
-
python-逆序数
逆序数:在一个排列中,如果某两个元素的前后位置与自然顺序相反,即前面的#数大于后面的数,那么称这两个元素构成一个逆序。一个排列中所逆序的总个数#称为这个排列的逆序数。#1def sum(str): n=len(str) ans=0 for i in range(n): for j in range(i): if str[j]>str[i]: ans+=1 return anss= inpu原创 2021-10-22 20:34:03 · 3013 阅读 · 0 评论 -
算法设计与分析学习笔记(4)-分治算法
算法理解:分治算法一般的求解过程可以分为三个步骤:分解、求解、合并分解:原问题可以分解为多个子问题,这些子问题与原问题相比,只是问题的规模有所降低,其结构和求解方法与原问题相同或相似。求解:对划分好的子问题进行求解:原问题在分解过程中,递归地求解子问题由于递归都必须有一个终止条件,因此,当分解后的子问题规模足够小时,应能够直接求解。合并:应能够采用某种方式、方法合并或构造出原问题的解。在分治策略中,由于子问题与原问题在结构和解法上的相似性,用分治方法解决的问题,大都采用了递归的形式。在各种排序方法中原创 2021-04-11 13:21:26 · 577 阅读 · 1 评论 -
算法设计与分析学习笔记(3)贪心算法
贪心思想:贪心算法要求不从全局看待问题,先从当前子问题找点最优解,那么如果子问题都是最优的选择,一定能找到全局最优的结果。因此贪心算法可以很有用,贪心算法既是很容易理解的算法,又是不容易理解的算法,因为贪心策略的选择因人而异。贪心算法讲究的是当前子问题的最优解,所以寻找贪心算法的最优策略时就要有“走一步,看一步”这样的心理状态,如果能找到子问题的最优解,那么再从全局观察,加以简单的证明,那么就可以确认选择了最优的策略,那么我们就可以去使用这种策略去解决问题了。重难点:题目是否可以使用贪心法去考虑,如果使原创 2021-04-11 13:07:33 · 233 阅读 · 0 评论 -
算法设计与分析学习笔记(2)n皇后问题-dfs回溯
。。。原创 2021-04-11 12:52:50 · 257 阅读 · 0 评论 -
python(11)——matplotlib数据可视化
预备知识matplotlib是一个Python 2D绘图库,它可以在各种平台上以各种硬拷贝格式和交互式环境生成出具有出版品质的图形。 Matplotlib可用于Python脚本,Python和IPython shell,Jupyter笔记本,Web应用程序服务器和四个图形用户界面工具包。Matplotlib试图让简单的事情变得更简单,让无法实现的事情变得可能实现。 只需几行代码即可生成绘图,直方图,功率谱,条形图,错误图,散点图等。为了简单绘图,pyplot模块提供了类似于MATLAB的界面,特别是与I原创 2021-01-31 01:45:11 · 359 阅读 · 1 评论 -
python(10)——pandas数据分析
Pandas 是Python的数据处理包,全名:Python Data Analysis Library,Pandas 是非常著名的开源数据处理库,我们可以通过它完成对数据集进行快速读取、转换、过滤、分析等一系列操作。Pandas库是基于Numpy库来创建的,Numpy主要用于矩阵操作,而Pandas主要用于数据处理。支持多种数据格式,甚至包括excel和SQL数据库;数据对齐,缺失数据处理,数据排序等常规数据整理操作;基于标签的数据集操作,包括切片和采样等;高性能的merge和join操作;支持时序数据操原创 2021-01-31 01:38:44 · 7110 阅读 · 0 评论 -
python(9)——numpy多维数组和矩阵计算
NumPy(Numerical Python)是 Python 语言的一个扩展程序库。其中提供了许多向量和矩阵操作,能让用户轻松完成最优化、线性代数、积分、插值、特殊函数、傅里叶变换、信号处理和图像处理、常微分方程求解以及其他科学与工程中常用的计算,不仅方便易用而且效率更高。NumPy 是一个开源的Python科学计算基础库,是SciPy、Pandas等数据处理或科学计算库的基础。拥有一个类似于列表的、强大的N维数组对象ndarray,它描述了相同类型的元素的集合。具有实用的线性代数、傅里叶变换和随机生成原创 2021-01-31 01:32:09 · 4874 阅读 · 0 评论 -
python(8)——面向对象编程
1.定义一个学校人员类SchoolPerson,其中,属性:姓名name、性别sex、年龄age;方法:设置人员的各个属性的set_info方法;获取各属性值的get_info方法。定义好类以后,再定义2个人员进行测试。class SchoolPerson: name='' sex='' age=0 def set_info(self,name,sex,age): self.name=name self.sex=sex原创 2021-01-31 01:23:24 · 3368 阅读 · 0 评论 -
python(6)——装饰器的定义和使用
1.阅读下面的程序,分析代码能否编译通过。如果能编译通过,请列出运行结果,并说明原因;否则说明编译失败的原因。程序1:def funX():x=5def funY():nonlocal xx+=1return xreturn funYa=funX()print(a())print(a())print(a())def funX(): x=5 def funY(): nonlocal x#定义在闭包里 x+=1 retur原创 2021-01-31 00:30:09 · 362 阅读 · 0 评论 -
python(5)——函数的定义和使用
1.根据输入参数(行数)不同,输出下面图形*********def f(n): for i in range(1,n+1): print("{}{}".format(" "*(n-i),"*"*(i*2-1)))a=int(input("请输入行数:"))f(a)2.编写函数,接收一个包含若干整数的列表参数lst,返回一个元组,其中第一个元素为列表lst中的最小值,其余元素为最小值在列表lst中的下标。#1def gettuple(lst): min_原创 2021-01-31 00:24:24 · 736 阅读 · 3 评论 -
python(4)——列表、元组、字典的使用
1.编写程序,输入任意大的自然数,输出各位数字之和。a=input("请输入自然数:")print(sum(map(int ,a))2.编写程序,输入两个集合 setA 和 setB,分别输出它们的交集、并集和差集 setA-setB。set_a=set('hello my friend')set_b=set('how are you')print(set_a&set_b)print(set_a|set_b)print(set_a-set_b)3.编写程序,输入一个自然数,输出原创 2021-01-31 00:16:28 · 466 阅读 · 0 评论 -
python(3)——字符串简单操作
1.输入一行字符,编程统计其中有多少个单词。假设单词之间以空格隔开。#1s=(input("输入字符串:"))count=0for i in s: if (ord(i)>=97 and ord(i)<=122) or(ord(i)>=65 and ord(i)<=90): count=count+1print(count)#2s=input("请输入字符串:")num,t,space,d=0,0,0,0for i in s: if i.原创 2021-01-31 00:03:12 · 260 阅读 · 1 评论 -
python (2)——循环控制小例子
1.编写程序实现输入x,y,判断属于第几象限。x=int(input("请输入横坐标的值:"))y=int(input("请输入纵坐标的值:"))if x>0 and y>0: print("x,y位于第一象限!")elif x<0 and y>0: print("x,y位于第二象限!")elif x<0 and y<0: print("x,y位于第三象限!")elif x>0 and y<0: print("x,原创 2021-01-30 23:56:06 · 414 阅读 · 1 评论 -
python爬虫框架——scrapy(3) scrapy中间件
此文主要是按照上一篇的介绍能够定制爬虫项目中间件,scrapy框架里面的代码和基本和上一篇的相同,这里进行一一介绍。这是scrapy框架的流程图(scrapy原理,安装方法都在上一篇)接下来我们进行中间件的定制。(这是打开后的样子,里已经有了scrapy框架的各种组件,只要我动手写代码就可以进行爬虫)(这是按照我们的要求的自定义中间件文件面里面有中间件的python文件,暂时还没有代码)为了便与学习,我们仍然采用上一篇的实战网站。(https://www.tipdm.org)(1)编写爬虫原创 2021-01-25 03:23:15 · 415 阅读 · 0 评论 -
python爬虫框架——scrapy(1)scrapy爬虫框架介绍
导语:(python语言中存在众多的爬虫框架,本文及接下来的几篇都只介绍scrapy框架)一:整理scrapy爬虫框架组件的各种知识,了解爬虫机制的原理1.scrapy架构:各个组件:引擎(EGINE)引擎负责控制系统所有组件之间的数据流,并在某些动作发生时触发事件。有关详细信息,请参见上面的数据流部分.调度器(SCHEDULER)用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL的先级队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址原创 2021-01-25 02:37:48 · 892 阅读 · 0 评论