python6种数据类型_python的三种数据类型[通俗易懂]

python6种数据类型_python的三种数据类型[通俗易懂]1.在数字类型中,0或者0.0转换为bool类型为False,其他为True

在这里插入图片描述

一、Python的六大数据类型

  1. 数字(Number)
  2. 字符串(String)
  3. 元组(Tuple)
  4. 列表(List)
  5. 集合(Set)
  6. 字典(Dictionary)

Python的数据类型分为可变和不可变数据类型:

  • 可变的:列表、集合、字典(可以进行更改,并且更改后物理地址不会发生改变)
  • 不可变的:数字、字符串、元组(不可以进行更改,更改后就是一个新的对象了,物理地址发生了变化)

二、数据类型 :Number-数字

1.数字类型的分类及其类型转化

在数学中,有多种数据类型,在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<int<float<complex

并且这些数字类型之间可以进行相互转换:

在这里插入图片描述

注意:
1.在数字类型中,0或者0.0转换为bool类型为False , 其他为True
2.而True转为int类型为1,,False转换为int为0

2.数字类型之间的数学运算

既然是数字类型,那么就可以进行一些数学运算,例如a=20,b=10

在这里插入图片描述

3.数字间的进制转换

既然是数字,就会有各种进制,例如2进制,8进制等等

① 计算机中展示进制

进制 表示
二进制 0b表示, 用0,1 表示
八进制 0o表示, 用0-7 表示
十六进制 0x表示, 用0-9和A-F 表示

② 进制转换

a进制转换为b进制 函数
其他进制转换为二进制 bin()
其他进制转换为八进制 oct()
其他进制转换为十六进制 hex()

举例:十进制转换为其他进制的函数

在这里插入图片描述

举例:其他进制转换为十进制

在这里插入图片描述

三、数据类型 :String-字符串

字符串在 Python中的表现形式为单/双/三引号的形式:

'我是字符串1,我是单引号引起来的'

"我是字符串2,我是双引号引起来的"

"""
	我是字符串3,
	我可以换行,
	同时我也是注释,
	我也可以用三个单引号
"""

1.字符串的运算及其切片

字符串也可以进行一些简单的运算

# -----------------------------------------拼接
a = '123'
b = '456'
print(a + b)  # 123456

# ------------------------------------------重复
c = '123'
print(c * 3)  # 123123123

# -----------------------------------------打散
a, *b = '12345'  # *此处具有打散功能
print(a, b)  # 1 ['2', '3', '4', '5']

# -----------------------------------------分配
c, d = '12'
print(c, d)  # 1 2

如果一个字符串我们想取其中的几个字符,那么就可以通过切片的方式获取

a = '123abcd'

print(a[0: 5])  # ---------------------------123ab
print(a[:4])  # ----------------- 123a
print(a[1:])  # -------------- 23abcd
print(a[:])  # 等同于直接输出a
print(a[::3])  # -------------- 1ad
print(a[3::3])  # ---------------ad
print(a[:4:3])  # ------------------------------- 1a
print(a[3:0:-1])  # -------------------a,3,2,使用步长-1,注意起始位置
print(a[::-1])  # ---------------------倒序dcba321
print(a[-1:-5:-2])  # ------------------------db

a = '123456789'
print(a[-8:5])  # -----------------------2345
print(a[0:-5])  # -------------------1234
print(a[-5:-1:1])  # -------------------------5678
print(a[-1:-5:-1])  # ----------------------------9876

2.字符串的常见函数

序号 方法及描述
1 capitalize() 将字符串的第一个字符转换为大写
2 center(width, fillchar) 返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。
3 count(str, beg= 0,end=len(string)) 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
4 bytes.decode(encoding=“utf-8”, errors=“strict”) Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。
5 encode(encoding=‘UTF-8’,errors=‘strict’) 以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是’ignore’或者’replace’
6 endswith(suffix, beg=0, end=len(string)) 检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.
7 expandtabs(tabsize=8) 把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。
8 find(str, beg=0, end=len(string)) 检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1
9 index(str, beg=0, end=len(string)) 跟find()方法一样,只不过如果str不在字符串中会报一个异常。
10 isalnum() 如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False
11 isalpha() 如果字符串至少有一个字符并且所有字符都是字母或中文字则返回 True, 否则返回 False
12 isdigit() 如果字符串只包含数字则返回 True 否则返回 False…
13 islower() 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
14 isnumeric() 如果字符串中只包含数字字符,则返回 True,否则返回 False
15 isspace() 如果字符串中只包含空白,则返回 True,否则返回 False.
16 istitle() 如果字符串是标题化的(见 title())则返回 True,否则返回 False
17 isupper() 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
18 join(seq) 以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
19 len(string) 返回字符串长度
20 [ljust(width, fillchar]) 返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。
21 lower() 转换字符串中所有大写字符为小写.
22 lstrip() 截掉字符串左边的空格或指定字符。
23 maketrans() 创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
24 max(str) 返回字符串 str 中最大的字母。
25 min(str) 返回字符串 str 中最小的字母。
26 [replace(old, new , max]) 把 将字符串中的 old 替换成 new,如果 max 指定,则替换不超过 max 次。
27 rfind(str, beg=0,end=len(string)) 类似于 find()函数,不过是从右边开始查找.
28 rindex( str, beg=0, end=len(string)) 类似于 index(),不过是从右边开始.
29 [rjust(width,, fillchar]) 返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串
30 rstrip() 删除字符串字符串末尾的空格.
31 split(str=“”, num=string.count(str)) 以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串
32 [splitlines(keepends]) 按照行(‘\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
33 startswith(substr, beg=0,end=len(string)) 检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。
34 [strip(chars]) 在字符串上执行 lstrip()和 rstrip()
35 swapcase() 将字符串中大写转换为小写,小写转换为大写
36 title() 返回”标题化”的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())
37 translate(table, deletechars=“”) 根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中
38 upper() 转换字符串中的小写字母为大写
39 zfill (width) 返回长度为 width 的字符串,原字符串右对齐,前面填充0
40 isdecimal() 检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。

3.字符串的format格式化函数

1.输出普通参数

name = '蔡徐坤'
age = 18

# -------------按顺序
print('名字{},年龄{}'.format(name, age))  # 名字蔡徐坤,年龄18

# ------------按指定顺序
print('名字{0},{0}的年龄{1}'.format(name, name, age))  # 名字蔡徐坤,蔡徐坤的年龄18

# -------------按变量名称
print('名字{name},年龄{age}'.format(name=name, age=age))  # 名字蔡徐坤,17

# --------------f写法,和变量名称类似
print(f'名字{ 
     name},年龄{ 
     age}')  # 名字蔡徐坤,18

2.格式化修饰

符号 表示
后边为将于格式化的写法
5 表示总字符长度为5
^ ^表示要居中,< 表示字体居左,>表示字体居右
& 表示,填充字符,不够长度的用*号表示

举例:

a='我叫{:&^5}'.format('蔡徐坤')#^居中
b='我叫{:&<5}'.format('蔡徐坤')#<居左
c='我叫{:&>5}'.format('蔡徐坤')#>居右

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%

符号大全:
在这里插入图片描述

四、数据类型 :List-列表

关于列表就是一个有序的序列,在python中创建的几种方式

[1, 2 ,3 , 4 ] 

# 创建空列表
[]
list()

1.列表的常见函数

序号 方法 说明
1 list.append(obj) 在列表末尾添加新的对象
2 list.count(obj) 统计某个元素在列表中出现的次数
3 list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
4 list.index(obj) 从列表中找出某个值第一个匹配项的索引位置
5 list.insert(index, obj) 将对象插入列表
6 list.pop(index) 值为索引,移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
7 list.remove(obj) 值为删除值,移除列表中某个值的第一个匹配项
8 list.reverse() 反向列表中元素
9 list.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.列表函数操作的时间复杂度

在这里插入图片描述

4.深拷贝和浅拷贝

  • 深拷贝:完全复制一份到新的地址,互相修改不受影响
  • 浅拷贝:粗略复制,对于内部的可变类型,互相修改还会变化,因为内部的可变类型还是同一块内存地址
    在这里插入图片描述
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))

结果:
在这里插入图片描述

今天的文章python6种数据类型_python的三种数据类型[通俗易懂]分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/65664.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注