python
gaishi_hero
精通cop
展开
-
正则表达式中的*?, +?, ??
正则表达式中的'*', '+', 和'?'限定符都使用了“贪婪”的匹配模式;也就是说他们会匹配尽可能长的字符串。但这种模式有时候不是我们所需要的,所以就需要将“贪婪”匹配模式改为“非贪婪”;具体的做法就是在后面紧跟上一个'?'字符。举个具体的例子:如果用正则表达式<.*>来匹配'<a> b <c>',匹配的结果将会是整个字符串,而不是'<a>';...原创 2018-07-01 16:36:51 · 704 阅读 · 0 评论 -
从python中的一些特殊方法讲到pytorch的官方例子mnist(主要针对pytorch的自定义dataset中的几个特殊函数进行说明)
__str__(self)该方法中必须有一个return调用该方法的时机是print对象时return的内容就是print打印的内容__repr__(self)该方法与__str__(self)方法一样都是打印时调用的其中也必须含有return下面用pytorch官方例子mnist来进行说明:#每一个自定义的dataset都必须继承类torch.utils.da...原创 2018-08-24 17:10:48 · 1881 阅读 · 6 评论 -
深入理解Python的动态语言特性与多态
Python是门动态语言动态体现在能够在程序运行过程中对变量类型进行修改。例如下面这个例子:a = 100print(a)def test(): print(&quot;---test---&quot;)a = testa()运行结果如下。原来a指向一个整形数据类型,在程序运行至后面的代码,a又指向了一个函数体,这就是动态的体现。100---test---动...原创 2018-08-19 16:09:56 · 924 阅读 · 0 评论 -
正确理解和掌握Python的闭包和装饰器
闭包定义函数跟定义变量一样,都是一个引用指向了变量值或者函数体存储的位置,所以如果将函数名通过等于号赋值给了另外一个变量名,那么此时该变量名就具有了调用该函数的能力。在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用,这样就构成了一个闭包。下面通过代码展示闭包:def test(number): print("---1---"...原创 2018-08-19 16:06:35 · 664 阅读 · 0 评论 -
详细全面解释Python中的迭代器和生成器
生成器列表生成式能够生成列表,但是如果需要的列表较大,占用的内存空间就会很大,这时就会需要生成器。生成器保存了生成每个元素的计算方式,需要用时再生成某个元素,从而节省了大量的内存空间。生成器的第一种创建方式:将列表生成式最外面的中括号改为圆括号。通过next(generator_object_name)就能够每次让生成器生成一个值。下面举例说明:&amp;amp;gt;&amp;amp;gt;&amp;amp;gt; a =...原创 2018-08-19 16:02:45 · 290 阅读 · 0 评论 -
Python中私有化以及property的使用
私有化当一个模块中的全局变量名、函数名、类名前面加上一个或者两个下划线时,其他模块通过from module_name import *不能将其导入;但通过import module_name依然可以导入。类中的私有方法或者私有属性之所以在外面不能调用是因为Python的名字重整机制(在原来的名前面添加了前缀)。property的使用当类中属性定义为私有属性时,往往需要两个函数...原创 2018-08-19 15:57:42 · 396 阅读 · 0 评论 -
Python中各种进制的表示与转换以及位运算
原码、反码和补码正数:原码=反码=补码负数:反码=符号位不变,其他位取反;补码=反码+1负数补码转源码:符号位不变,其他位取反,最后再+1存储数据是以补码的形式各种进制的表示与转换0b开头的表示二进制,bin()可以将10进制转为2进制,如bin(18)0o开头的表示8进制,oct()可以将10进制转为8进制,如oct(18)0x开头的表示16进制,hex()可以将...原创 2018-08-19 15:54:01 · 1744 阅读 · 0 评论 -
Python的==与is、深拷贝与浅拷贝、copy与deepcopy
==与is==用来比较两个对象是否相等(相等不是相同),即比较内容is用来比较两个引用是否指向了同一对象,即比较引用下面举一个例子:a = [1,2,3]b = [1,2,3]c = aprint(a == b)#输出Trueprint(a is b)#输出为Falseprint(a is c)#输出为Trueprint(a == c)#输出为True深拷贝...原创 2018-08-19 15:51:45 · 296 阅读 · 0 评论 -
Python的模块、包以及全局变量__all__
模块一个Python文件就是一个模块。模块被导入时,该Python文件会被从头到尾执行一次。所以被导入的模块不应该有直接可以被执行的语句。如果是测试的需要就将这些语句写在一个判断语句下:if __name__ == "__main__"。导入模块时,首先搜索的是当前路径下有没有该模块,然后再在系统路径查找,所以不应该取与系统模块名称相同的模块名字。包一个文件夹下面有一个名...原创 2018-08-15 20:12:20 · 1900 阅读 · 0 评论 -
Python列表生成式以及字典的键的数据类型
列表生成式list = [i for i in range(10)]#for用来表示循环生成元素的个数。list = [(i,j) for i in range (3) for j in range(2)]#后一个for嵌套于前一个for循环之中。list = [i for i in range(10) if i%2==0]#满足后面的if语句,才保留生成的元素。字典的键的类型...原创 2018-08-15 20:03:48 · 3680 阅读 · 0 评论 -
Python面向对象的相关概念
私有方法、私有属性通过在类方法前面加上双下划线来将该方法私有化。属性的私有化同理。私有方法不能在外面通过类的对象来直接访问,只能被类的其他方法调用。主要用途在于能够将一些比较重要的函数隐藏起来,而通过间接的方式被外界访问到。在继承过程中,私有方法和私有属性不能够被子类使用,但是有一种情况例外,也就是当所继承父类的公有方法当中使用了父类的私有方法和私有属性时。这也侧面说明了继承的本质不是...原创 2018-08-15 19:54:48 · 149 阅读 · 0 评论 -
Python函数调用时的实参与函数定义时的形参前加单星号(*)和双星号(**)
不定长参数*args和**kwargs(形参前面的*和**)*args和**kwargs都是函数定义时的形参,用来接收未知个数的实参(可以为0个)。*args将多余的变量以元组的形式接收。**kwargs将多余的命名参数(即带有变量名的实参)以字典的形式接收,其中字典的键为命名参数的变量名,值为命名参数的值。拆包(实参前面的*和**)上面的*和**都是加在形参的前面,表示不定...原创 2018-08-15 17:10:38 · 5175 阅读 · 0 评论 -
Python中的一些特殊方法以及单例对象
str(self)方法该方法写在类的定义之中,用于描述对象的基本信息。该方法中必须有return,其内容就是调用后返回的结果。该方法不像普通方法的调用那样通过 instancename.str()来调用,而是print(instancename)时打印出该方法return的内容。del(self)方法该方法写在类的定义之中,是对象在被销毁时自动调用的方法。销毁会发生在:...原创 2018-08-15 16:51:12 · 229 阅读 · 0 评论 -
Python读文件
Python读文件一般有三种方式:f = open("test.py","r")#第一种方式content = f.read() #全部读取content = f.read(2) #读取两个字节#第二种方式content = f.readline() #读取一行#第三种方式content = f.readlines() #读取每一行,并将其形成一个列表f.close()...原创 2018-08-15 16:40:18 · 282 阅读 · 0 评论 -
Python模块的发布与安装
首先在已经完善的包的同一路径下创建文件setup.py。文件中写入如下代码:from distutils.core import setupsetup(name="module_name", version="1.0", description="add some information", author="gaishi_hero", py_mod原创 2018-08-15 10:46:33 · 255 阅读 · 0 评论 -
pandas中强大的绘制图表功能——DataFrame.hist(),以及统计分析函数——DataFrame.describe()
pandas中具有很多很强大的图表绘制功能,今天介绍一个简单好用的绘制数据框DataFrame中某一列数据分布直方图的函数——DataFrame.hist(),顺便介绍一个统计分析函数DataFrame.describe()。下面通过代码进行展示效果,示例代码中的csv文件是谷歌提供的一个包含加利福尼亚州住房数据的文件。import pandas as pdcalifornia_ho...原创 2018-08-05 18:59:07 · 39075 阅读 · 3 评论 -
随机打乱数据框DataFrame中行的顺序
数据框(DataFrame)是pandas中一种重要的数据结构,你可以将其想象为一个关系型数据表格,其中包含多个行和已命名的列。可以通过字典的方式创建DataFrame,示例代码如下:import pandas as pdcity_names = pd.Series(['San Francisco', 'San Jose', 'Sacramento'])population = pd....原创 2018-08-05 17:57:38 · 17626 阅读 · 1 评论 -
详解python中pickle模块的一些函数
pickle模块是python中用来讲Python对象序列化和解序列化的一个工具。“pickling”是将Python对象转化为字节流的过程,而“unpickling”是相反的过程(将来自“binary file或bytes-like object”的字节流反转为对象的过程)。5种协议Protocol version 0 是最原始一种协议,它向后与以前的Python版本兼容。...翻译 2018-08-24 20:52:55 · 6165 阅读 · 0 评论