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

目录

  • 一.关于内存
  • 二.可变数据类型和不可变数据类型
    • 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 可变数据类型和不可变数据类型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/525428.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

udp计算机dll,Udp_SocketBll.dll

如果您下载的是DLL文件(如果是其他软件请无视下面的信息)&#xff1a;1、下载后根据您系统的情况选择X86/X64&#xff0c;X86为32位电脑&#xff0c;X64为64位电脑。 如果您不知道是X86还是X64&#xff0c;可以住个尝试。2、把dll文件拷贝到对应目录C:\Windows\System (Windows…

CTF工具-010editor

打开010editor官网找到linux版本010EditorLinux64Installer.tar.gz点击后&#xff0c;选Open with …方式 下载后点击Install.txt 按要求安装编辑器&#xff1a; 先提取安装包&#xff0c;在提取目录下打开终端&#xff0c;输入 ./010EditorLinuxInstaller即可安装 010editor相…

只讲技术,拒绝空谈!2018 AI开发者大会精彩议程曝光

2018 年 11 月 8-9 日&#xff0c;由中国 IT 社区 CSDN 与硅谷 AI 社区 AICamp 联合出品的 2018 AI 开发者大会&#xff08;AI NEXTCon&#xff09;将于北京盛大召开。届时&#xff0c;近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者将齐聚于此&#xff0c;展开全方位技…

Python 浅拷贝和深拷贝 - Python零基础入门教程

目录 一.Python 浅拷贝和深拷贝前言二.Python 普通的变量赋值三.Python 浅拷贝和深拷贝 1.Python 浅拷贝 copy2.Python 深拷贝 deepcopy3.Python 浅拷贝和深拷贝区别 四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.Python 浅拷贝和深…

CTF工具-seccomp-tools

seccomp-tools可以分析程序的seccomp状态&#xff0c;哪些被系统被禁用了安装 安装流程&#xff1a; sudo apt install gcc ruby-dev gem install seccomp-tools 之后便可直接分析程序的seccomp状态

Cloud一分钟 | 谷歌关闭社交平台;亚马逊云服务拿下10亿美元订单,劲敌微软败走麦城...

Hello&#xff0c;everyone&#xff1a;10月11日早&#xff0c;星期四&#xff0c;祝大家工作愉快&#xff01;一分钟新闻时间&#xff1a;完1.微信群&#xff1a;添加小编微信&#xff1a;tangguoyemeng&#xff0c;备注“进群姓名公司职位”即可&#xff0c;加入【云计算学习…

mino文件服务器删除文件,Spring-minio

Spring-minioMinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口&#xff0c;非常适合于存储大容量非结构化的数据&#xff0c;例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等&#xff0c;而一个对象文件可以是任意大小&#…

CTF工具-gdb简介

gdb简介 gdb是 GNU 开发的一个Unix/Linux下强大的程序调试工具。 使用 gdb 进行程序调试之前&#xff0c;gcc编译选项加上 -g 选项来讲调试信息加到可执行文件里 一般来说&#xff0c;GDB主要帮助你完成下面四个方面的功能&#xff1a; 1、启动你的程序&#xff0c;可以按照你…

Python 递归函数 - Python零基础入门教程

目录 一.Python 递归函数案例 1.Python 递归函数案例一2.Python 递归函数案例二3.Python 递归函数案例三 二.Python 递归函数总结三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一个函数在函数体内部调用自己&#xff0c;这样的函数称为…

Cloud一分钟 | 云存储服务商​Egnyte获7500万美元E轮融资,高盛领投

Hello&#xff0c;everyone&#xff1a;10月12日早&#xff0c;星期五&#xff0c;祝大家工作愉快&#xff01;一分钟新闻时间&#xff1a;完1.微信群&#xff1a;添加小编微信&#xff1a;tangguoyemeng&#xff0c;备注“进群姓名公司职位”即可&#xff0c;加入【云计算学习…

vuex modules ajax,VUE项目爬坑---6、vuex的真正存在的意义是什么

VUE项目爬坑---6、vuex的真正存在的意义是什么一、总结一句话总结&#xff1a;a、【避免低效的数据传递】&#xff1a;当多个组件嵌套的时候&#xff0c;只能父子传递&#xff0c;那么中间的组件只能做传递数据之用&#xff0c;数据不是它用&#xff0c;它却传递数据&#xff0…

CTF工具-gdb插件peda,pwndbg安装

gdb插件peda安装 安装很简单,到github上面它的教程就有 地址:https://github.com/longld/peda 安装流程&#xff1a; $git clone https://github.com/longld/peda.git ~/peda $echo “source ~/peda/peda.py” >> ~/.gdbinit $echo “DONE! debug your program with gdb…

Python sys模块 - Python零基础入门教程

目录 一.Python sys 模块简介二.Python sys 模块使用三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 在Python sys 模块提供对解释器使用或维护的一些变量的访问&#xff0c;以及与解释器强烈交互的函数&#xff01;关于 sys 模块在官网…

为什么阿里飞猪、滴滴、携程都被质疑滥用大数据杀熟?

技术本无罪&#xff0c;用的人多了&#xff0c;自然成为掩盖人性罪恶的根源。支撑「互联网」时代的大数据是如何一步一步沦落成利益的刽子手的&#xff1f;2018 年&#xff0c;「大数据杀熟」一词开始进入大众视野&#xff0c;且在互联网领域掀起了腥风血雨。近日&#xff0c;更…

电脑服务器传文件夹吗,服务器和电脑传文件夹吗

服务器和电脑传文件夹吗 内容精选换一换Model File:模型文件。单击右侧的文件夹图标&#xff0c;在后台服务器sample所在路径(工程目录/run/out/test_data/resnet-18/model)选择需要转化的模型对应的*.prototxt文件&#xff0c;并上传。Weight File:权重文件。请自行从https://…

BugkuCTF-MISC题1和0的故事

基础知识&#xff1a; PIL PIL是Python Imaging Library&#xff0c;它为python解释器提供了图像编辑功能。 PIL.Image.new()方法通过给定的模式和大小创建一个新图像。尺寸以(width,height)-tuple,以像素为单位。对于单波段图像&#xff0c;颜色作为单个值给出&#xff0c;对…

Python time 模块 - Python零基础入门教程

目录 一.前言二.Python time 模块常用函数介绍三.Python time 模块使用 1.Python time 模块获取时间2.Python time 模块自定义时间格式3.Python time 模块查看代码执行时间 四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 Python time 模…

面趣 | 这道微软面试题你会吗?

参加 2018 AI开发者大会&#xff0c;请点击 ↑↑↑问面试题目&#xff1a;两个单词如果包含相同的字母&#xff0c;次序不同&#xff0c;则称为字母易位词(anagram)。例如&#xff0c;“silent”和“listen”是字母易位词&#xff0c;而“apple”和“aplee”不是易位词。请定义…

2003文件共享服务器搭建,用Windows Server 2003搭建安全文件服务器(2)

选择“使用自定义共享和文件夹权限”&#xff0c;点击自定义按钮之后弹出自定义权限设置界面。在这里可以根据需要对不同用户设置不同的权限&#xff0c;例如可以对 Administrators用户组设置完全控制以赋予所有管理员对该共享文件夹的全部管理权限&#xff0c;为Guest用户设置…

BugkuCTF-MISC题baby_flag.txt

下载附件得到一个压缩包baby_flag.zip 打开得到baby_flag.txt&#xff0c;直接点击打开发现乱码 通过010editor打开观察发现这是一个图片文件 将文件后缀改为.jpeg得到一张图片 通过binwalk -e …未分离出有价值的信息 在010editor发现有RAR压缩包的头 将这一部分数据复制…