整理Python的数据类型和内存地址及存储内容之间的关系

面试中常被问到的python基础知识整理 面试中常被问到的python基础知识 为了找工作需求,我整理了一些常见的面试时被问到的python问题及回答,希望可以对你有所帮助。 1.python是什么? python是一种解释性语言,它的源代码可以直接运行,python代码在运行之前不需要编译,因为编译器会将源代码转换成中间语言,之后再翻译成机器码再执行。同时它也是动态类型语言,指的是你在声明变量时,不需要说明变量的类型。 2.python的优点及缺点 python适合面向对象的编程,因为它支持通过组合与继承的方式定义类 python简洁、简单 阅读详情

前段时间面试被Python巨基础的知识点卡挂了,学习之后今天整理一下。

结论:不可变数据类型,参数的内存地址和数据本身有关,和参数无关。可变的序列类型和映射类型等,参数的内存地址指定的是数据类型的外包装盒子,跟里面数据的变化没有关联。

Python中的基础数据类型有数字类型(int,float,complex)、文本类型(str)、序列类型(tuple元组、list列表、range范围)、映射类型(dict字典)、集合(set)。

其中数字类型、文本类型和元组,是不可变的。

结合以前对其他语言的掌握,发现用贴标签来理解参数、数据和内存地址的关系最合适不过了。

1,不可变数据类型        

int1 = 100
int2 = 200
int3 = int1
print(f"int1的内存地址是:{id(int1)},int1={int1}")
print(f"int2的内存地址是:{id(int2)},int2={int2}")
print(f"int3的内存地址是:{id(int3)},int3={int3}")

int1 = 300
int2 = 400
print(f"int1的内存地址是:{id(int1)},int1={int1}")
print(f"int2的内存地址是:{id(int2)},int2={int2}")
print(f"int3的内存地址是:{id(int3)},int3={int3}")

运行结果:
int1的内存地址是:140733336061464,int1=100
int2的内存地址是:140733336064664,int2=200
int3的内存地址是:140733336061464,int3=100

int1的内存地址是:1604551704752,int1=300
int2的内存地址是:1604551704944,int2=400
int3的内存地址是:140733336061464,int3=100

通过上面的代码和运行结果,可以总结:不可变数据类型,新建参数,就好比在数据上贴标签,像int1=int3就可以理解为在100上贴了2个标签。int1重新赋值300的时候,就好比在300的数据上贴了int1的标签,100的数据上还是int3的标签。参数的内存地址和数据本身有关,和参数无关。

2,可变数据类型

list1 = [1,2,3]
list2 = [10,20,30]
list3 = list1
print(f"list1的内存地址是:{id(list1)},list1={list1}")
print(f"list2的内存地址是:{id(list2)},list2={list2}")
print(f"list3的内存地址是:{id(list3)},list3={list3}")

list1.append(4)
list2.append(40)
print(f"list1的内存地址是:{id(list1)},list1={list1}")
print(f"list2的内存地址是:{id(list2)},list2={list2}")
print(f"list3的内存地址是:{id(list3)},list3={list3}")

 结果是:

list1的内存地址是:2247159304576,list1=[1, 2, 3]
list2的内存地址是:2247159306432,list2=[10, 20, 30]
list3的内存地址是:2247159304576,list3=[1, 2, 3]

list1的内存地址是:2247159304576,list1=[1, 2, 3, 4]
list2的内存地址是:2247159306432,list2=[10, 20, 30, 40]
list3的内存地址是:2247159304576,list3=[1, 2, 3, 4]

通过上面的代码和运行结果,可以发现list1和list3的地址,全程没有发生过变化。这类数据的标签是放在列表外面的[],类别类似一个盒子,在盒子上贴标签,跟盒子里的数据变化没有关系。同理,list1修改之后,list3随着一起变化了,是因为他们贴在了同一个盒子上。可变的序列类型和映射类型等,参数指定的是数据类型的外包装盒子,跟里面数据的变化没有关联。

理解了上面两段代码,在有面试问数据类型和地址的变化关系,就一点问题没有啦~

继续努力ヾ(◍°∇°◍)ノ゙ 

浙大版PTA Python程序设计 题目与知识点整理(综合版) python概述 编写程序 字符串列表元组 条件循环语句 集合和字典 函数 文件与异常 阅读详情

相关推荐

秦时明月6.2魔改版_从零到一部署指南_含安卓客户端配置与GM后台直通

本文提供《秦时明月》6.2魔改版从零开始的完整部署指南。详细讲解CentOS服务器环境准备、服务端文件部署与安装、关键端口开放及进程验证。重点涵盖安卓客户端APK的IP修改与重签名方法,并介绍了GM后台工具的访问与使用,助你快速搭建并管理专属游戏服务器。

garlic的博客 313

python参数内存地址

python参数内存地址 1.参数内存地址 查看某个值在内存中的地址 v1=123 id(v1) 函数值执行参数时,传递的是内存地址 #函数执行传参,传递的是内存地址 def func(data): print(data,id(data)) #wxy 2631904099312 v1='wxy' print(v1,id(v1)) # wxy 2631904099312 func(v1) python参数(传递内存地址)这个好处: 节省内存 对于可变类型在函数中修改元素内容,所有的地

m0_46926492的博客 3164

影刀RPA:轻松搞定Excel表格自动化操作

影刀RPA是一款功能强大的自动化工具,通过模拟人类操作实现各种重复性任务的自动化。零代码操作:通过拖拽式流程设计器,无需编程基础即可快速上手。功能丰富:提供丰富的组件库,涵盖文件操作、数据处理等多种功能。高效稳定:支持多任务并行,确保任务的高效执行和稳定性。支持Python语法:内置数据表格,支持Python语法,对新手友好,同时具备循环功能。通过影刀RPA,您可以轻松实现Excel表格的拆分、列数据合并和归档工作的自动化。这不仅节省了手动操作的时间,还能确保数据处理的高效和准确,提升工作效率和管理水平。

watwrmoon的博客 2560

python不同类型对内存的使用

首先先看一个计算机中的概念 1. bit就是位,也叫比特位,是计算机表示数据最小的单位, 它是长度为8的一串二进制码 2. byte就是字节 1 byte=8 bit 也就是 1 B 3. 1 KB=1024 B python可以使用 sys 中的 getsizeof函数来获取各种数据类型(对象)占用的内存大小 使用方式: >>> import sys >>> sys.getsizeof(1) # out: 28 >>> sys.getsizeof

u010996026的博客 1147

亿图图示(edrawmax中文版) v10.1.7pjb

edrawmax中文名叫做亿图图示,是一款非常棒的综合图形图表设计软件,既能实现流程图、架构图、工程图、思维导图等数百种专业领域图形图表的绘制,又能提供一个白板进行头脑风暴和任意编排,轻松实现数据和创意的可视化呈现。软件支持Windows、Mac、Linux及网络版,一端创作,多端同步,从而为跨端办公绘图提供新的解决方案,还兼容常用文档类的办公软件格式,包括图片、Office、PDF、Visio、Html、SVG等,尽可能的在文件格式这块满足用户多方面需求。软件支持创建260多种图表类型,拥有超过12500

qq_43293214的博客 1万+

Unity坦克物理系统:履带驱动与力场建模实战指南

在游戏物理仿真中,履带车辆的运动建模远超传统轮式控制器的范畴。其核心在于摒弃WheelCollider的滚动幻觉,转向基于牛顿力学的力与力矩协同求解——通过主推进力场、转向力矩场和地面反作用力场三重叠加,实现对质量、摩擦、惯性及坡度阻力的真实响应。这种建模方式不仅支撑坦克爬坡、陷泥、侧倾等复杂行为,更保障了多人同步与高帧率下的物理稳定性。Physics Tank Maker 正是这一思路的工业级落地,它将PhysX底层机制与坦克动力学深度耦合,提供可调参数、事件驱动视觉反馈及标准扩展接口,成为面向严肃模拟类

weixin_29535577的博客 562

【Python基础】整数、字符串、列表、字典的内存结构

整数、字符串、列表、字典的内存结构

qq_43255940的博客 983

ADS1299寄存器配置与应用实战指南

本文提供了ADS1299高精度生物电信号采集芯片的寄存器配置与应用实战指南。详细解析了采样率、增益、转换模式等核心寄存器的设置方法,并分享了数据读取、高级功能配置及常见问题的调试心得,帮助开发者快速掌握ADS1299的配置技巧,实现稳定的ECG/EEG信号采集。

weixin_28278377的博客 194

python基础数据类型浅析

python基础数据类型 以下代码均在 win64位电脑 python3.6解释器中运行 说到基础数据类型,我们可以很容易的想到 数字 字符串 元组…… 数字 我们都知道数字int 是不可变数据类型,也就是每一个数字都会开辟一块内存空间进行存储数据。 >>> id(1) 499664528 >>> id(2) 499664544 >>> id(3) 499664560 >>> i

小白 460

LabVIEW多设备采集实战:1个程序同时控制3个RS485 Modbus仪表

本文详细介绍了如何使用LabVIEW实现多设备RS485 Modbus同步采集,涵盖硬件架构设计、多线程通信框架搭建、数据帧解析技巧及性能优化策略。通过实际项目案例,展示如何解决端口冲突、数据解析错误等工业自动化常见问题,提升采集系统实时性与可靠性。

qsc901234的博客 306

OpenStack详解、排错、经验总结

第1章 Openstack简介 1.1 计算(Compute):Nova。 一套控制器,用于为单个用户或使用群组管理虚拟机实例的整个生命周期,根据用户需求来提供虚拟服务。负责虚拟机创建、开机、关机、挂起、暂停、调整、迁移、重启、销毁等操作,配置CPU、内存等信息规格。自Austin版本集成到项目中。 1.2 对象存储(Object Storage):Swift。 一套用于在大规模可扩展系统中通过内置冗余及高容错机制实现对象存储的系统,允许进行存储或者检索文件。可为Glance提供镜像存储,为Cinder提供

weixin_40548182的博客 1974

可变与不可变

"""s是判断的内存地址,==是判断的值可变数据类型:value值改变,id值不变;列表,字典,集合不可变数据类型:value值改变,id值也随之改变。数字,字符串,布尔,元祖"""# 1.数字a=2print(id(a))b=2print(id(b))c=3print(id(c))# 2.列表l=[1,2,3]print(id(l))l[0]=-1print(l)print(id(l)...

bangshanx81657的博客 141

华为OD机试真题 新系统2026-04-01 C++ 实现【计算数列位置N的值】

如果其前面的M个元素中,存在值相同的元素,则该位置上的数值等于前面M个数中最大的数值与最小的数值之如果其前面的M个元素中,不存在值相同的元素,则该位置上的数值等于前面M个数中最大的数值与最小的数值之差;1、输入M、N两个数,则按照以下规则形成一个数列;两个整数,用逗号分割,分别表示M和N。一个整数,表示数列第N个位置上的数值。2、数列的前M个元素的值为1到M;请计算该数列第N个位置上的数值。N取值范围:1<= N<=50。M取值范围:3<=M<=10。

MISAYAONE的博客 1157

python笔记整理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 前言 本文是笔者在自学python过程中的笔记,这里是最基础的部分,主要是一些方法的应用,以及和c不同的点,由于是自己整理,所以可能有地方不对,希望大家批评指正,谢谢 本文参考《Python从入门到精通》——明日科技编著 提示:以下是本篇文章正文内容,下面案例可供参考 末尾不用加分号 注释用#或者’’’ ‘’’或者””” “”” 在语句中有引号不是注释,暂时不知道引号怎么打 不用{},所以注意缩进量,在:后面使用1个T

km2966603665的博客 9217

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Python学习---课后练习整理(一)

python课后练习 本学习的课程Python程序设计的练习在拼题A上完成,为了记录学习过程,对课后练习进行整理 Python练习–01 题目: 全新的界面设计 ,将会带来全新的写作体验; 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示; 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示; 全新的 KaTeX数学公式 语法; 增加了...

程序猿学习记录 3万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

python查看数据类型的方法_pycharm下查看python的变量类型和变量内容的方法

pycharm下查看python的变量类型和变量内容的方法用过Matlab的同学基本都知道,程序里面的变量内容可以很方便的查看到,但python确没这么方便,对于做数据处理的很不方便,其实不是没有这个功能,只是没有发现而已,今天整理一下供大家相互学习。首先,在程序的某一处添加断点,点击行号右边部分红处,如下图所示:添加断点后,选择debug程序,快捷键在pycharm的右上角。debug过程中,p...

weixin_39759918的博客 2750

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Python数据类型(一),Python内存泄漏总结

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

m0_62289824的博客 729

Python笔记整理

没有字符的数据,一律当成字符串处理,双引号和单引号都可以表示字符串。所有的变量都是引用数据类型变量)静态对于变量有明确的类型定义的 动态对变量没有明确类型定义的。所以,我们在使用内置函数的时候,一定要注意名称不能够被更改。向前走,直到碰墙为止:没有明显的循环次数的,但是有结束条件。中,基本数据类型变量(将常量数据存储在变量空间当中)中,引用数据类型变量(将对象在堆内存中的地址给变量)本质:变量它只存储数据在内存中的地址(引用类型变量)我的电脑图标,邮件,属性,高级系统设置,环境变量,

Hurry6的博客 617

暑假Python基础整理 -- Python语言基础

本文介绍了Python的基础语法特点、变量与数据类型,以及基本输入输出操作。主要内容包括:Python的注释规则、缩进规范、命名约定;变量的定义、类型和内存地址查询;数字、字符串、布尔等基本数据类型及其转换;使用input()和print()进行输入输出,以及pprint()格式化输出的方法。文章还提供了PEP8编码规范建议和常见错误示例,适合初学者快速掌握Python编程基础。

2401_86544210的博客 689

Python基础(粗略整理,笔者会持续更新)

Python基础(粗略整理,笔者会持续更新) 输出函数print print(520) # 可以输出数字 print(98.5) print("String") str4_ = "We all know that 'A' and 'B' are two capital letters." # 输出字符串,没毛病,单双都可 print(3+1) # 输出带运算符表达式 #可以输入到指定的文件 fp = open('S:/test.txt','a+') # 注意不是反斜杠。这个文件操作真的简单 a+ 以为

wakakawsad的博客 656

Python知识点整理

1.Python的数据类型 注:需要列出重要的几个数据类型的特点 Python3中有六个标准的数据类型:字符串(String)、数字(Digit)、列表(List)、元组(Tuple)、集合(Sets)、字典(Dictionary)。 Python 中,数值类型(int 和 float)、字符串 str、元组 tuple 都是不可变类型(该对象所指向的内存中的值不能被改变)。而列表 list、字典...

hh05726的博客 1158

Python部分笔记整理及练习题

print(a)​​。

2401_89039676的博客 412

Python基础入门,什么是变量?

说起编程语言,Python 也许不是使用最广的,但一定是现在被谈论最多的。随着近年大数据、人工智能的兴起,Python 越来越多的出现在人们的视野中。

youmaob的博客 2282

python常见知识点整理

Python是一个面向对象的解释型的交互式高级脚本语言:Python被设计成一种高可读性的语言,因为它大量地使用了英语中的单词作为关键字,而且不像其他语言使用标点符号构成复杂的语法结构,Python的语法结构非常少。Python是一种面向对象的语言:即Python是支持面向对象的,支持在对象中进行代码封装。Python是一种解释型语言:即Python程序是在运行时由解释器解释执行的,因而不用事先编...

cherish0123的博客 1万+

Python数据类型(一),Python实战项目视频

capitalize() 首字母变为大写,其它字母变为小写lower() 全部变为小写upper() 全部变为大写str1 = ‘tAiZhou’print(str1.capitalize())print(str1.lower())print(str1.upper())‘’’TaizhoutaizhouTAIZHOU‘’’strip() 去除字符串左右两边的空格lstrip() 去除字符串左边的空格rstrip() 去除字符串右边的空格str5 = ’ tai z hou ’print(s

2401_84104809的博客 985
上一篇: GIT工作原理-入门必看
下一篇: 什么是程序的时间复杂度(开发常识扩展)
lcl_bigdata
博客等级 码龄11年 268粉丝 67原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值