【python全栈系列】day02-python数据类型

python六个标准的数据类型

| 类型 | 描述 | 说明 |
| 数字(Number) | 整数(int) 浮点数(float) 复数(complex) 布尔(bool) | 整数(int),如1,10 |
| 数字(Number) | 整数(int) 浮点数(float) 复数(complex) 布尔(bool) |
| 数字(Number) | 整数(int) 浮点数(float) 复数(complex) 布尔(bool) |
| 数字(Number) | 整数(int) 浮点数(float) 复数(complex) 布尔(bool) |
|-------------------------------------------|-----------------------------------------|---------------------------------|
| 浮点(float),如1.12,10.35 |
| 复数(complex),如1+2j |
| 布尔(bool)逻辑,True或者False,True==1 False == 0 |
| 字符串(String) | 文本的数据类型 | 任意数量的字符组成 |
| 列表(List) | 有序、可变 | 有序记录一组数据 |
| 元组(Tuple) | 有序、不可变 | 有序不可变的一组数据 |
| 集合(Set) | 无序、不重复 | 无序、不重复的一组数据 |
| 字典(Dictionary) | 无序key-value集合 | key-value对应的一组数据,通过key值去查询value |

内存分析-值类型(基本数据类型)和引用类型

1、值类型(基本数据类型)不可变,包括了:

  • 整数(int):表示整数值,例如 42。
  • 浮点数(float):表示浮点数值,例如 3.14。
  • 布尔值(bool):表示布尔类型,值为 True 或 False。
  • 字符串(str):表示字符串类型,例如 'hello'。
  • 元组(tuple):使用圆括号 () 表示,一旦创建后,其内容不可修改。

1、引用类型,可变,包括了:

  • 列表(list):使用方括号 \[\] 表示,可以通过索引修改其中的元素。
  • 字典(dict):使用花括号 {} 表示,可以通过键修改其中的值。
  • 集合(set):使用花括号 {} 表示,可以添加、删除元素。
直接代码分析
python 复制代码
#值类型
num1 = 10 #num1中存储10
num2 = num1 #这个赋值实际是让num2也存储10
num1 = 12,#num1存储改成了12
print("num1",num1)#12
print("num2",num2)#10
#,从这个例子中看到,num1改变不会影响num2的值
  • 值类型是直接存储对象本身的数据值,比如num1=10 ,直接存储的就是10
  • 上面说值类型是不可变的,但是代码中先是申明num1=10,然后又num1 = 12 ,似乎有点矛盾,实际上这是两个概念,这里num1=12是重新给num1赋值,本质上并不是内存中的10这个对象改变
  • 所谓不可变说的是同一内存地址下的值是不会发生改变
python 复制代码
#引用类型
list1 = [10,20,10]#引用list1指向[10,20,10]做个对象
list2 = list1#这个赋值过程实际是改变list2 的指向,让list2也指向[10,20,10]这个对象
#内存中[10,20,10]这个对象只有一份内存,list1和list2同时指向它
list1.append(17)
#list1执行append操作list1指向的对象变成了[10, 20, 10, 17],因为list1和list2指向同一份对象,所以改变list1影响list2,输出list2发现list2也变成了[10, 20, 10, 17]
#本质上是list1和list2同时指向[10, 20, 10, 17]
  • 引用类型list1,存储的是对象的引用,也就是内存地址,查询的时候是通过内存地址去找到对象 这个说起来有点抽象,举个例子,比如我们图书馆里存满了各种类型的书籍,管理系统上记录着我们每一本书的相关信息,包括名字、位置、分类等相关信息。当我们要找某一本书的时候通常是通过我们的系统查到书名,然后再根据相关的信息去找到书。上面的例子中list1类似于书名,而[10,20,10]是书这个对象,系统记录list1引用,然后list1引用指向[10,20,10]。
  • 赋值:赋值过程实际是改变list2 的指向,让list2也指向10,20,10对象 #内存中10,20,10这个对象只有一份内存,list1和list2同时指向他
  • 可变实际上说的是同一内存地址下的值是可以发生改变的

温馨提示

该课程内容对于没有编程基础的小白来说可能有点难以理解,不过不理解没关系,这里只是为了后面讲解几种数据类型做铺垫,可以先往后继续学习,当知道怎么用这些数据类型,慢慢的再回来理解也是可以的

相关推荐
用户0332126663675 小时前
如何使用 Python 将 JSON 转换为 Excel
python·excel
小小张说故事5 小时前
Python 的切片到底切了什么:拆开 slice 对象、负步长和 __getitem__
python
草莓熊Lotso5 小时前
【C++ 基于微服务的即时通讯系统】文件存储子服务实战:UUID生成、文件IO封装与全接口单元测试
开发语言·网络·数据库·c++·微服务·架构·单元测试
huaqianzkh7 小时前
WinForm C#:循环修改控件UI闪烁卡顿?SuspendLayout / ResumeLayout 与 BeginUpdate 优化
开发语言·ui·c#
沐晓时光17 小时前
C语言入门,内存函数知识讲解
c语言·开发语言
用户9562562542921 小时前
跟做:Firecrawl 单页转 Markdown 再丢进沙箱总结
python·api
威哥爱编程21 小时前
模拟面试智能体开发实战 02:回答等半分钟,谁还愿意练?把服务端和流式输出搭起来
python·agent·harmonyos
威哥爱编程21 小时前
模拟面试智能体开发实战 01:面试挂了都不知道挂在哪?用 Python 给自己造一个随叫随到的 AI 面试官
python·agent·harmonyos
2601_9679801121 小时前
Python行情API量化 02:顺序拉 20 要 2 秒?并发批量把时间压到 0.5 秒
python·api·限流·并发·量化
伞伞悦读21 小时前
【第81期】特征缩放怎么选:标准化、MinMax 与 Robust 的原理、泄漏对照和完整实验
人工智能·python·深度学习·机器学习