![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python基础
墨飏韶年
leetcode:https://leetcode-cn.com/problemset/all/
展开
-
python里使用正则的finditer()函数
在前面学习了findall()函数,它可以一次性找到多个匹配的字符串,但是不能提供所在的位置,并且是一起返回的,如果有数万个一起返回来,就不太好处理了,因此要使用finditer()函数来实现每次只返回一个,并且返回所在的位置,如下例子:import re text = 'http://blogcsdn.net/caimouse abbaaabbbbaaaaa' pattern = 'a...转载 2019-03-22 19:53:08 · 928 阅读 · 0 评论 -
python列表
列表在Python中,列表是一个有序的序列。列表用一对 [] 生成,中间的元素用 , 隔开,其中的元素不需要是同一类型,同时列表的长度也不固定。空列表可以用 [] 或者 list() 生成: 列表操作与字符串类似,列表也支持以下的操作:长度用 len 查看列表长度: 加法和乘法列表加法,相当于将两个列表按顺序连接: 列表与整数相乘,相当于...原创 2018-08-10 14:08:15 · 206 阅读 · 0 评论 -
python索引和分片
索引对于一个有序序列,可以通过索引的方法来访问对应位置的值。字符串便是一个有序序列的例子,Python使用 [] 来对有序序列进行索引。Python中索引是从 0 开始的,所以索引 0 对应与序列的第 1 个元素。为了得到第 5 个元素,需要使用索引值 4 。 除了正向索引,Python还引入了负索引值的用法,即从后向前开始计数,例如,索引 -2 表示倒数第 2 个元素:...原创 2018-08-10 10:37:23 · 322 阅读 · 0 评论 -
You are using pip version 10.0.1, however version 18.0 is available. You should consider upgrading v
原创 2018-08-01 10:07:58 · 10005 阅读 · 0 评论 -
python字符串
生成字符串Python中可以使用一对单引号''或者双引号""生成字符串。简单操作字符串方法Python是一种面向对象的语言,面向对象的语言中一个必不可少的元素就是方法,而字符串是对象的一种,所以有很多可用的方法。跟很多语言一样,Python使用以下形式来调用方法:对象.方法(参数)分割s.split()将s按照空格(包括多个空格,制表符\t,换行符\n等)...原创 2018-08-09 15:37:10 · 149 阅读 · 0 评论 -
python数字
整型 Integers整型运算,加减乘:在Python 2.7中,整型的运算结果只能返回整型,除法的结果也不例外。例如12 / 5返回的结果并不是2.4,而是2:但是在python3里面返回的是结果是2.4幂指数: 取余: 赋值给变量:使用type()函数来查看变量类型:整型数字的最大最小值:在 32 位系统中,一个整型 4 个字节,...原创 2018-08-09 14:40:13 · 262 阅读 · 0 评论 -
Python 数据类型
常用数据类型 Common Data Types类型 例子 整数 -100 浮点数 3.1416 字符串 'hello' 列表 [1, 1.2, 'hello'] 字典 {'dogs': 5, 'pigs': 3} Numpy数组 array([1, 2, 3]) 其他类型 Others类型 例子 长整型 ...原创 2018-08-09 13:52:30 · 137 阅读 · 0 评论 -
python上下文管理之基于生成器的实现
我们还可以用装饰器(decorators)和生成器(generators)来实现上下文管理器。Python有个contextlib模块专门用于这个目的。我们可以使用一个生成器函数来实现一个上下文管理器,而不是使用一个类。让我们看看一个基本的,没用的例子:from contextlib import contextmanager@contextmanagerdef open_file...原创 2018-07-31 09:54:18 · 285 阅读 · 0 评论 -
python上下文管理器之处理异常
处理异常我们还没有谈到__exit__方法的这三个参数:type, value和traceback。在第4步和第6步之间,如果发生异常,Python会将异常的type,value和traceback传递给__exit__方法。它让__exit__方法来决定如何关闭文件以及是否需要其他步骤。在我们的案例中,我们并没有注意它们。那如果我们的文件对象抛出一个异常呢?万一我们尝试访问文件对象的...原创 2018-07-31 09:52:31 · 778 阅读 · 0 评论 -
python的上下文管理器
上下文管理器允许你在有需要的时候,精确地分配和释放资源。使用上下文管理器最广泛的案例就是with语句了。想象下你有两个需要结对执行的相关操作,然后还要在它们中间放置一段代码。上下文管理器就是专门让你做这种事情的。举个例子:with open('some_file', 'w') as opened_file: opened_file.write('Hola!')上面这段代...原创 2018-07-31 09:50:27 · 175 阅读 · 0 评论 -
python里面的*args 和 **kwargs
我观察到,大部分新的Python程序员都需要花上大量时间理解清楚 *args 和**kwargs这两个魔法变量。那么它们到底是什么?首先让我告诉你, 其实并不是必须写成*args 和**kwargs。 只有变量前面的 *(星号)才是必须的. 你也可以写成*var 和**vars. 而写成*args 和**kwargs只是一个通俗的命名约定。 那就让我们先看一下*args吧。*args 的用...原创 2018-07-31 09:41:49 · 282 阅读 · 1 评论 -
Python 生成器以及应用
一、定义可以理解为一种数据类型,这种数据类型自动实现了迭代器协议(其他的数据类型需要调用自己内置的__iter__方法),所以生成器就是可迭代对象二、生成器的两种形式(Python有两种不同的方式提供生成器)1.生成器函数:常规函数定义,但是,使用yield语句而不是return语句返回结果。yield语句一次返回一个结果,在每个结果中间,挂起函数的状态,以便下次重它离开的地方继续执行...转载 2018-07-30 15:54:48 · 933 阅读 · 0 评论 -
彻底理解Python中的yield
阅读别人的python源码时碰到了这个yield这个关键字,各种搜索终于搞懂了,在此做一下总结:通常的for...in...循环中,in后面是一个数组,这个数组就是一个可迭代对象,类似的还有链表,字符串,文件。它可以是mylist = [1, 2, 3],也可以是mylist = [x*x for x in range(3)]。 它的缺陷是所有数据都在内存中,如果有海量数据的话将会非常耗内存...转载 2018-07-30 15:40:34 · 199 阅读 · 0 评论 -
Python yield 使用浅析
您可能听说过,带有 yield 的函数在 Python 中被称之为 generator(生成器),何谓 generator ?我们先抛开 generator,以一个常见的编程题目来展示 yield 的概念。如何生成斐波那契數列斐波那契(Fibonacci)數列是一个非常简单的递归数列,除第一个和第二个数外,任意一个数都可由前两个数相加得到。用计算机程序输出斐波那契數列的前 N 个数是一...转载 2018-07-30 15:26:28 · 80 阅读 · 0 评论 -
深入理解yield
yield的英文单词意思是生产,刚接触Python的时候感到非常困惑,一直没弄明白yield的用法。只是粗略的知道yield可以用来为一个函数返回值塞数据,比如下面的例子: 1 2 3 def addlist(alist): for i in alist: yield i + 1 取出alist...原创 2018-07-30 15:09:59 · 270 阅读 · 0 评论 -
python可变和不可变类型
列表是可变的(Mutable)1)索引改变2)方法改变字符串是不可变的(Immutable)通过索引改变会报错字符串方法只是返回一个新字符串,并不改变原来的值如果想改变字符串的值,可以用重新赋值的方法 数据类型分类:可变数据类型 不可变数据类型 list, dictionary, set, numpy array, user defined obj...原创 2018-08-10 14:20:53 · 3078 阅读 · 0 评论 -
python元组
基本操作与列表相似,元组Tuple也是个有序序列,但是元组是不可变的,用()生成,可以索引,切片,但是元组是不可变的单个元素的元组生成由于()在表达式中被应用,只含有单个元素的元组容易和表达式混淆,所以采用下列方式定义只有一个元素的元组: 将列表转换为元组:元组方法由于元组是不可变的,所以只能有一些不可变的方法,例如计算元素个数 count 和元素位置 inde...原创 2018-08-10 14:39:57 · 164 阅读 · 0 评论 -
python列表与元组的速度比较
列表与元组的速度比较IPython 中用 magic 命令 %timeit 来计时。比较生成速度可以看到,元组的生成速度要比列表的生成速度快得多,相差大概一个数量级。 比较遍历速度产生内容相同的随机列表和元组:在遍历上,元组和列表的速度表现差不多。比较遍历和索引速度:元组的生成速度会比列表快很多,迭代速度快一点,索引速度差不多...原创 2018-08-10 14:51:33 · 4499 阅读 · 0 评论 -
python随机种子
python随机种子seed( ) 用于指定随机数生成时所用算法开始的整数值,如果使用相同的seed( )值,则每次生成的随即数都相同,如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间差异而不同。随机种子只会作用到一个函数上,如np.random.seed(0)print(np.random.rand(3))print(np.random.rand(3))1...原创 2019-01-22 10:02:30 · 1031 阅读 · 0 评论 -
python For 循环 三种遍历方式
array = ["a","b","c"]for item in array: print(item)for index in range(len(array)): print(str(index)+".."+array[index])for index,val in enumerate(array): print(str(index)+"--"+va...转载 2019-01-14 11:05:21 · 4056 阅读 · 0 评论 -
python map函数
map()函数map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。例如,对于list [1, 2, 3, 4, 5, 6, 7, 8, 9]如果希望把list的每个元素都作平方,就可以用map()函数:因此,我们只需要传入函数f(x)=x*x,就可以利用map()...原创 2019-01-13 21:23:13 · 332 阅读 · 0 评论 -
详解正则表达式匹配算法原理
注意:关于正则表达式的规则,网上内容已经很多了。所以本文不讲述正则表达式的规则,只讲其背后的算法原理。1. 引入正则表达式,Regular Expression,使用单个字符串来描述、匹配一系列满足某种句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。最常见的,比如“.”,其中“.”表示匹配除“\n”之外的任何单个字符,“”表示匹配前面的子...转载 2018-09-28 17:23:29 · 719 阅读 · 0 评论 -
No package python-pip available. 解决方法
在CentOS下需要用到pip,安装pip包,输入yum install python-pip,提示No package python-pip available.Error: Nothing to do因为没有此rpm包,此包包含在epel源里面输入rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-...原创 2018-09-26 14:32:49 · 2203 阅读 · 0 评论 -
python写入文件自动换行问题
现在需要一个写文件方法,将selenium的脚本运行结果写入test_result.log文件中首先创建写入方法def write_result(str): writeresult=file(r'D:\eclipse4.4.1 script\my_selenium\model\test_result.log','a+') str1=writeresult.write...转载 2018-09-11 13:00:46 · 15843 阅读 · 0 评论 -
Python3 isinstance() 函数
Python3 isinstance() 函数描述isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。isinstance() 与 type() 区别: type() 不会认为子类是一种父类类型,不考虑继承关系。 isinstance() 会认为子类是一种父类类型,考虑继承关系。 如果要判断两个类型是否相同推荐使用 isinsta...原创 2018-08-28 17:02:06 · 395 阅读 · 0 评论 -
python distribute包管理工具安装AttributeError错误
distribute是python的包管理工具,是setuptools的替代品。 Distribute是对标准库disutils模块的增强,我们知道disutils主要是用来更加容易的打包和分发包,特别是对其他的包有依赖的包。 在安装过程中无论是通过下载distribute安装包,使用setup.py install安装;还是使用pip install distribute安装,...原创 2018-08-20 13:34:01 · 1842 阅读 · 0 评论 -
Python 入门演示
简单的数学运算整数相加,得到整数浮点数相加,得到浮点数:整数和浮点数相加,得到浮点数:变量赋值Python使用<变量名>=<表达式>的方式对变量进行赋值字符串 String字符串的生成,单引号与双引号是等价的:字符串的加法:字符串索引:字符串的分割:查看字符串的长度:列表 ListPyt...原创 2018-08-07 15:48:08 · 620 阅读 · 0 评论 -
Ipython 解释器
进入ipython通常我们并不使用Python自带的解释器,而是使用另一个比较方便的解释器——ipython解释器,命令行下输入:ipython即可进入ipython解释器。所有在python解释器下可以运行的代码都可以在ipython解释器下运行:In [1]:print "hello, world"hello, world可以进行简单赋值操作:...原创 2018-08-07 13:45:12 · 501 阅读 · 0 评论 -
Python 简介
Python 历史Python 的创始人为荷兰人吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为 ABC 语言的一种继承。之所以选中 Python 作为程序的名字,是因为他是 BBC 电视剧——蒙提·派森的飞行马戏团(Monty Python's Flying Circus)的爱好者。19...原创 2018-08-07 13:41:52 · 357 阅读 · 0 评论 -
Python 赋值机制
先看一个例子:改变变量x的值,变量y的值也随着改变,这与Python内部的赋值机制有关简单类型先来看这一段代码在Python中的执行过程。x = 500y = xy = 'foo'x = 500Python分配了一个 PyInt 大小的内存 pos1 用来储存对象 500 ,然后,Python在命名空间中让变量 x 指向了这一块内存,注意,整数是不可变类型,所以这...原创 2018-08-10 16:48:10 · 1382 阅读 · 0 评论 -
python不可变集合
不可变集合对应于元组(tuple)与列表(list)的关系,对于集合(set),Python提供了一种叫做不可变集合(frozen set)的数据结构。使用 frozenset 来进行创建:与集合不同的是,不可变集合一旦创建就不可以改变。不可变集合的一个主要应用是用来作为字典的键,例如用一个字典来记录两个城市之间的距离:由于集合不分顺序,所以不同顺序不会影响查阅结果:...原创 2018-08-10 16:23:12 · 2405 阅读 · 0 评论 -
python 集合
之前看到的列表和字符串都是一种有序序列,而集合 set 是一种无序的序列。因为集合是无序的,所以当集合中存在两个同样的元素的时候,Python只会保存其中的一个(唯一性);同时为了确保其中不包含同样的元素,集合中放入的元素只能是不可变的对象(确定性)。集合生成可以用set()函数来显示的生成空集合:也可以使用一个列表来初始化一个集合: 集合会自动去除重复元素 1。可...原创 2018-08-10 16:15:58 · 142 阅读 · 0 评论 -
python字典
字典 dictionary ,在一些编程语言中也称为 hash , map ,是一种由键值对组成的数据结构。顾名思义,我们把键想象成字典中的单词,值想象成词对应的定义,那么——一个词可以对应一个或者多个定义,但是这些定义只能通过这个词来进行查询。基本操作空字典Python 使用 {} 或者 dict() 来创建一个空的字典:有了dict之后,可以用索引键值的方法向...原创 2018-08-10 15:37:45 · 604 阅读 · 0 评论 -
python ctypes 探究 ---- python 与 c 的交互
近几天使用 python 与 c/c++ 程序交互,网上有推荐swig但效果都不理想,所以琢磨琢磨了 python 的 ctypes 模块。同时,虽然网上有这方面的内容,但是感觉还是没说清楚。这里记录下来做备用,同时也给广大 python with c/c++ 派留给方便。如果你觉得我写的不好,可以参考官方文档里对 ctypes 的介绍,那里说不一定有你想要的。如有错误,请指正:)。测试环...转载 2018-07-30 14:10:22 · 153 阅读 · 0 评论 -
Python调用C语言
Python中的ctypes模块可能是Python调用C方法中最简单的一种。ctypes模块提供了和C语言兼容的数据类型和函数来加载dll文件,因此在调用时不需对源文件做任何的修改。也正是如此奠定了这种方法的简单性。示例如下实现两数求和的C代码,保存为add.c //sample C file to add 2 numbers - int and floats#include...原创 2018-07-30 13:54:22 · 371 阅读 · 0 评论 -
Unofficial Windows Binaries for Python Extension Packages
https://www.lfd.uci.edu/~gohlke/pythonlibs/原创 2018-06-27 11:06:21 · 155 阅读 · 0 评论 -
windows下python操作mysql模块安装
pip install mysqldb这在我的电脑上安装失败: Could not find a version that satisfies the requirement mysqldb (from versions: )No matching distribution found for mysqldb所以应该:pip install MySQL-python报错:error: Mic...转载 2018-06-27 10:23:12 · 201 阅读 · 0 评论 -
Python正则表达式指南
1. 正则表达式基础1.1. 简单介绍正则表达式并不是Python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大。得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于不同的编程语言实现支持的语法数量不同;但不用担心,不被支持的语法通常是不常用的部分。如果已经在其他语言里使用过正则表...原创 2018-06-26 10:15:15 · 100 阅读 · 0 评论 -
python中时间操作总结
一、time 二、datetime1.获取当前系统时间 datenow = datetime.datetime.now()2.将datetime格式的时间转换成str datenow = datenow.strftime("%Y-%m-%d") 或datenow = datetime.datetime.strftime(datenow, "%Y-%m-%d")3.将str格式的时间转换成dat...原创 2018-06-19 06:57:44 · 580 阅读 · 0 评论 -
python字符串处理技巧
1. 调整字符串中文本的格式"""把"yyyy-mm-dd" 改为 "yyyy/mm/dd"解决方法:使用正则表达式re.sub()方法做字符串替换,利用正则表达式的捕获组(加括号),抓获每个部分内容,在替换字符串中调整各个捕获组的顺序re.sub('正则表达式', '(使用原始字符串,转义)组1\组2\...', 文本)参数2:月/日/年的形式输出。"""# log = open...转载 2018-06-19 01:19:05 · 112 阅读 · 0 评论