
Python基础(一)
文章平均质量分 73
Python基础知识,认识列表、字典、元组等的使用
__淡墨青衫__
这个作者很懒,什么都没留下…
展开
-
Python对象以及堆栈
对象: python中,一切皆对象,每一个对象由:标识(identity)、类型(type)、值(value)组成。 1.标识用于唯一标识对象,通常对于对象在计算机内存中的地址,使用内置函数id(obj)可返回对象obj的标识。 2.类型用于表示对象存储的“数据”的类型,类型可以限制对象取值范围以及可执行的操作。可以使用type(obj)获取对象的所属类...原创 2020-04-19 17:45:49 · 342 阅读 · 0 评论 -
变量的声明和删除变量以及简单介绍垃圾回收机制
变量的声明和赋值 变量的声明和赋值用于将一个变量绑在一个对象上,如: 变量名=表达式 表达式的意思就是。比如a=3,在运行的过程中,解释器先运行右边的表达式,生成一个表达式运算结果的对象,在赋值给左边的变量。*变量的在使用的时候,必须赋值,否则,报错,提示该变量没有被定义。变量用完以后可以删除,例如:a=3del adel 是...原创 2020-04-28 11:16:45 · 335 阅读 · 0 评论 -
链式赋值、系列解包赋值和常量
链式赋值: 链式赋值用于一个对象赋给多个变量(要是一个对象分别指向每一个变量),比如:a=b=123#相当于a=3b=3系列解包赋值: 系列数据赋值给对应相同个数的变量(对象的个数必须和变量的个数保持一致),比如:a,b,c=1,2,3#相当于a=1b=2c=3#也可以使用系列解包赋值实现变量转换a,b=1,2a,b=b,aprin...原创 2020-04-28 20:34:20 · 539 阅读 · 0 评论 -
Python最基本的内置类型以及简单运算
每一个对象都有类型,Python中最基本的内置数据类型:每一个对象:对象里面包含(id,type,value)这三个值,构成一个对象1.整型 整数,如:1,2,3,4,5....2.浮点数 小数,如:3.143.布尔型 表示真假,仅包含:Ture,Flase4.字符串 由字符组成的序列。“abc” ,“dfg” ,“内置函数”运算符 ...原创 2020-04-28 20:58:34 · 203 阅读 · 0 评论 -
整数的不同进制以及不同类型转换成整数
整数: Python中,除10进制,还有其他三种进制: 0b或0B 二进制 0 1 0o或0O 八进制 0 1 2 3 4 5 6 7 0x或0X 十六进制 0 1 2 3 4 5 6 7 8 9 a b c d e f (a,b,c,d,e,f分别是10,11,12,13,14,15) 简单操作...原创 2020-05-03 21:27:51 · 513 阅读 · 0 评论 -
浮点数、类型转化以及增强赋值运算符
浮点数: 浮点数,称为float 浮点数用a*b^10 形式的科学计数法表示,比如:3.14 表示为314E-2或者314e-2. 这些数字在内存中要是按照科学计数法存储的。类型转换和四舍五入: 1.类型于int(),我们也可以使用float()将其他类型转化为成浮点数 2.整数和浮点数混合运算时,表达式结果自动...原创 2020-05-06 15:08:04 · 1063 阅读 · 0 评论 -
布尔值、比较运算符、同一运算符以及整数缓存问题
布尔值: 在Python3中,把True和False定义成了关键字,但本质还是1和0,甚至可以数字相加。比较运算符: 所有比较运算符返回1表示真,返回0表示假,这分别于特殊变量True和False等价。 以下假设变量a=3 ,变量b=10: 运算符 描述 实例 == 等于=比较对象的值是否相等 (a==b...原创 2020-05-06 16:19:43 · 538 阅读 · 0 评论 -
字符串的编码和转义字符
字符串的编码转化: 使用内置函数ord()可以把字符换成unicode码 使用内置函数chr()可以把十进制数字转换成对应的字符转义字符:转义字符 描述 \(在行尾时) 续行符 \\ 反斜杠符 \' 单引号 \" 双引号 \b 退格(Backspace) \n 换行 \t 横向制表符...原创 2020-05-06 16:46:16 · 296 阅读 · 0 评论 -
字符串的驻留机制、字符串的判断和字符串常用方法
字符串驻留: 仅保存一份相同且不可变字符串方法,不同的值被存放在字符串驻留池中,Python支持字符串驻留机制,对于符合标识符规则的字符串(仅包含下划线(_)、字母和数字)会启动字符串驻留机制。例如:#字符串驻留机制a="abcd_11"d="abcd_11"id(a)>>>2355133760208id(b)>>>235513...原创 2020-05-06 21:10:54 · 463 阅读 · 0 评论 -
字符串format格式化使用
填充与对齐 填充常跟对齐使用 ^,<,>分别是居中,左对齐,右对齐,后面带宽度 :号后面带填充字符,只能是一个字符,不指定默认为空#右对齐,需要8个字符,不足填充字符为^"{:^>8}".format("245")>>>'^^^^^245'#左对齐,需要8个字符,不足填充字符为^"{:^<8}"...原创 2020-05-07 16:46:09 · 413 阅读 · 0 评论 -
可变字符串_io.stringIO操作
可变字符串 在Python中,字符串属于不可变对象,不支持原地修改,如果需要修改其中的值,智能创建新的字符串对象,但是,我们确实需要原地修改字符串,可以使用io.StringIO对象或array模块import ios="hello,world"sio=io.StringIO(s) #新生成一个可变对象print(sio)>>> <_io.S...原创 2020-05-07 20:58:35 · 628 阅读 · 0 评论 -
列表的创建、特点以及内存分析
列表的创建(3种方式和推导式创建列表方法): 1.基本语法[]创建 >>>a=[10,20,30,40] >>>a=[] #创建一个空的列表对象 2.list()创建 使用list()可以将任何可迭代的数据转化成列表 >>>a=list() >>>a=list...原创 2020-05-11 21:09:42 · 522 阅读 · 0 评论 -
列表排序、逆序以及max、min和sum
列表排序:修改原列表,不生成新列表的排序a=[1,3,2,4,5,6]print(id(a))>>>1946419912520a.sort() #默认是升序排列print(a)>>>[1, 2, 3, 4, 5, 6]a.sort(reverse=True) #降序排列print(a)>>>[6, 5, 4, 3, 2, 1]#随机排序(打乱顺序)import randomb=random.shuffle(a)原创 2020-05-12 16:20:35 · 686 阅读 · 0 评论 -
Python的zip对象以及并行迭代
zip zip(列表1,列表2,列表3,......)将多个列表对应位置的元素合成元组,并返回这个zip对象。a=[1,3,4,5]b=[11,33,44,55]c=[22,33,44,66]d=zip(a,b,c)print(d) #直接输出返回zip对象>>><zip object at 0x000001C52F4AE508>print(list(d)) #输出列表转化对象包含元组,这是列表,也可以是tuple(d)>&...原创 2020-05-12 20:25:49 · 564 阅读 · 0 评论 -
Python元组、生成器推导式创建元组
生成器推导式创建元组 从形式上看,生成器推导式和列表推导式类似,只是生成器推导式使用小括号,列表推导式直接生成列表对象,生成器推导式生成的不是列表又不是元组,而是一个生成器对象。 我们可以通过生成器对象,转成列表或者元组,也可以使用生成器对象_next_()方法遍历,或者直接使用迭代器对象来使用,不管什么方式使用,元素访问结束后,如果需要重新访问其中的元素,必须重新创建该生成器对象。例子:生成器的使用:a=(x*2 for x in range(10))print...原创 2020-05-12 21:22:30 · 1625 阅读 · 0 评论 -
Python字典基础、以及字典的"增删改查”
字典: 字典是“键值对”的无序可变序列,字典中的每个元素都是一个“键值对”,包含:"键对象"和“值对象”。可以通过"键对象“实现快速获取、删除、更新对应的“值对象”。 列表中我们通过“下标数字”找到对应的对象,字典中通过“键对象”找到对应的“值对象”。“键”是任意的不可变数据,比如整数、浮点数、字符串、元组。但是:列表、字典、集合、这些可变对象,不能作为“键”,并且“键”不可重复。 “值”可以任意数据,并且可重复字典的定义方式: a=...原创 2020-05-13 16:03:51 · 412 阅读 · 0 评论 -
Python字典核心底层原理
字典核心底层原理(是很重要的)一.存储键值对过程 字典对象的核心是散列表,散列表是一个稀疏数组(总是有空不元素的数组),数组的每一个单元叫做bucket(或叫桶.表元),每一个bucket有两部分,一个是键对象的引用,一个是值对象的引用, 由于,所有bucket结构和大小一致,可以通过偏移量来读取指定bucket。 将一个键值对放在字典的底层过程: ...原创 2020-05-14 15:47:56 · 388 阅读 · 0 评论 -
Python循环代码优化技巧
循环优化:虽然计算机越来越快,空间也越来越大,我们仍然要在性能问题上“斤斤计较”,编写循环时,遵守下面三个原则可以大大提高运行效率,避免不必要的低效计算:1.尽量减少循环内部不必要的计算2.嵌套循环中,尽量不要减少内层循环的计算,尽可能像外提3.局部变量查询较快,尽量使用局部变量其他优化注意点:1.连接多个字符串,使用join()而不使用 +2.列表进行元素加入或删除,尽量在列表尾部操作...原创 2020-05-24 20:28:06 · 809 阅读 · 0 评论 -
Python函数的基本概念以及函数的分类
函数用法和底层分析: 函数是可重用的程序代码块,函数的作用,不仅可以实现代码的复用,更能实现代码的一致性,一致性是指:只要修改函数的代码,则所有调用该函数的地方都能得到体现。 在编写函数时,函数中的代码,只是对代码实现了封装,并增加了函数的调用、传递参数、返回计算结果等内容。函数的基本概念: 1.一个程序有一个个任务组成;函数就是一个任务或者一个功能。 2.函数是代码复用的通用机制。Python函数的分类:...原创 2020-05-27 21:04:27 · 2459 阅读 · 0 评论 -
Python的变量的作用域(全局变量和局部变量)
变量变量起作用的范围称为变量的作用域,不同的作用域内同名变量之间互不影响。变量分为:全局变量、局部变量。全局变量:在函数和类定义之外声明的变量,作用域为定义的模块,从定义位置开始直到模块结束。 全局变量降低了函数的通用性和可读性,应尽量避免全局变量的使用。 全局变量一般做常量使用。 函数内要改变全局变量的值,使用global声明一下局部变量:在函数体中(包含形式参数)声明的变量 局部变量的引用比全局变量快,优先考虑使用局部变量 如果局部变量和全局变量同名,则在函数内隐藏全局变量,原创 2020-05-28 21:09:14 · 1506 阅读 · 0 评论 -
Python局部变量与全局变量效率的测试
局部变量的查询和访问速度比全局变量快,优先考虑,尤其是在循环的时候。在特别强调效率的地方或者循环次数较多的地方,可以通过将全局变量转为局部变量提高运行速度。例子:import math, timedef one(): start_time = time.time() for i in range(10000000): math.sqrt(30) end = time.time() print(end - start_time)def原创 2020-06-01 20:30:49 · 883 阅读 · 0 评论 -
Python函数参数的传递可变对象及不可变对象
参数的传递函数的参数传递本质上就是:从实参到形参的赋值操作。Python中“一切皆对象”,所有的赋值操作皆是“引用赋值”,所以,Python中参数的传递都是“引用传递”,不是“值传递”,具体操作可分为两类:对“可变对象”进行“写操作”,直接作用于原对象本身。 对“不可变对象”进行“写操作”,会产生一个新的“对象空间”,并用新的值填充这块空间(起到其他语言的“值传递”效果,但不是“值传递”)。可变对象有: 字典、列表、集合、自定义的对象等不可变对象有: 数字、字...原创 2020-06-03 20:31:52 · 3204 阅读 · 0 评论 -
Python浅拷贝和深拷贝以及内存分析
浅拷贝和深拷贝深入了解参数传递的底层原理,需要理解一下“浅拷贝和深拷贝”,拷贝的内置函数为:copy(浅拷贝)、deepcopy(深拷贝)浅拷贝:不拷贝子对象的内容,只是拷贝子对象的引用。深拷贝:会连子对象的内存也全部拷贝一份,对子对象的修改不会影响源对象例子:import copydef testcopy(): '''测试浅拷贝''' a=[11,22,[33,44]] b=copy.copy(a) print("a",a) pr原创 2020-06-03 21:21:31 · 614 阅读 · 0 评论 -
Python函数参数的几种类型
位置参数函数调用时,实参默认按照位置顺序传递,需要个数的和形参匹配,按位置传递 的参数,称为:“位置参数”。例子:def one(a,b,c): print(a,b,c)one(1,2,3)one(1,2) #这里报错,位置参数不匹配返回值:>>>Traceback (most recent call last): 1 2 3 File "D:/B_project/Kong_Ji/git_data/z_Script/gove....原创 2020-06-07 15:51:11 · 2668 阅读 · 0 评论 -
Python函数lambda表达式和匿名函数
lambda表达式和匿名函数lambda表达式可以用来声明匿名函数。lambda函数是一种简单的、在同一行定义函数的方法,lambda函数实际生成一个函数对象。lambda表达式只允许包含一个表达式,不能包含复杂语句,该表达式的计算结果就是函数的返回值。lambda表达式的基本语法如下:lambda org1,org2,org3...:<表达式>org1/org2/org3/为函数的参数,<表达式>相当于函数体,运算结果是:表达式的运算结果。例子(lambd原创 2020-06-07 16:01:41 · 446 阅读 · 0 评论