文章目录
一、Python的六大数据类型
- 一、Python的六大数据类型
- 二、数据类型 :Number-数字
- 1.数字类型的分类及其类型转化
- 2.数字类型之间的数学运算
- 3.数字间的进制转换
- 三、数据类型 :String-字符串
- 1.字符串的运算及其切片
- 2.字符串的常见函数
- 3.字符串的format格式化函数
- 四、数据类型 :List-列表
- 1.列表的常见函数
- 2.列表的一些函数使用
- 3.列表函数操作的时间复杂度
- 4.深拷贝和浅拷贝
- 数字(Number)
- 字符串(String)
- 元组(Tuple)
- 列表(List)
- 集合(Set)
- 字典(Dictionary)
Python的数据类型分为可变和不可变数据类型:
- 可变的:列表、集合、字典(可以进行更改,并且更改后物理地址不会发生改变)
- 不可变的:数字、字符串、元组(不可以进行更改,更改后就是一个新的对象了,物理地址发生了变化)
在数学中,有多种数据类型,在Python中数字类型也有多种,大概分为以下4类:
名称英文标识解释举例整型int通常被称为是整型或整数,是正或负整数,不带小数点。Python3 整型是没有限制大小的,可以当作 Long 类型使用,所以 Python3 没有 Python2 的 Long 类型。5,6浮点型float浮点型由整数部分与小数部分组成。5.22222布尔型bool含义True和False,True转换为1,False转换为0,但是反之除 0为False类型,其他数字为True类型True、False复数型complex形如a+bi(a为复数实部,b为复数虚部)1+2i这四种类型的复杂度:bool表示字体居右&表示,填充字符,不够长度的用*号表示
举例:
a='我叫{:&^5}'.format('蔡徐坤')#^居中
b='我叫{:&居右
print(a)#---------------------------------------我叫&蔡徐坤&
print(b)#---------------------------------------我叫蔡徐坤&&
print(c)#---------------------------------------我叫&&蔡徐坤
3.输出二进制,八进制,十六进制
# ----------------------------------------------输出二进制
a = '5的二进制为{:b}'.format(5) # 二进制用b
print(a) # ---------------5的二进制为101
# --------------------------------------------------输出八进制
b = '20的八进制为{:o}'.format(20) # 八进制用o
print(b) # 20的八进制为24
# -------------------------------------------------输出十六进制
c = '34的十六进制为{:x}'.format(34) # 十六进制用x
print(c) # 34的十六进制为22
4.字符串格式化和百分号
name,age,height='张三',18,1.75
print('我叫%s,年龄%d,身高%.2f'%(name,age,height)) # %.2f代表保留小数点后两位
# 我叫张三,年龄18,身高1.75
print('%.2f%%'%(0.23)) # %%为数学中的一个%-----------------0.23%
符号大全:
关于列表就是一个有序的序列,在python中创建的几种方式
[1, 2 ,3 , 4 ]
# 创建空列表
[]
list()
1.列表的常见函数
序号方法说明1list.append(obj)在列表末尾添加新的对象2list.count(obj)统计某个元素在列表中出现的次数3list.extend(seq)在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)4list.index(obj)从列表中找出某个值第一个匹配项的索引位置5list.insert(index, obj)将对象插入列表6list.pop(index)值为索引,移除列表中的一个元素(默认最后一个元素),并且返回该元素的值7list.remove(obj)值为删除值,移除列表中某个值的第一个匹配项8list.reverse()反向列表中元素9list.sort(cmp=None, key=None, reverse=False)对原列表进行排序,无返回值(sorted函数是Python的函数,有返回值),reverse默认为False升序
2.列表的一些函数使用
①获取列表某几项:
a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 正索引获取一项
print(a[0]) # 1
print(a[3]) # 4
# 负索引获取一项
print(a[-1]) # 9
print(a[-3]) # 7
# 正索引获取多项
print(a[1:5]) # [2, 3, 4, 5]
# 负索引获取多项
print(a[-5:-1]) # [5, 6, 7, 8]
②列表的遍历与长度
a = [1, 3, 4]
print('a列表的长度为:', len(a)) # 3
# ---------普通循环使用range方法
for i in range(len(a)):
print("当前索引为{},是列表的第{}个元素,值为{}".format(i, i + 1, a[i]))
"""
当前索引为0,是列表的第1个元素,值为1
当前索引为1,是列表的第2个元素,值为3
当前索引为2,是列表的第3个元素,值为4
"""
# -----------------直接循环列表
for i in a:
print(i)
"""
1
3
4
"""
# ----------------带索引的循环用
for index, i in enumerate(a):
print("当前索引为{},是列表的第{}个元素,值为{}".format(index, i + 1, i))
"""
当前索引为0,是列表的第2个元素,值为1
当前索引为1,是列表的第4个元素,值为3
当前索引为2,是列表的第5个元素,值为4
"""
③列表的拼接,重复
a = [1, ]
b = [2, 3]
print(a + b) # [1,2,3]
print(a * 3) # [1,1,1]
print(a[0] + b[0]) # 3
④列表的添加【append,extend,insert】
方法名使用方式append()在列表末尾添加一个元素, 格式: m.append(元素A)extend()对于特定列表的扩展和增长,可以一次添加多个元素,不过也只能添加在列表的最后;格式:m.extend([A,B,…])insert()在列表的特定位置插入想要添加的特定元素,这里的特定位置是指元素所在列表中的索引 格式: m.insert(A,元素B):表示在列表m的索引A位置变为元素B,其他元素顺序后移a = [1, 2, 3, 4, 5,]
a.append(7)#在尾部追加一个
print(a) # [1,2,3,4,5,7]
b=['a','b']
a.extend(b)#extend可以将另一个列表插入
print(a) # [1,2,3,4,5,7,'a','b']
a.insert(1,'x')#在索引一的位置加个’x'
print(a) [1,'x',2,3,4,5,7,'a','b']
⑤列表的删除【pop,del,remove】
- pop()可以添加索引,不添加默认弹出最后一个数
- remove必须传入要删的数,删除从左到右的第一个数
- del 内置方法
a = [1, 2, 3, 4, 5,]
a.pop()#会删除最后一个数,并且输出删除的这个元素
a.pop(2)#会删除索引为2的数,并且输出删除的这个元素
a = [1, 2, 3, 4, 5,]
a.remove(3)#删除的是第一个遇到的3,并非索引位置
print(a)
a = [1, 2, 3, 4, 5,]
del a[2]#删除对应索引或者整个列表
print(a)
⑥列表的修改,直接复制
a = [1, 2, 3, 4, 5,]
a[2]='xx' # 直接将对应索引更改为自己修改的值即可
print(a) # [1,2,'xx',4,5]
3.列表函数操作的时间复杂度
- 深拷贝:完全复制一份到新的地址,互相修改不受影响
- 浅拷贝:粗略复制,对于内部的可变类型,互相修改还会变化,因为内部的可变类型还是同一块内存地址
import copy
a=[1,2,3,[4,5],6]
b=a
c=copy.copy(a)#浅拷贝,将列表粗略考走,列表内部的列表会随着a中内部的列表变化,即内部列表还指向【4,5】
d=copy.deepcopy(a)#深拷贝,完全复制一份a,创立了一块新的地址,互相修改不会变化
a.append('00000')
a[3].append('x')
print(a,id(a))
print(b,id(b))
print(c,id(c))
print(d,id(d))
结果: