typora/note/Python/数据类型.md
2024-12-12 10:48:55 +08:00

2.5 KiB
Raw Permalink Blame History

标准数据类型:

  • Number数字

    • int
    • float
    • bool True: 1 False: 0
    • complex
  • String字符串

  • List列表写在方括号之间、用逗号分隔开的元素列表。列表中元素的类型可以不相同

  • Tuple元组与列表类似不同之处在于元组的元素不能修改。元组写在小括号里元素之间用逗号隔开。

    元组中的元素类型也可以不相同

  • Set集合一个无序不重复元素的集

  • Dictionary字典是一种映射类型mapping type它是一个无序的键值对key-value集合。

    关键字key必须使用不可变类型也就是说list和包含可变类型的 tuple 不能做关键字。

    在同一个字典中关键字key必须互不相同

不可变数据3 个):

  • Number数字
  • String字符串
  • Tuple元组

可变数据3 个)

  • List列表
  • Dictionary字典
  • Set集合

可变数据和不可变数据是相对于引用地址来说的。

不可变数据类型不允许变量的值发生变化,如果改变了变量的值,相当于新建了一个对象,而对于具有相同的值的对象,内部会有一个引用计数来记录有多少个变量引用了这个对象。

可变数据类型允许变量的值发生变化。对变量进行修改操作只会改变变量的值,不会新建对象,变量引用的地址也不会发生变化,不过对于相同的值的不同对象,在内存中则会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,不存在引用计数,是实实在在的对象。

简单地讲,可变数据和不可变数据的“变”是相对于引用地址来说的,不是不能改变其数据,而是改变数据的时候会不会改变变量的引用地址。

确定数据类型

  • 使用 type(变量名)

字符串

  • 自然字符串, 通过在字符串前加 r 或 R。 如 r"this is a line with \n" 则\n会显示并不是换行

  • Python 允许处理 unicode 字符串,加前缀 u 或 U 如 u"this is an unicode string"

  • 级联字符串,如"this " "is " "string"会被自动转换为this is string

    image-20231201114240737
  • 字符串的截取的语法格式如下:变量 [头下标: 尾下标: 步长]