Python基础教程:九种核心数据类型的详解

目录

一、数值类型

整数类型

浮点数类型

复数类型

二、字符串类型

字符串的序号与索引

字符串处理函数

字符串处理方法

常用格式字符符号

字符串类型的格式化

 

三、组合类型

集合类型

集合的特点

集合操作符

集合处理方法

元组类型

元组的定义

访问元组中的值

元组的连接

元组的删除

元组的函数

列表类型

常用函数

常用方法


在 Python 编程中,理解基本数据类型是至关重要的。Python 包含九种基本数据类型,可分为数值类型、字节类型和组合类型三大类。本文将详细介绍这些数据类型及其特性与用法。

一、数值类型

整数类型

Python 中的整数与数学概念中的整数一致,理论上无取值范围限制。它支持二进制、八进制、十进制和十六进制这 4 种表示形式。

  • 二进制:以 0b 或 0B 开头,例如 0b1101-0B10
  • 八进制:以 0o 或 0O 开头,像 0o456-0O789(注意八进制数中每位数字取值范围是 0 – 7)。
  • 十进制:常规表示,如 123-3210
  • 十六进制:以 0x 或 0X 开头,比如 0x1A-0X2B
  • 不同进制表示的整数本质上是相同的,例如 0b1010 = 0o12 = 10 = 0xa

    浮点数类型

    浮点数即数学中的实数,带有小数部分,存在取值范围。它有常规方法和科学计数法两种表示方式。科学计数法使用字母 e 或 E 作为幂的符号,以 10 为基数,格式为 <a>e<b>,表示 a * 10 的 b 次幂。例如,0.0043 = 4.3e-398000000.0 = 9.8E7

    需要注意的是,浮点数直接运算时,可能会出现不确定尾数问题。这源于浮点数在计算机中表示不精确的实际情况,且广泛存在于各种编程语言中。可借助 round() 函数辅助浮点数运算,消除不确定尾数。例如:

    python

    print(0.1 + 0.2)  # 可能出现不确定尾数问题
    print(round(0.1 + 0.2, 1))  # 消除不确定尾数,保留一位小数
    

    复数类型

    复数与数学中的复数概念相同,在 Python 中定义 j = √-1,复数表示为 a+bj 的形式。其中,z = a+bja 是实部,b 是虚部,且 a 和 b 均为浮点数。通过 z.real 可获得 z 的实部,z.imag 可获得 z 的虚部。

    二、字符串类型

    字符串类型

    字符串是由 0 个或多个字符组成的有序字符序列。它由一对单引号 (' ')、双引号 (" ") 表示单行字符串,也可用一对三单引号 (''' ''') 或三双引号 (""" """) 表示多行字符串。

    例如,'Hello' 和 "World" 是单行字符串,而 '''This is a multiline string.''' 是多行字符串。

    字符串的序号与索引

    字符串中的每个字符都有对应的序号(索引),从 0 开始计数。可通过索引获取单个字符,如 s[N] 获取字符串 s 中序号为 N 的字符。同时,还可利用切片操作 s[M:N] 获取 M 到 N(不含 N)的子串,使用 [M:N:K] 根据步长 K 对字符串切片,[::-1] 可对字符串进行逆序。当 M 缺失时表示从开头开始,N 缺失时表示到结尾结束。

    例如:

    python

    s = "Hello, World!"
    print(s[0])  # 输出 'H'
    print(s[7:12])  # 输出 'World'
    print(s[::2])  # 输出 'Hlo ol!'
    print(s[::-1])  # 输出 '!dlroW ,olleH'
    
    字符串处理函数
  • len(x):返回字符串 x 的长度。
  • str(x):将任意类型 x 转换为对应的字符串形式。
  • hex(x) 或 oct(x):分别返回整数 x 的十六进制或八进制小写形式字符串。
  • chr(x)x 为 Unicode 编码,返回其对应的字符。
  • ord(x)x 为字符,返回其对应的 Unicode 编码。
  • 例如:

    python

    num = 10
    print(str(num))  # 输出 '10'
    print(hex(16))  # 输出 '0x10'
    print(chr(65))  # 输出 'A'
    print(ord('A'))  # 输出 65
    
    字符串处理方法
  • str.lower() 或 str.upper():返回字符串的副本,全部字符转换为小写或大写。
  • str.split(sep=None):返回一个列表,由 str 根据 sep 分割的部分组成,若 sep 为 None,则按空白字符分割。
  • str.count(sub):返回子串 sub 在 str 中出现的次数。
  • str.replace(old, new):返回字符串 str 的副本,所有 old 子串被替换为 new
  • str.center(width[, fillchar]):字符串 str 根据宽度 width 居中,fillchar 为可选填充字符,默认为空格。
  • str.strip(chars):从 str 中去掉在其左侧和右侧 chars 中列出的字符。
  • str.join(iter):在 iter 变量除最后元素外每个元素后增加一个 str
  • 例如:

    python

    s = "Hello, World!"
    print(s.lower())  # 输出 'hello, world!'
    print(s.split(','))  # 输出 ['Hello', ' World!']
    print(s.count('l'))  # 输出 3
    print(s.replace('World', 'Python'))  # 输出 'Hello, Python!'
    print(s.center(20, '*'))  # 输出 '***Hello, World!***'
    print(s.strip('!'))  # 输出 'Hello, World'
    l = ['a', 'b', 'c']
    print('-'.join(l))  # 输出 'a-b-c'
    
    常用格式字符符号

    Python 中提供了多种格式字符符号用于格式化字符串,以下是一些常见的:

  • %s:格式化字符串。
  • %r:字符串 (采用 repr() 的显示)。
  • %c:单个字符。
  • %d:格式化十进制整数。
  • %i:十进制整数。
  • %o:八进制整数。
  • %x:十六进制整数。
  • %e:指数 (基底写为 e),用科学计数法格式化浮点数。
  • %E:指数 (基底写为 E)。
  • %f、%F:浮点数。
  • %g:指数 (e) 或浮点数 (根据显示长度)。
  • %G:指数 (E) 或浮点数 (根据显示长度)。
  • %%:一个字符 %
  • 例如:

    python

    name = input("请输入姓名:")
    sex = input("请输入性别:")
    age = input("请输入年龄:")
    print("你的姓名是%s,性别%s,年龄是%d" % (name, sex, int(age)))
    
    字符串类型的格式化

    格式化是字符串处理的重要方法,通过 <模板字符串>.format(<逗号分割的参数>) 实现。例如:

    python

    a = 3.5
    b = 2.8
    c = a + b
    print("{:.2f}".format(c))  # 保留两位小数,输出 6.30
    

    字节串类型

    字节串是计算机存储空间的表达,由 0 个或多个字节组成的有序序列,每个字节对应值为 0 – 255。字节串由前导符 b 或 B 与一对单引号或双引号表示,如 b"a\xf6",其中 0 – 255 间非可打印字符用 \xNN 方式表示,N 是一个十六进制字符。通常在处理与内存相关内容或与字节数量密切相关的场景时使用字节串。

    三、组合类型

    集合类型

    集合是多个元素的无序组合,使用大括号 {} 表示,元素间用逗号分隔,也可使用 set() 函数建立集合。集合具有去重和成员测试两个基本功能。

    集合的特点
  • 无序:元素间没有顺序,且元素不能相同,必须是不可变类型(如数字、字符串、元组等)。
  • 非一致性:元素类型可以不同。
  • 无索引:不能对某个元素进行定点索引,但可遍历或随机获取元素。
  • 集合操作符
  • S | T:并集,返回包含 S 和 T 中所有元素的集合。
  • S & T:交集,返回同时存在于 S 和 T 中的元素组成的集合。
  • S - T:差集,返回在 S 中但不在 T 中的元素组成的集合。
  • S ^ T:补集,返回只在 S 或 T 中出现的元素组成的集合。
  • S <= T 或 S < T:判断 S 是否为 T 的子集,返回 True 或 False
  • S >= T 或 S > T:判断 S 是否包含 T,返回 True 或 False
  • 集合处理方法
  • S.add(x):如果 x 不在集合 S 中,将 x 加入 S 中。
  • S.discard(x):移除 S 中 x 元素,如果 x 不在 S 中,不报错。
  • S.remove(x):移除 S 中 x 元素,若 x 不在 S 中,产生 KeyError 异常。
  • S.clear():清除 S 中的所有元素。
  • S.pop():随机返回 S 中的一个元素,更新 S,若 S 为空,产生 KeyError 异常。
  • S.copy():返回集合 S 的一个副本。
  • len(s):返回集合 S 中元素个数。
  • x in S:判断 x 是否在 S 中。
  • x not in S:判断 x 是否不在 S 中。
  • set(x):将其他类型变量 x 转变为集合类型,也可用于数据去重。
  • a = {'丁一', '丁一', '王二', '张三', '李四', '赵五'}
    print(set(a))  # 输出 {'丁一', '王二', '赵五', '张三', '李四'},集合去重
    

    元组类型

    元组与列表类似,是序列类型的一种,但元组的元素一旦创建不能修改。元组使用小括号 () 表示,元素间用逗号分隔,小括号有时可省略。

    元组的定义

    tup1 = (36)
    tup2 = (36,)
    tup3 = ("hello")
    tup4 = ("hello",)
    print("tup1 = (50)的数据类型是:", type(tup1))  # 输出 int
    print("tup2 = (50,)的数据类型是:", type(tup2))  # 输出 tuple
    print("\ntup3 = (“hello”)的数据类型是:", type(tup3))  # 输出 str
    print("tup4 = (“hello”,)的数据类型是:", type(tup4))  # 输出 tuple
    
    访问元组中的值

    可使用下标索引访问元组中的值,也可使用中括号的形式截取字符,还能利用 for 循环遍历元组中的值。例如:

    tup1 = ("book", "desk", "bag", "chair", "dog", "cat", "panda", "sheep")
    print("元组中的第二个值,tup1[1]: ", tup1[1])  # 输出 desk
    print("元组中的第二和第五个值,tup1[1:5]: ", tup1[1:5])  # 输出 ('desk', 'bag', 'chair', 'dog')
    print("\n利用for循环语句来遍历元组中的值")
    for i in tup1:
        print(i)
    
    元组的连接

    虽然元组元素不可修改,但可利用 + 号对元组进行连接组合,创建新的元组。例如:

    tup1 = ("张三", "王芳", "李四")
    tup2 = ('男', '女', "男")
    tup3 = (96, 89, 97)
    tup4 = tup1 + tup2 + tup3
    print("连接元组:", tup4)
    
    元组的删除

    元组中的元素不允许删除单个,但可使用 del 语句删除整个元组。例如:

    python

    tup = ("张三", "王芳", "李四")
    print(tup)
    del tup
    print("删除后的元组 tup : ")
    # 此处会报错,因为 tup 已被删除
    
    元组的函数
  • len(tuple):返回元组元素个数。
  • max(tuple):返回元组元素的最大值。
  • min(tuple):返回元组元素的最小值。
  • tuple(seq):将列表转换为元组。
  • 例如:

    python

    tuple1 = (5, 4, 8, 12, 16, 38, 999, 1562)
    tuple2 = ("who", "what", "whose", "when")
    print("元组中元素的最大值:", max(tuple1))
    print("元组中元素的最小值:", min(tuple1))
    print("元组中元素的最大值:", max(tuple2))
    print("元组中元素的最小值:", min(tuple2))
    print("\n元组中元素的个数:", len(tuple1))
    print("\n元组中元素的个数:", len(tuple2))
    print("\n把元组转换成列表,并显示:", list(tuple1))
    print("把列表转换为元组,并显示:", tuple(list(tuple1)))
    

    列表类型

    列表是序列类型的一种,元素有序组合,类型不限,创建后可随时修改。列表使用中括号 [] 表示,元素间用逗号分隔。

    常用函数
  • len(list):返回列表元素个数。
  • max(list):返回列表元素的最大值。
  • min(list):返回列表元素的最小值。
  • list(seq):将元组转换为列表。
  • id(list):获取列表对象的内存地址。
  • 常用方法
  • list.append('baidu'):在列表末尾追加 "baidu" 元素。
  • list.insert(1, 'baidu'):在列表第一个位置插入 “baidu” 元素。
  • list.index(x):返回列表中第一个值为 x 的元素的索引。
  • list.remove(v):从列表中移除第一次找到的值 v
  • list.pop([i]):从列表中指定位置 i 删除元素,并将其返回,若不指定 i,则删除并返回最后一个元素。
  • list.reverse():倒排列表中的元素。
  • list.count(X):计数,返回 x 在列表中出现的次数。
  • list.sort(key = None, reverse = False):对列表中的元素进行适当排序,reverse = True 为降序,reverse = False 为升序(默认)。
  • del list[2]:删除列表第三个元素。
  • del list:删除列表。
  • 例如:

    python

    # 创建列表
    class1 = ['丁一', '王二', '张三', '李四', '赵五']
    print(class1)
    # 列表的元素类型不限
    list1 = [1, '123', [1, 2, 3]]
    print(list1)
    # 遍历列表
    for i in class1:
        print(i)
    # 列表元素计数
    a
    

    作者:测试小Z

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python基础教程:九种核心数据类型的详解

    发表回复