Python 数据类型
admin
2023-07-06 13:03:42
0

字符串(str):

字符串:一串不可变的字符序列
特殊字符:为了描述字符的一些状态,例如换行,缩进等,使用特殊的字符组合表示该类信息,例如:

\ \\ \n \t \r \' \b \f \v \oxxx \xyy \b
转义 \ 回车 制表符 回车 单引号 退格 换页 纵向制表符 8进制 16进制 二进制

防转义: r " string " 输出string原始字符,不会对其进行转义
例如:

print(  "d:\goproject\src\to_code"  )    # \t将会被转义为 tab
print( r"d:\goproject\src\to_code"  )   # 使用r " " 防止字符内部 \ 进行转义

\r\n : 回车换行符
通常连续出现表示对文本换行
\r 表示将光标返回行首,在依次进行显示,此时若光标后有字符,将会被重新覆盖,可以用它打印进度条
例1:

import time 
for i in range(101):
    time.sleep(i/90)
    print("进度:%d%%" %(i),end="\r")

例2:

import time 
for i in range(101):
    time.sleep(i/90)
    print("+" * i + "-"*(100-i), end=" \r ")

\x123 ,"\123",分别表示16进制,10进制

print("\123")      # 十进制 ascii码 123对应的 "s"
print("\x41\x42")  # 16进制41,42对应的字符 A和 B

变量:

常量:使用全大写变量名定义,提示开发者不要对其进行更改(默认约定)
字面常量:如:1, “abc”,等字符或数字类型数据

位运算
位运算使用数字的二进制形式进行运算;& (与); | (或) ;~(按位取反); ^(异或:相异出一)

原码,反码,补码

计算机储存形式:计算机储存的是数字的补码,最高位0为正,1为负数,底层计算时直接使用补码进行计算,计算结果进行输出是转换源码对应的二进制的数字。
补码:对于负数,原码的符号位不变,其他位按位取反,再加一得到补码,补码执行同样的操作可以得到原码

例如:计算10^9 和 10^-9

负数 字面值 反码 补码
-9 1000 1001 1111 0110 1111 0111
10 0000 1010 0000 1010 0000 1010
9 0000 1001 0000 1001 0000 1001

逻辑运算
or 和 and 的短路运算,0 and ---, 和 1 or 将会出现短路,停止计算and 或者 or 之后的内容,返回前面的值

运算符优先级:单目>双目,算数>位运算>身份>成员>逻辑

* 垃圾回收(GC)*
程序长时间运行造成大量的内存空洞,在需要大量连续内存时无法开辟空间而造成内存泄漏,Python使用了垃圾回收机制解决此类问题
垃圾回收:使用引用计数将未使用的内存碎片进行标记,当内存空洞达到一定的程度将触发垃圾回收机制,对碎片化的内存进行“”腾挪“”,提供连续的内存空间以供使用,在垃圾回收( GC )期间程序停止运行(stw)
引用计数 **:未使用的数据引用计数将会清零,垃圾回收机制将会对其进行清理;使用sys.getrefcount(x) 可以查看x对应值的引用计数

简单运算

math.floor(3.4) 
math.ceil(), 
int("b",16)
round(2.501) 
a = hex(100)   #  ==> "0x64" 字符串类型
a = 0x64         #  ==> 数字类型

isinstance(" ", (str,int,tuple)  # ==> True

列表 (list)

列表是连续的,可变的,线性数据结构,内部可以储存不同数据类型的数据
几种常见数据类型比较
列表:一串连续大小相等的内存空间,数据按顺序依次存储,Python中列表在空间沾满前会自动进行扩容。
特点:方便数据查询,使用索引可以直接定位元位置,增加、删除,插入(尤其在靠近列首位置)操作需要对后部元素进行挪动,效率较低。
链表:储存单元在内存中随机分布,上一个元素拥有下一个元素地址,只能通过上一个元素找找到先一个元素信息。
特点:方便插入 ,删除操作,时间复杂度为O(1),查询操作较为繁琐时间复杂度为 O(n)
:(stack) :LIFO,后进先出模型,例如,网页后退:每次打开新的网页会进行一次压栈操作,返回操作时返回到最后一次压栈前的效果,再例如撤销操作

队列:排队模型,队列之后唯一的出口和进口,按照排队前后顺序依次对数据进行操作。
当服务器无法同时处理大量请求,将会对请求进行排队,按照顺序依次处理请求。

列表常用方法:

.index(value,start,stop) 时间复杂度n,性能低
.len(list) 元数据中已经记录 繁杂度1
.insert(index,value) 超出界限,尾部追加
.append() , 添加一个元素
.extend() , 如果是可迭代的对象会遍历出来添加多个
.sort(key=str, reverse =True ) 降序,临时啊转化类型进行比较,不会改变原来的类型
"+" 生成一个新的元素,新的列表空间太大
" " : [1] 3 = [1,1,1]; [[1] 3] = [[1,1,1]]; [[1]] 3 = [[1],[1],[1]]

简单类型和复杂类型:
当列表中储存复杂类型时,储存的是该数据的内存地址,使用其他变量对该地址下数据进行更改时,列表中数据会发射改变:

lis1 = [[100],[100],[100]] 和 lis2 = [[100]] * 3的区别
lis2中的[100]引用的是同一个对象

拷贝和深拷贝:

copy(shadecopy) 和 copy.deepcopy
copy浅拷贝:拷贝数据地址,引用的同一份数据,原始数据不会增加,数据引用计数加1
深拷贝:找到最底层的数据进行拷贝,并储存新数据的内存地址,数据值相同但是两份不同的数据可以使用id()查看地址

random

.shuffle([ ]) 洗牌打乱
.choice([ ])
.randint(1,3) 1-3区间整数
.randrange(1,3) 1-2区间
.sample([ ], k=), 列表中选K个“不同”的元素,不放回抽取模型
.choices([ ], k=) , 列表中选取K个元素, 放回抽取模型

相关内容

热门资讯

我国科学家为细胞信号“导航”开... 新华社济南5月31日电(记者张力元)人体细胞犹如一座精密的通信城市,每天都有大量“指令”穿梭传递,调...
极端大风突袭哈尔滨!过山车停摆... 极目新闻记者 詹钘5月31日,受强对流天气影响,哈尔滨国际会展中心体育场相关设施受到损坏,原计划当晚...
三原电缆取得电缆接头连接用防护... 国家知识产权局信息显示,上海三原电缆附件有限公司取得一项名为“一种电缆接头连接用防护结构”的专利,授...
原创 识... 还是那句话,机圈苦大屏久已…… 虽然大屏有大屏的美,但是小屏也有小屏的俏。在大屏旗舰占据主流的手机市...
玄戒技术取得分频电路专利,实现... 国家知识产权局信息显示,北京玄戒技术有限公司取得一项名为“分频电路、分频器、射频芯片和电子设备”的专...
为什么今年香会基调明显变了 5月29日—31日在新加坡举行的第23届香格里拉对话会(简称“香会”),见证着元首引领下大国关系继续...
成本几毛钱、假驱蚊液香精兑水,... 入夏升温,蚊虫进入活跃期,驱蚊防护成为民生刚需,《财经调查》持续接到消费者投诉,他们买到的多款网红驱...
越来越多80后90后,正在丧失... 六一儿童节到来之际,朋友圈里开始出现一种熟悉的热闹。有人晒出零食礼包,有人半开玩笑地向伴侣讨礼物,还...
洋保电子取得用于低温环境的电气... 国家知识产权局信息显示,洋保电子(太仓)有限公司取得一项名为“一种用于低温环境的电气柜”的专利,授权...
中日韩飞手争霸宁波!2026无... 潮新闻客户端 记者 陈冲 通讯员 朱凝 5月31日,2026小遛·无人机竞速世界杯(中国·宁波鄞州站...