python数据类型(完整)

这篇博客详细介绍了Python的数据类型,包括数值型(int、float、complex、bool)、数字处理函数、类型判断、列表操作(如查询、修改、复制、排序等)、元组、字符串及其操作,还涉及到冒泡排序算法和bytes、bytearray的相关知识。
摘要由CSDN通过智能技术生成

一、数值型

1、int

	int(x)

​ 返回整数类型。就是python的长整型,且没有大小限制,受限于内存区域的大小。

	int('a',16)
	# 返回值 10

2、float

	float(x)

​ 返回浮点数类型。由整数部分和小数部分组成。支持十进制和科学计数法表示。C的双精度型实现。

3、complex

	complex(x) complex(x,y)

​ 返回一个复数。由实数和虚数部分组成,实数和虚数部分是浮点数。eg:3+4.2J

4、bool

	bool(x)

​ 返回布尔值。int的子类,仅有2个实力Ture、False对应1和0,可以和整数直接运算。

​ 等价False的对象空字典,空元组,空列表,空集合,空字符串,none,0。

	1+False
	# 返回值 Ture

二、数字的处理函数

1、整除

1//23//25//2
# 返回值(0,1,2)
-1//21//-2
# 返回值(-1,-1)
int(x/x) #截取整数部分

​ 整除向下取整。

2、math模块

import matg # 导入模块
math.floor(x/x) # 向下取整
math.ceil(x/x) # 向上取整
math.sqrt(3) #开方
# 返回值 1.732050807508075688772
math.log2(4)
# 返回值 2.0

3、round

round(0) # 圆整 四舍六入五取偶

eg

round(2,5)
# 返回值2
round(-2,5)
# 返回值-2

三、类型判断

type

​ 返回类型,而不是字符串。

type(1) # 你是什么类型
# 输出为 int
type(1) = int 
# 输出结果为 Ture

isinstance

isinstance(obj,class_or_tuple) # 返回布尔值
isinstance('abc',str) # bool 'abc'是否为str
 # 输出为 Ture
isinstance('abc',(str,int,list))
 #返回值为 Ture

四、列表list

​ 列表 list 在内存中连续的结构 在数据尾部的更改没有影响,定位速度快可以插入元素,移除元素。容器都为可迭代对象。正索引从开始 负索引从-1开始 列表可变。

链表 linked list

​ 链表 linked list 单向链接,除值本身还有下一个值的地址 ,找第几个需要数,增减数据比较困难 上一个知道下一个在哪里,检索困难。

栈stack

​ 栈stack 摞盘子 后进先出LIFO (last in fast out)

队列queue

​ 队列queue 有栏杆的排队 先进先出 不能删除增加数据 基于列表或链表来实现, 遍历 所有那一遍 不重复。

五、列表查询

1、index

index(value,[start,[stop]])
# 通过值value,从指定区间查找列表内的元素是否匹配
# 匹配第一个就立即返回索引
# 匹配不到,抛出异常ValueError
随着列表中元素的增加,这种index函数的效率下降 随着列表元素规模的增加,性能下降 有n个时间复杂度,O(n)。

2、count

count(value)
# 返回列表中匹配value 

​ 查找该元素出现过几次,会遍历找,O(n).

3、时间复杂度

​ index和count方法都是O(n)

​ 随着列表数据规模的增大,而效率下降。

六、列表元素的修改

1、索引访问修改

list[index]=value
# 索引不要超界,否则会报错
l1=[1,2,3,4]
l1[2] = 100
# 输出l1结果为
# [1,2,100,4]

2、列表增加、插入元素

1、append

append(object)->None
# 列表尾部追加元素,返回None
# 返回 None就意味着没有新的列表产生,原地修改
# 时间复杂度为O(1)
l1 = [1]
l1.append(2)
# 输出l1的结果为
# [1,2]

2、insert

insert(index,object)->None
# 在指定的索引index处插入元素object
# 返回None就意味着没有新的列表产生,就地修改
# 时间复杂度是O(n)
# 索引超上界,尾部追加
# 索引超下界,头部追加
l1 = [1,2]
l1.insert(1,0)
# 输出l1结果为
# [1,0]

3、extend

extend(iteratable)->None
# 将可迭代对象的元素追加进来,返回None
# 就地修改
l1 = [1,0]
l1.extend(range(2,5))
# 输出l1结果为
# [1,0,2,3,4]

​ extend 与append的区别是后者只能追加一个元素,而entend可以追加若干。

4、+ - list

l1 = [1]
l2 = [2]
l3 = l1+l2
# 输出结果l3结果为</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值