
Python
文章平均质量分 56
zhuzuwei
这个作者很懒,什么都没留下…
展开
-
linux部署Python项目,并解决依赖自定义模块报错问题
背景:windows中使用pycharm完成python项目,需在linux部署。原创 2022-08-08 09:50:38 · 1019 阅读 · 1 评论 -
Python编程学习1:python函数传参是传值还是传递引用?注意可变对象和不可变对象之间的区别
今天面试被问了一个问题:python函数传参是传值还是传递引用?虽然我知道是传递引用,但是不能深入理解,所以回来就做了一些测试加深理解。1. 当参数是不可变对象时def test(b): print("对参数b进行操作前") print("参数的id:",id(b)) b += 2 print("对参数b进行操作后") print("参数的id:",id(b...原创 2018-05-31 20:55:53 · 1478 阅读 · 0 评论 -
Python编程学习11:set集合和frozenset详解
python列表 list 详解pyton元组 tuple 详解python字典 dict 详解1. 创建集合: 注意a = {}创建的是字典,只有里面放入元素,用逗号隔开才是集合,也可以使用set()进行强制转换创建集合。a = {}b = {1,2,3,5,8}c = set({})d = set([1,2,3,5,8])print(type(a))print(type(b)...原创 2018-06-07 11:45:01 · 2970 阅读 · 0 评论 -
Python编程学习10:lambda表达式和filter,map函数的使用
1. lambda 表达式 (1) 优点: a. 在写一些简单函数时,可以省下定义函数的过程,使得代码更加精简 ,同时也简化了代码的可读性 b. 对于一些比较抽象并且只需要调用一两次的函数,有时候给函数取名字也比较头疼,使用lambda就不用给函数命名了 (2) 实例: lambda表达式返回一个函数,如下例,冒号前的x,y是要接收的两个参数,冒号后...原创 2018-06-06 08:59:27 · 2011 阅读 · 0 评论 -
Python编程学习9:Python字典使用详解(创建字典,访问字典,修改字典,字典排序)
字典反映的是一种映射关系,由键值对组成,键的取值唯一,不可重复。需注意键的取值必修是不可变的,如字符串,int型整数,使用列表等可变变量会出错。1. 创建字典: (1)直接使用dict1 = {key1:value1, key2=value2} 形式 (2)使用dict1 = dict(key1=value1, key2=value2) 形式,注意使用此形式时,key不可直接使用数字,否...原创 2018-06-05 10:27:18 · 961 阅读 · 0 评论 -
Python编程学习8:python函数详解
1. 函数的形参和实参: 定义函数时的参数为形参,调用函数时的参数为实参。下例中,para1为形参,10为实参def func1(para1): area = 3.14*para1**2 return areas = func1(10)print(s)314.02. 函数文档:写函数文档是个好习惯。函数文档可以让别人更好地理解自己的函数,注意和注释是有区别的。可以使用func...原创 2018-06-04 21:29:19 · 464 阅读 · 1 评论 -
Python编程学习13:python魔法方法
在python中,有一些内置好的特定的方法(总是被双下划线包围,如__init__),这些方法在进行特定的操作时会自动被调用,称之为魔法方法 1. 构造 __init__ 方法,相当于Java中的构造方法,在实例化的时候会自动调用。__new__方法,在__init__之前被调用,返回的是对象,极少去重写它。当继续一个不可变类型,但是又需要对它进行修改时,可以重新__new__ ...原创 2018-07-10 13:24:14 · 331 阅读 · 0 评论 -
Python编程学习2:Python 中的垃圾回收机制
垃圾回收机制Garbage collection(GC)现在的高级语言如java,c#等,都采用了垃圾收集机制,而不再是c,c++里用户自己管理维护内存的方式。自己管理内存极其自由,可以任意申请内存,但如同一把双刃剑,为大量内存泄露,悬空指针等bug埋下隐患。对于一个字符串、列表、类甚至数值都是对象,且定位简单易用的语言,自然不会让用户去处理如何分配回收内存的问题。python里也同java一样采...转载 2018-06-01 08:49:01 · 211 阅读 · 0 评论 -
Python编程学习3:Python 对象引用和 del 删除引用
面试遇到一个问题:如何删除一个python对象?下面将介绍python的对象引用和 del删除引用1. 首先介绍下python的对象引用1)Python中不存在传值调用,一切传递的都是对象引用,也可以认为是传址调用。即Python不允许程序员选择采用传值或传引用。Python参数传递采用的是“传对象引用”的方式。实际上,这种方式相当于传值和传引用的一种综合。如果函数参数收到的是一个可变对象(比如...转载 2018-06-01 14:42:38 · 11583 阅读 · 0 评论 -
Python编程学习12 : python正则表达式详解
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。Python中的re模块可以方便实现正则表达式。1. re.match函数re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。函数语法:re.match(pattern, string, flags=0)参数描述pattern匹配的正则表达式string要...转载 2018-06-09 11:03:12 · 489 阅读 · 0 评论 -
Python编程学习12:python面向对象编程(一)继承和多态
面向对象的三大特征__init__方法,self,共有和私有(伪私有),子类重写了父类的方法就会将父类的方法覆盖掉。多重继承(慎用),组合:将没有继承关系的类对象放在一起类,类对象(类定义完后就是一个对象,python无处不对象)和实例对象绑定(有实例就是传入self)类中的变量是静态的,只有程序退出时才会删除这些变量...原创 2018-06-11 09:08:33 · 719 阅读 · 0 评论 -
Python多线程的理解和使用(一)Threading中join()函数的理解
1. 多线程的概念多线程类似于同时执行多个不同程序,多线程运行有如下优点:使用线程可以把占据长时间的程序中的任务放到后台去处理。 用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度 程序的运行速度可能加快 在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。在这种情况下我们可以释放一些珍贵的资源如内存...原创 2018-07-16 18:57:10 · 8021 阅读 · 1 评论 -
Python编程学习14:Python日志之logging模块详解
一、logging模块(一)、日志相关概念日志是一种可以追踪某些软件运行时所发生事件的方法。软件开发人员可以向他们的代码中调用日志记录相关的方法来表明发生了某些事情。一个事件可以用一个可包含可选变量数据的消息来描述。此外,事件也有重要性的概念,这个重要性也可以被称为严重性级别(level)。 1、日志的作用通过log的分析,可以方便用户了解系统或软件、应用的运行情况;如果你的应...转载 2018-07-16 19:20:39 · 329 阅读 · 0 评论 -
Python第一次运行分布式计算程序
1. Python第一次运行分布式计算程序.(1) 在Linux终端执行以下命令:cat inputFile.txt | python mrMeanMapper.py(2) 在windows系统下,可以在DOS窗口输入以下命令:Python mrMeanMapper.py < inputFile.txt执行结果如下,但是遇到一些问题:(目前还没找...原创 2017-08-21 10:29:51 · 2261 阅读 · 0 评论 -
Python 多进程multiprocessing模块, Process, 进程池Pool和Queue
1原创 2018-07-05 15:12:23 · 23224 阅读 · 1 评论 -
七月在线笔面试题解析1:python3函数中参数可变的理解
1. 如果传入的参数是不可变类型,则函数中对其进行更改时不影响函数外部该变量的值def test(a): a += 1 return aa = 10b = test(a)print(a)print(b)10112. 如果传入的参数是可变类型,则函数中对其进行更改时会影响函数外部该变量的值def test(a):# a.append(7) a +=...原创 2018-07-06 21:25:50 · 234 阅读 · 0 评论 -
Python编程学习7:tuple元组的使用详解(包括元组大小的比较)
1. 创建元组tuple 可以使用小括号()和逗号结合将元素分开的方式,也可以只使用逗号将元素分开。只有括号没有逗号无法创建元组,注意:只有一个元素是也要使用逗号!t1 = (8,2,'a')t2 = (8)t3 = (8,)t4 = 8,2,'a't5 = 8,print(type(t1),type(t2),type(t3),type(t4),type(t5))<...原创 2018-06-03 17:22:45 · 13410 阅读 · 5 评论 -
Python编程学习6:python浅拷贝和深拷贝的区别
1. python copy实现浅拷贝,deepcopy实现深拷贝通俗的理解:浅拷贝只拷贝父对象,不拷贝父对象内部的子对象;深拷贝不仅考虑父对象,还考虑父对象内部的子对象。示例:list5是origin的浅拷贝,list6是origin的深拷贝。两者分别都拷贝了父对象,即origin, list5, list6的id不一样,说明list5和list6分别将父对象origin拷贝了一份。但是 id(...原创 2018-06-03 16:34:04 · 302 阅读 · 0 评论 -
Python编程学习5:python id()函数和内存分配理解
1. id()函数可返回对象的内存地址python中会为每个对象分配内存,哪怕他们的值完全相等。id(object)函数是返回对象object在其生命周期内位于内存中的地址,id函数的参数类型是一个对象。如下例子:c, d 和 2.0 地址不同,但值相等。c = 2.0d = 2.0print(id(c),id(d),id(2.0))print('c == d:',c==d)print(...原创 2018-06-03 16:33:11 · 26030 阅读 · 12 评论 -
python属性访问
1. 使用特殊函数__getattribute__,__getattr__,__setattr__,__delattr__当想要获得(get)属性时,先访问__getattribute__,如果对象不存在该属性,则继续访问__getattr__当定义或者修改一个属性时,访问__setattr__当删除一个属性时,访问__delattr__>>> class C: def _原创 2017-10-15 12:32:03 · 641 阅读 · 0 评论 -
Python sorted对字典和列表进行排序
1. 按键值对对字典进行排序sorted(iterable,key,reverse),sorted一共有iterable,key,reverse这三个参数。 其中iterable表示可以迭代的对象,例如可以是dict.items()、dict.keys()等,key是一个函数,用来选取参与比较的元素,reverse则是用来指定排序是倒序还是顺序,reverse=true则原创 2017-08-24 07:54:36 · 4521 阅读 · 0 评论 -
filter()函数的用法
help(filter)Help on class filter in module builtins:class filter(object) | filter(function or None, iterable) --> filter object | | Return an iterator yielding those items of iterable for wh原创 2017-10-14 16:19:53 · 27387 阅读 · 1 评论 -
常见的local variable 'x' referenced before assignment问题
def fun1(): x = 5 def fun2(): x *= 2 return x return fun2()如上代码,调用fun1()运行会出错:UnboundLocalError: local variable 'x' referenced before assignment。这是因为对于fun1函数,x是局部变量原创 2017-10-14 15:52:03 · 121236 阅读 · 7 评论 -
python的浅拷贝和深拷贝
如下示例:(1) 从id可以看出,origin和a1的id一样,就是同一个对象,a2,a3,a4的id不一样;但是origin的子对象origin[2]和a1[2],a2[2],a3[2]都一样,和a4[2]不一样。(2) 浅拷贝只拷贝父对象,不会拷贝对象的内部的子对象,修改origin父对象不会影响浅拷贝的a2和a3,修改origin的子对象(列表[4,5])会影响a2和a3。原创 2017-09-22 12:49:49 · 232 阅读 · 0 评论 -
第一次实现单层神经网络
看了吴恩达的课程,按他的公式做了一下编程练习。题目是训练209*64*64*3的209张图片,再预测50*64*64*3的50张图片。代码如下:import numpy as npimport h5py #加载数据集def load_dataset(): train_dataset = h5py.File('datasets/train_catvnonca原创 2017-09-12 22:02:19 · 6275 阅读 · 6 评论 -
python 列表,数组和矩阵sum的用法区别
1. 列表使用sum, 如下代码,对1维列表和二维列表,numpy.sum(a)都能将列表a中的所有元素求和并返回,a.sum()用法是非法的。 但是对于1维列表,sum(a)和numpy.sum(a)效果相同,对于二维列表,sum(a)会报错,用法非法。2. 在数组和矩阵中使用sum: 对数组b和矩阵c,代码b.sum(),np.sum(b),c.sum(),np.sum(c)都原创 2017-09-01 09:50:23 · 60458 阅读 · 0 评论 -
python常用的两个图像处理函数
1. scipy.ndimage.imread(fname,flatten=False): 将图片转换为数组,如果mode默认为‘RGB’,则返回的数组的形状为(height , width, 3)2. matplotlib.pyplot.imshow(image): 将表示图片的(height , width, 3)数组转换为图片并显示出来。原创 2017-09-18 13:20:52 · 6146 阅读 · 0 评论 -
关于python中带下划线的变量和函数 的意义
总结:变量:1. 前带_的变量: 标明是一个私有变量, 只用于标明, 外部类还是可以访问到这个变量2. 前带两个_ ,后带两个_ 的变量: 标明是内置变量,3. 大写加下划线的变量: 标明是 不会发生改变的全局变量函数:1. 前带_的变量: 标明是一个私有函数, 只用于标明,2. 前带两个_ ,后带两个_ 的函数: 标明是特殊转载 2017-10-15 13:48:47 · 1965 阅读 · 0 评论 -
Python的hasattr() getattr() setattr() 函数使用方法详解
hasattr(object, name)判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False。需要注意的是name要用括号括起来 1 >>> class test(): 2 ... name="xiaohua" 3 ... def run(self): 4 ... r转载 2017-10-15 13:49:53 · 835 阅读 · 0 评论 -
Python编程学习4:列表的使用详解(包括列表大小的比较)
1. 创建列表a = [1,2,3,4,5,6,8,0] #列表元素是整数值b = ['合肥工业大学', '在', '屯溪路', '193', '号', ',', '李勇', '在', '这里', '上', '大学'] #列表元素是字符串c = [] #创建空列表d = ['合肥工业大学',193,2018.6,a] #列表元素是混合类型print(a)pri...原创 2018-06-02 21:25:16 · 23849 阅读 · 2 评论 -
np.clip的用法
numpy.clip(a, a_min, a_max, out=None)其中a是一个数组,后面两个参数分别表示最小和最大值,将数组中的元素限制在a_min, a_max之间,大于a_max的就使得它等于 a_max,小于a_min,的就使得它等于a_min。a = np.arange(10)np.clip(a, 1, 8)Out[36]: array([1, 1, 2, 3,原创 2018-04-25 10:31:36 · 7268 阅读 · 0 评论 -
python 获取指定文件夹下所有文件名
使用os模块可以获取指定文件夹下所有文件名,有两个方法os.walk()和os.listdir().(1)os.walk可以用于遍历指定文件下所有的子目录、非目录子文件。import osfilePath = 'C:\\myLearning\\pythonLearning201712\\carComments\\01\\'for i,j,k in os.walk(filePath): ...原创 2018-04-13 11:19:43 · 340420 阅读 · 10 评论 -
python virtualenv和Anaconda创建环境
1. Anaconda创建新的python环境先打开Anaconda,单击左侧的Environments再单击下方的Create图标,即可弹出以下界面。Name是自定义环境的名称,可以选择python3或者python2.7。完成后单击右下方绿色的create,即可完成创建自定义的python环境。2. 使用virtualenv创建python环境(1)管理员身份打原创 2017-12-07 19:28:11 · 3729 阅读 · 0 评论 -
python split使用多个分隔符分割字符串
1. python内建的split()函数只能使用单个分隔符text = '你好!吃早饭了吗?再见。'text.split('!')Out[64]: ['你好', '吃早饭了吗?再见。']text.split('。|!|?')Out[65]: ['你好!吃早饭了吗?再见。']2. re模块的split()函数可以使用多个分隔符对句子进行分割,其中不同的分隔符要用 “|” 隔开。原创 2017-12-24 19:34:50 · 184959 阅读 · 6 评论 -
结合实例总结pandas的部分常用函数
1. df.head(n): 显示数据前n行,不指定n,df.head则会显示所有的行2. df.columns.values获取所有列索引的名称3. df.column_name: 直接获取列column_name的数据4. pd.unique(Series)获取Series中元素的唯一值(即去掉重复的)注意和nunique的区别,nunique只原创 2017-12-14 16:44:40 · 10371 阅读 · 0 评论 -
python模块导入问题和if __name__ == '__main__'语句的使用
1. 导入模块时,如果导入的新模块不在当前模块所在同一路径下,那么直接import会出错。解决办法有:(1)如果当前模块和要导入的模块属于不同的包,但是包的上级路径是一样的,那么可以直接import 包名.模块名,如import myPackeg.myModule(2)可以先将要导入的模块加入sys.path中,再import. 如下示例:导入F:\DeepLearning目录下的test原创 2017-10-16 11:23:16 · 8648 阅读 · 1 评论 -
python可迭代对象和迭代器
1. iter函数iter 函数只是调用对象的__iter__方法,这个方法按照协议会返回一个迭代器,使得for循环这样的语法结构能够进行下去。2. 可迭代对象一个对象实现了__iter__方法,就是实现了__iter__ 方法,就是可以迭代的原创 2017-10-16 08:59:29 · 1019 阅读 · 0 评论 -
Python 矩阵数组和list使用布尔值索引的区别
1. 先来看numpy矩阵,labelsMat ! = retMat语句会对两个矩阵中的每个元素进行比较,返回的boolean型矩阵形状和原矩阵一致。将其作为索引,errorCheck会在为True的位置操作。2. numpy 数组和矩阵没什么区别,可以完成类似操作3. Python列表则有所不同,labelsList != retList会直接比较整个列表是否一样,如原创 2017-09-01 07:58:34 · 6662 阅读 · 0 评论