
python笔记
文章平均质量分 58
联邦学习小白
联邦学习/大数据/机器学习
展开
-
python字典遍历中 key in dict 与 key in dict.keys()的区别
同:for key in dict 与 for key in dict.keys() 都是对字典键的遍历异:python2 使用 for key in dict.keys() 涉及额外的函数调用(堆栈开销),而 for key in dict 可以在内部使用 set 对象,是对列表进行线性搜索。所以随着键数量的增加,for key in dict.keys() 的性能相较于 for key in dict 会越来越差python3 则没有这种性能差异,两者使用效果差不多。结论:尽量习惯使用 f原创 2022-04-18 10:54:35 · 2750 阅读 · 0 评论 -
用plt画图咋y轴不按大小排列
跑完实验想把保存的loss通过plt画出来,结果画出来这么一玩意儿,吓我一跳,合着我的模型是在增加噪声。仔细一看才发现,因为保存下来的loss是文本,所以得转为float类型或者int类型才能正常显示,加个强制转换就好啦。...原创 2021-09-18 19:34:53 · 1113 阅读 · 0 评论 -
python笔记——文件操作与os模块
编码格式之前有写过一篇字符编码的笔记:python笔记——字符编码。这次主要是总结编码与python文件操作的关系。1、中文文件改为gbk编码可以减少文件对磁盘的占用空间2、UTF-8可以看作是Unicode的一个实现,在python中的区别主要是:python的解释器使用的是Unicode(内存)模块(.py文件)在磁盘上使用的是UTF-8存储(外存)3、当然可以在模块最上方修改它的编码格式,例如改为gbk。(改为gbk后发现编码格式变为ANSI,别担心,它跟GBK这些中文编码是一样的)原创 2021-07-31 00:21:04 · 381 阅读 · 0 评论 -
python笔记——模块与包
模块1、定义:在python中一个扩展名为.py的文件就是一个模块2、结构:一个python程序有多个模块(.py文件),一个模块可以包含多个函数、类和语句。3、使用模块的好处方便其他程序和脚本的导入和使用(不用在意内部细节)。每个模块可由不同人员开发,非常便于团队开发,提高效率。避免函数名和变量名的冲突。提高代码的可维护性(哪个模块有问题就改哪个,其他无需改变)。提高代码的可重用性(多次调用)。自定义模块1、创建模块新建一个.py文件,名称尽量不要于python自带的标准模块名称原创 2021-07-30 22:19:15 · 393 阅读 · 0 评论 -
python笔记——类的赋值、浅拷贝和深拷贝
变量的赋值操作只是形成两个变量,实际上这两个变量指向同一个对象。class CPU(): passclass Disk(): passclass Computer(): def __init__(self,cpu,disk): self.cpu = cpu self.disk = disk#变量的赋值cpu1 = CPU()cpu2 = cpu1#可以看到,变量执行赋值操作后,两个变量指向同一个对象。print(cpu1) #<__main__.CPU obje原创 2021-07-29 00:07:03 · 355 阅读 · 0 评论 -
python笔记——面向对象的细节
众所周知,面向对象的三大特征就是封装、继承和多态,这是面向对象的语言都具备的特征,只是不同语言在实现上会有所不同。那么python是怎么实现这三个特征的呢?咱这就来唠唠。封装封装是为了提高程序的安全性将数据(属性)和行为(方法)包装到类对象中。在方法内部对属性进行操作,在类对象的外部调用方法。从而在调用时无需关心方法内部的具体实现细节,从而隔离了复杂度。在Python中没有专门的修饰符用于属性的私有,如果某一属性不希望在类对象外部被访问,可以在定义时往属性名前边加俩下划线。私有属性一般只能通过类原创 2021-07-28 20:09:55 · 173 阅读 · 0 评论 -
python笔记——类与对象的那些事儿
python一切皆对象python中除了少数几个语句,其余全都是对象!创建一个类,这个类便称为类对象,也占内存空间,也有它的值。class Student: passprint(id(Student)) #2926222013040print(type(Student)) #<class 'type'>print(Student) #<class 'main_.student'>类的组成类属性:类中方法外定义的变量称为类属性,被该类的所有对象所共享原创 2021-07-28 12:25:34 · 167 阅读 · 0 评论 -
python笔记——异常处理机制
try-except结构except可以有一个或多个。捕获异常的顺序按照先子类后父类,为了避免遗漏可能会出现的异常,可以在最后增加BaseException#两个整数相除try: n1 = int(input('请输入第一个整数')) n2 = int(input('请输入第二个整数')) print('结果为:',n1/n2)except ZeroDivisionError: print('除数不能为0')except ValueError: print('不能将字符串转换为数字')原创 2021-07-28 01:28:13 · 156 阅读 · 0 评论 -
python笔记——函数与变量作用域
函数的参数传递函数调用过程中,若进行了参数的传递(调用函数时的传入的参数是实参,函数体内的是形参)如果参数为不可变对象,在函数体的修改不会影响实参的值,如整数、字符串、元组等如果参数是可变对象,在函数体的修改会影响实参的值,如列表、字典、集合等函数的返回值若函数无返回值,则return可省略若函数的返回值只有一个,则返回的结果该是什么就是什么,比如return一个整数,那返回的就是一个整数。若函数的返回值有多个,则返回的结果为元组类型(也就是把多个返回值封装到了一个元组里)函数的参原创 2021-07-26 21:05:52 · 232 阅读 · 0 评论 -
python笔记——集合
集合python的内置数据结构之一,与列表、字典一样都属于可变序列集合是没有value的字典,相当于计算key的hash值并存储key,其他则和字典一样,比如key不能重复,key必须是不可变对象,key是无序的。也就是说集合中的元素是不可重复的、是不可变对象、是无序的。集合的创建方式直接用花括号{ }s = {'python', 'hello', 90, 90, 80} #{'python', 'hello', 90, 80}使用内置函数set( )可以将列表、元组、字符串序列原创 2021-07-22 16:38:48 · 335 阅读 · 0 评论 -
python笔记——元组
元组元组是python的内置数据结构之一,与字符串一样是一个不可变序列不可变序列(字符串、元组、整数等):没有增删改的操作可变序列(列表、字典等):可以对序列进行增删改的操作,且序列地址不发生改变。元组的创建直接用小括号( ),这里的小括号也可以省略。#t1和t2创建的元组相同t1 = ('python', 'hello', '98')t2 = 'python', 'hello', 98只包含一个元素的元组需要使用逗号和小括号,缺一不可!t = ('python', )原创 2021-07-22 15:14:35 · 299 阅读 · 0 评论 -
python笔记——字典
字典python内置的数据结构之一,与列表一样是一个可变序列以键值对的方式存储数据,字典是一个无序的序列字典的创建两种常用方式使用花括号{}scores = {'张三': 100, '李四': 98}使用内置函数dict()scores = dict(name = 'Leo', age = 23)创建空字典d = {}字典元素的获取方法举例[key]scores[‘张三’]get(key)scores.get(‘张三’)[]原创 2021-07-22 12:24:42 · 201 阅读 · 0 评论 -
python笔记——列表
列表变量可以存储一个元素,而列表是一个“容器”,可以存储N个元素的引用,并且这N个元素可以是不同的数据类型列表示意图:列表的两种创建方式列表有两种创建方式,①使用中括号[],②使用内置函数list()使用中括号[],元素之间使用英文逗号进行分隔lst1 = ['hello', 'python', 98]使用内置函数list()lst2 = list(['hello', 'python', 98])列表的特点列表元素按顺序有序排序索引映射唯一一个数据列表可以存储重复原创 2021-07-22 11:01:57 · 812 阅读 · 0 评论 -
python笔记——else可与for/while搭配使用
python中的else可以与for或while搭配使用,前提是循环过程中没有碰到breakeg:输入密码for i in range(3): pwd = input('请输入密码:') if pwd = '8888': print('密码正确') break else: print('密码错误')else: print('连续三次密码错误,账号已冻结')a = 0while a<3: pwd = input('请输入密码:') if pwd = '8888':原创 2021-07-21 19:59:23 · 921 阅读 · 0 评论 -
python笔记——range()与for-in循环
range()函数作用:生成一个左闭右开的整数序列。创建range对象的三种方式:range(stop)创建一个[0,stop)之间的整数序列,步长为1range(start,stop)创建一个[start,stop)之间的整数序列,步长为1range(start,stop,step)创建一个[start,stop)之间的整数序列,步长为step返回值是一个迭代器对象,可以用list()查看完整序列。a = range(1,5)print(a)原创 2021-07-21 19:32:51 · 874 阅读 · 0 评论 -
python笔记——运算符
算术运算符python的算数运算有一个需要注意的地方就是一正一负两个数的整除与取余一正一负的整除:向下取整print(9//-4) #-3print(-9//4) #-3 一正一负的取余:余数=被除数-除数*商(注意这个商是向下取整的商)#9-(-4)*(-3)=-3print(9%-4) #-3#-9-4*(-3)=3print(-9%4) #3赋值运算符系列解包赋值其实是很有用的,比如要交换两个变量的值,c语言需要创建一个新的变量来作为中介,python则原创 2021-07-21 17:21:22 · 209 阅读 · 0 评论 -
python笔记——常见数据类型及注意点
整数类型int十进制 → 默认的进制二进制 → 以0b开头(数字0和小写字母b)八进制 → 以0o开头(数字0和小写字母o)十六进制 → 0x开头(数字0和小写字母x)浮点类型浮点数由整数部分和小数部分构成,涉及小数部分会有一个问题,因为计算机使用二进制表示,那么在表示小数的时候就会有点误差,导致浮点数存储不精确如:print(1.1+2.2) #3.30000000003print(1.1+2.1) #3.2可以看到1.1+2.2的结果有一个极小误差,这个问题可以通过导入模块d原创 2021-07-20 13:20:41 · 600 阅读 · 0 评论 -
python笔记——变量的使用及回收
python中的变量由“标识”、“类型”、“值”三部分构成标识:表示对象所存储的内存地址,使用内置函数id(obj)来获取类型:表示的是对象的数据类型,使用内置函数type(obj)来获取值:表示对象所存储的具体数据,使用print(obj)可以将值进行打印输出变量的内存分析图:变量name赋值后会指向一个内存空间再赋值则会指向新的内存空间,原来的空间称为内存垃圾,等待GC回收,python的垃圾回收机制可以参考这篇文章Python垃圾回收机制详解...原创 2021-07-19 17:43:25 · 491 阅读 · 0 评论 -
python笔记——标识符和保留字
保留字通过下面这段代码就可以打印python的保留字,保留字不能用于文件、变量等的命名。import keywordprint(keyword.kwlist)标识符给变量、函数、类、模块和其它对象的命名就叫做“标识符”规则:只能用字母、数字、下划线不能以数字开头不能用保留字严格区分大小写...原创 2021-07-19 16:57:33 · 184 阅读 · 1 评论 -
python笔记——字符编码
计算机只能识别0或1,以二进制的方式进行运算。但对于人来讲二进制的表示方式并不好记所以便把二进制代表的意思编程一个表格,这个表格叫ASCII表,ASCII表用一个字节表示一个字符,共可以表示256个字符,且前128个字符固定,后128个供各国家自己定义。但对于汉字来讲,这明显是不够用的。所以在1980推出了GB2312,一个可以表示简体中文的字符集,可以表示7445个字符,但明显还是不够用。90年代又推出了GBK,可以表示简体和繁体中文。但对于地大物博的中国,这依旧不够用,因为还有一些少数民族的..原创 2021-07-19 16:48:06 · 132 阅读 · 0 评论