目录

  • 一.关于内存
  • 二.可变数据类型和不可变数据类型
    • 1.可变数据类型和不可变数据类型区别
    • 2.不可变数据类型
    • 3.可变数据类型
  • 三.重点总结
  • 四.猜你喜欢

零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门

Python 数据类型分别有整数 int / 浮点数 float / 布尔值 bool / 元组 tuple / 列表 list / 字典 dict;

其中数据类型分为两个大类,一种是可变数据类型;一种是不可变数据类型,两者有什么区别呢?

一.关于内存

在讲解 Python 可变数据类型和不可变数据类型之前需要先普及一下内存相关的简单知识!

在 Python 编程的时候,代码中的变量实际上都是存储在计算机内存中,当然这里指的内存在计算机中是虚拟的,你看不见摸不着!每一个内存都有一个对应的内存地址,讲到这里需要再次介绍一个 Python 内置函数 id,该函数可以用于获取内存地址!获取内存地址方法如下:

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python 可变数据类型和不可变数据类型.py
@Time:2021/3/20 23:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""if __name__ == "__main__":a = 10b = 20print("a的数据类型是:{} 地址:{}".format(type(a),id(a)))print("b的数据类型是:{} 地址:{}".format(type(b), id(b)))'''
输出结果:
a的数据类型是:<class 'int'> 地址:1994744256
b的数据类型是:<class 'int'> 地址:1994744576'''

分析下上面代码:定义了局部变量 a 和 b , Python 会自动给局部变量分配内存,分别用来存放整数 10 和 20 ,并通过内置函数 id 获取内存地址!关于内存这里不做过多介绍,你需要记住的是:每一个内存都有一个一个对应的内存地址,分配的内存在程序结束时由系统自动回收!

二.可变数据类型和不可变数据类型

Python 数据类型分别有整数 int / 浮点数 float / 布尔值 bool / 元组 tuple / 列表 list / 字典 dict ,这是 Python 开发中最常用的数据类型!

1.可变数据类型和不可变数据类型区别

可变数据类型:当该数据类型对应的变量的值发生了变化时,如果它对应的内存地址不发生改变,那么这个数据类型就是 可变数据类型。

不可变数据类型:当该数据类型对应的变量的值发生了变化时,如果它对应的内存地址发生了改变,那么这个数据类型就是 不可变数据类型。

总结:可变数据类型更改值后,内存地址不发生改变;不可变数据类型更改值后,内存地址发生改变。

2.不可变数据类型

不可变数据类型:数值类型(int、float、bool)、string(字符串)、tuple(元组)

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python 可变数据类型和不可变数据类型.py
@Time:2021/3/25 23:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""#整形变量
a = 10
print("整形变量a修改之前地址:{}".format(id(a)))
a = 20
print("整形变量a修改之后地址:{}".format(id(a)))
print("***"*20)#浮点数变量
a = 10.5
print("浮点数变量a修改之前地址:{}".format(id(a)))
a = 20.2
print("浮点数变量a修改之后地址:{}".format(id(a)))
print("***"*20)#字符串变量
a = "hello"
print("字符串变量a修改之前地址:{}".format(id(a)))
a = "world"
print("字符串变量a修改之后地址:{}".format(id(a)))
print("***"*20)#布尔值变量
a = False
print("布尔值a修改之前地址:{}".format(id(a)))
a = True
print("布尔值a修改之后地址:{}".format(id(a)))
print("***"*20)#元组的数据不能修改,否则会报错'''
输出结果:
整形变量a修改之前地址:1994744256
整形变量a修改之后地址:1994744576
************************************************************
浮点数变量a修改之前地址:2713286559088
浮点数变量a修改之后地址:2713286559136
************************************************************
字符串变量a修改之前地址:2713269294224
字符串变量a修改之后地址:2713269272112
************************************************************
布尔值a修改之前地址:1994252480
布尔值a修改之后地址:1994252448
************************************************************
'''

3.可变数据类型

可变数据类型:list(列表)、dict(字典)

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python 可变数据类型和不可变数据类型.py
@Time:2021/3/25 23:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""#列表
a = list()
print("列表a修改之前地址:{}".format(id(a)))
a.append(20)
print("列表a修改之后地址:{}".format(id(a)))
a.append(False)
print("列表a修改之后地址:{}".format(id(a)))
a.append("hello")
print("列表a修改之后地址:{}".format(id(a)))
print("***"*20)#字典
a = dict()
print("字典a修改之前地址:{}".format(id(a)))
a["name"]="zhangsan"
print("字典a修改之后地址:{}".format(id(a)))
a["age"]=18
print("字典a修改之后地址:{}".format(id(a)))
a["sing_dog"]=True
print("字典a修改之后地址:{}".format(id(a)))
print("***"*20)'''
输出结果:
列表a修改之前地址:2067294579016
列表a修改之后地址:2067294579016
列表a修改之后地址:2067294579016
列表a修改之后地址:2067294579016
************************************************************
字典a修改之前地址:2067294527992
字典a修改之后地址:2067294527992
字典a修改之后地址:2067294527992
字典a修改之后地址:2067294527992
************************************************************'''

三.重点总结

  • 1.不可变数据类型:数值类型(int、float、bool)、string(字符串)、tuple(元组)
  • ** 2.可变数据类型:list(列表)、dict(字典)**
  • ** 3.可变数据类型更改值后,内存地址不发生改变;不可变数据类型更改值后,内存地址发生改变;**

四.猜你喜欢

  1. Python 简介
  2. Python Pycharm Anacanda 区别
  3. Python2.x 和 Python3.x,如何选择?
  4. Python 配置环境
  5. Python Hello World 入门
  6. Python 代码注释
  7. Python 中文编码
  8. Anaconda 是什么?Anconda 下载安装教程
  9. Pycharm 提示:this license **** has been cancelled
  10. Pycharm 设置开发模板/字体大小/背景颜色
  11. Python 列表 list
  12. Python 元组 tuple

未经允许不得转载:猿说编程 » Python 可变数据类型和不可变数据类型

Python 可变数据类型和不可变数据类型 - Python零基础入门教程相关推荐

  1. pdf百度云下载 python编程 从数据分析到数据科学_python零基础入门教程,不同方向的,这很重要...

    很多人都在学python,对于大多数的人来说,方向最重要的,它决定着你的结果! ​编程小十接触过很多想学python的人,相对于自己的学习目的来说,很多时候容易选择不太正确的方向. 下面我简单介绍一下 ...

  2. python怎么输出浮点数_python 零基础入门教程第 2 章:基本数据类型 (一)

    一.什么是数据类型 编程语言通过一些复杂的计算机物理底层机制,创造不同类型的数据,用来表示现实世界中的不同信息,以便于计算机更好的存储和计算. 每种编程语言都会有一些基本的数据类型用来表示现实世界中的 ...

  3. 视频教程-Python零基础入门教程-Python

    Python零基础入门教程 从2012年从事互联网至今有7年软件编程经验,曾任职国内北京互联网公司,中南林业大学授课Python 现任逻辑教育Python课程负责人,精通Python语言,精通人工智能 ...

  4. Python零基础入门教程( 快速入门)

    前言 学无止境,无止境学. 今天要给大家分享的是<Python零基础入门教程01 快速入门>,这是一个系列的教程,从零基础到项目实战.在本教程中,我会给大家介绍Python入门的一些基础知 ...

  5. Python globals 函数 - Python零基础入门教程

    目录 一.Python globals 函数语法 二.Python globals 函数使用 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Pytho ...

  6. Python chr 函数 - Python零基础入门教程

    目录 一.Python chr 函数简介 二.Python chr 函数使用 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一 ...

  7. Python callable 函数 - Python零基础入门教程

    目录 一.Python callable 函数简介 二.Python callable 函数使用 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Pyt ...

  8. Python len函数 - Python零基础入门教程

    目录 一.Python len 函数简介 二.Python len 函数使用 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 在 ...

  9. Python bin 函数 - Python零基础入门教程

    目录 一.Python bin 函数简介 二.Python bin 函数语法 三.Python bin 函数使用 四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 > ...

  10. Python issubclass 函数 - Python零基础入门教程 2021-07-14 09:24:43

    目录 一.Python issubclass 函数介绍 二.Python issubclass 函数使用 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> ...

最新文章

  1. Scrum Meeting 博客汇总
  2. pythonweb框架Flask学习笔记05-简单登陆
  3. 【Canal源码分析】TableMetaTSDB
  4. 云服务器 怎样修改地域,云服务器 怎样修改地域
  5. 一文详解 | 开放搜索兼容Elasticsearch做召回引擎
  6. VuePress 1.0.0 发布,Vue 轻量级静态网站生成器
  7. datagrid中动态显示或隐藏某一列的方法(根据条件判断显示和隐藏)
  8. Android handler.obtainMessage()传字符串用法
  9. 线索二叉树 - 数据结构和算法48
  10. cartographer探秘第四章之代码解析(七)--- pose_extrapolator.h 及 imu_tracker.h
  11. 世界著名厂家单片机简介
  12. 如何做gif动图表情包?轻松一键快速制作gif表情包
  13. 2022年指数与指数公司行业研究报告
  14. Hough直线检测的原理与实现
  15. 操作系统位数与数据字节数的关系
  16. 【leetcode】脑子打结的题
  17. Python安装包(3.6和3.8)及Pycharm安装及汉化包
  18. carla中车辆的朝向(yaw 偏航角)
  19. JS文件应该放在什么位置
  20. 嵌入式系统开发笔记79:电磁波频谱的划分

热门文章

  1. containerd与安全沙箱的Kubernetes初体验
  2. GPU云服务器深度学习性能模型初探
  3. 汇聚技术与能力,共绘区块链远大蓝图!
  4. 小困惑,关于 Serverless 函数计算的字体安装
  5. 纷享销客完成新一轮数亿元融资,持续领跑中国CRM产业发展
  6. 收藏!企业数据安全防护5条建议
  7. 小企业的第一台服务器如何选?
  8. 云存储精华问答 | 云存储是如何工作的?
  9. 1024程序员节 | 我敢____,你敢么?Are you ready?
  10. ref绑定dom的三种写法