ThankNeko's Blog ThankNeko's Blog
首页
  • 操作系统

    • Linux基础
    • Linux服务
    • WindowsServer笔记
    • Ansible笔记
    • Shell笔记
  • 容器服务

    • Docker笔记
    • Kubernetes笔记
    • Git笔记
  • 数据库服务

    • MySQL笔记
    • ELK笔记
    • Redis笔记
  • 监控服务

    • Zabbix笔记
  • Web服务

    • Nginx笔记
    • Tomcat笔记
  • 数据处理

    • Kettle笔记
  • Python笔记
  • Bootstrap笔记
  • C笔记
  • C++笔记
  • Arduino笔记
  • 分类
  • 标签
  • 归档
  • 随笔
  • 关于
GitHub (opens new window)

Hoshinozora

尽人事,听天命。
首页
  • 操作系统

    • Linux基础
    • Linux服务
    • WindowsServer笔记
    • Ansible笔记
    • Shell笔记
  • 容器服务

    • Docker笔记
    • Kubernetes笔记
    • Git笔记
  • 数据库服务

    • MySQL笔记
    • ELK笔记
    • Redis笔记
  • 监控服务

    • Zabbix笔记
  • Web服务

    • Nginx笔记
    • Tomcat笔记
  • 数据处理

    • Kettle笔记
  • Python笔记
  • Bootstrap笔记
  • C笔记
  • C++笔记
  • Arduino笔记
  • 分类
  • 标签
  • 归档
  • 随笔
  • 关于
GitHub (opens new window)
  • Python笔记

    • 基础知识

      • 常见规范与运行方式
      • 变量与垃圾回收机制
      • 输入与格式化输出
      • 运算符
      • 流程控制语句
      • 浅拷贝和深拷贝
      • 常用数据类型与分类
        • Python数据类型
        • 类型分类
        • 可变不可变类型
      • 数据类型方法
      • 字符编码
      • 文件操作
      • 函数与参数
      • 命名空间与作用域
      • 闭包函数与装饰器
      • 迭代器与生成器
      • 三元表达式与生成式
      • 函数递归
      • 面向过程式和函数式编程
      • 模块与包
      • 程序设计目录参考
      • 常用内置模块或函数
      • 序列化和猴子补丁
      • 日志模块-logging
    • 类与面向对象

    • 并发编程

    • Web编程

    • 模块笔记

    • 其他

  • C笔记

  • C++笔记

  • Arduino笔记

  • Dev
  • Python笔记
  • 基础知识
Hoshinozora
2023-02-15
目录

常用数据类型与分类

# Python数据类型

# Int - 整数型

作用

记录为整数的值,如年龄、个数、身份证号等。

定义

变量名 = 整数

等同于:变量名 = int(整数),不加int是python提供的更简便的写法。

例如:test = 123

类型转换

test = "123";
test = int(test)
1
2

# Float - 浮点型

作用

记录带小数点的值,如薪资、身高、体重等。

定义

变量名 = 浮点数

例如:test = 10.5

类型转换

test = "123.2"
test = float(test)
1
2

# String - 字符串类型

作用

记录描述性质的一串字符,如名字、一段话等。

定义

'字符串' 或 "字符串" 或 '''字符串''' 或 """字符串"""用引号包裹字符串即可。

'''和"""三个引号包裹的字符串可以多行定义。

'和"作用一样,可以互换,但如果字符串中要包含"",则可以用''包裹,反之一样,如果都要用到可以使用\转义。

例如:test="123"

字符串的相加相乘

字符串之间可以相加相乘,代表字符串的拼接,但是在需要大量拼接时效率较低,一般不用。

例如:

test="test" + " is"
> "test is"

test="test" + "=" * 3
> "test==="
1
2
3
4
5

# List - 列表类型

作用

可以按位置记录多个任意类型的值,并且可以通过index索引取出指定位置的值。

以索引对应值,索引从0开始,0代表第一个。

定义

列表名 = [值1,值2,值3...]

在[]内用逗号分隔多个任意类型的值,一个值被称之为一个元素。

例如:test=['read',123,10.5,['aaa','bbb']]

取值

# 取列表的值:列表名[索引]
test[0]

# 取列表中嵌套的列表值:列表名[索引][索引]
test=['read', 1, 1.5, ['aaa','bbb']]
test[3][0]

# 反向取值:列表名[-索引]
test[-1]
1
2
3
4
5
6
7
8
9

# Dict - 字典类型

作用

用来存多个任意类型的值,字典中每个值都有唯一的key与其对应的值,所以key对值有索引作用。key通常为字符串类型,所以key对值一般也有描述性作用。

key必须是不可变类型,例如:字符串、数字等,不能是列表、字典等。

定义

字典名={键1:值, 键2:值...}

在{}内用逗号分隔开多个键值对。

例如:test={'name':'iro', 'age':18, 'favor':['read','play']}

取值

# 取字典值:字典名[key]
test["name"]

# 取字典中嵌套的字典值:字典名[Key][key]
test={'name':'hhh', 'favor':{'one':'aaa', 'two':'bbb'}}
test['favor']['one']
1
2
3
4
5
6

# Bool - 布尔类型

作用

用于记录真假这两种状态True和False。

除此之外,也可以用数值0和1来表示真假。

另外布尔类型值的变量名,一般都是以is开头,例如:is_connect等。

显式布尔值

True、False

隐式布尔值

所有类型的值都可以当做条件的布尔值去用。

如10、[1]、"str"等作为布尔值时,都是代表真。

其中只有0、None、空为假,代表False。

空可以是空字符串、空列表、空字典等。

定义

变量名 = 布尔值

如:a = True。

变量名 = 判断条件

如:a = 2 > 3,返回的false作为值。

# Tuple - 元组类型

作用

类似于列表,只不过元组的值不可变,即元组索引对应的内存地址不可变。

按照索引存放多个任意类型的值,但只能用于读,不能用于改。

如果嵌套列表,其嵌套的列表的值是可改的,但一般不会嵌套列表到元组中。

优点

元组由于只需要支持读取,不需要读的支持,所以占用的内存更小。

并且元组进行索引操作的速度相对较快,因此,需要进行大量索引操作的数据尽量存储在元组中。

定义

元组名 = (元素1,)

元组名 = (元素1,元素2...)

如果元组只有一个元素,必须加逗号,不然()会被当做包含,也就不是元组了。

# Set - 集合类型

作用

关系运算,可以找出两个集合中,共同的元素和不同的元素。

去重,集合内没有重复元素,会被自动去重。

集合的元素必须是不可变类型。

集合内元素无序,无法保证原来的顺序。

定义

变量名 = set()

变量名 = {元素1,元素2...}

# Complex - 复数类型

作用

复数类型的基本表达方式是a+bj,其中a代表实部,b代表虚部, j代表复数单位(也就是根号√-1)。

√-1 * √-1 = -1

定义

[变量名] = 实数 + 虚数j

[变量名] = complex(实数, 虚数)

例如:z = 2 + 3j、z = complex(2, 3)

复数基本使用

提取复数的实数、虚数:

  • [复数变量].real - 提取实数部分,类型浮点数。
  • [复数变量].imag - 提取虚数部分,类型浮点数。

复数运算:

z1 = 1 + 2j
z2 = 3 + 4j

# 加法运算:将z1和z2的实数相加作为新的实数,虚数相加作为新的虚数。
print(z1 + z2)
>> 4 + 6j

# 减法运算:将z1和z2的实数相减作为新的实数,虚数相减作为新的虚数。
print(z1 - z2)
>> -2-2j

# 乘法运算:(z1.real*z2.real=3) + ((z1.real*z2.imag=4j) + (z1.imag*z2.real=6j)) + (z1.imag*z2.imag=8*j*j=-8) = 3+10j-8 = -5+10j
print(z1 * z2)
>> -5+10j
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 类型分类

# 按存值个数区分

原子类型,只能存1个值的类型。例如:数字、字符串。

容器类型,可以存多个值的类型。例如:列表、字典、元组。

# 按照访问方式区分

直接访问,只能通过变量名访问整个值。如:数字。

顺序访问,可以用索引访问指定的值,索引代表顺序,又称为序列类型。例如:字符串、列表、元组。

key访问,可以用key访问指定的值,又称为映射类型。例如:字典。

# 按可变不可变区分

可变类型,例如:列表、字典。

不可变类型,例如:数字、字符串、元组。

# 数字类型

整数类型、浮点数类型、复数类型。

# 可变不可变类型

# 可变类型

修改值后,值改变、但id不变,则证明改变的是原内存空间里的值,这是可变类型。

列表和字典,只会修改索引或key所对应的元素的内存地址指针,且新添加或删除其中的元素,列表或字典本身的id也不会变。所以列表、字典是可变类型。

当然如果直接=号重新赋值,那么id肯定是会变的。

# 不可变类型

修改值后,值改变,且id也变,则证明变量名指向了一个新产生的值,而非改变原内存空间的值,这是不可变类型。

整型、字符串型、浮点型、布尔类型是不可变类型,在Python中被设计为不可分割的整体。

#数据类型#分类方式
浅拷贝和深拷贝
数据类型方法

← 浅拷贝和深拷贝 数据类型方法→

最近更新
01
二〇二五年四月十七日随笔
04-17
02
二〇二五年四月十六日随笔
04-16
03
二〇二五年四月九日随笔
04-09
更多文章>
Theme by Vdoing | Copyright © 2022-2025 Hoshinozora | MIT License
湘ICP备2022022820号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式