python全栈学习记录(三)变量、数据类型和内存管理

变量、数据类型和内存管理

一、变量

1.变量的使用

age=18
sex='male'
height=1.81

左侧的age为变量名,中间的=表示赋值符号,右侧的18为赋给变量的具体数值。

2.变量的命名规范

大前提:变量名的命名应该能反映变量值所记录的状态

  • 变量名只能是字母、数字或下划线的任意组合
  • 变量名的第一个字符不能是数字
  • 关键字不能声明为变量名

3.变量的使用风格

  • 驼峰体:
    首字母大写作为多个字母的间隔标识,一般用于类的命名。
class CompanyPosition():
	pass
  • 下划线
    小写字母+下划线组合,并用下划线作为多个字母的间隔标识(变量常用的命名方式)。
age_of_tim=40
number_of_student=60

4.常量

python没有专门的语法定义常量,故约定俗成用全部大写的变量表示常量。

PI=3.1415926

二、基本数据类型

在这里插入图片描述

三、内存管理

1.python的存储原理

在python中变量名和变量值内存地址的关联关系存放在栈区,而变量值存放在堆区,内存管理回收的是堆区的空间。
例如x=10,y=100
注:图中#数字表示不同的内存地址,后面的图中也是表示此意。
在这里插入图片描述
python变量中存储的是值的内存地址,同样的列表、字典等类型中存储的也是值的内存地址。
若改变上方代码中x的值,使其变为100,也就是把100的内存地址存储到了x中,如下图所示。
在这里插入图片描述

2.直接引用与间接引用

直接引用指的是从栈区出发直接可以引用的内存地址中的值。
间接引用指的是从栈区出发后,还要再进一步的引用才能引用出内存地址中的值 。

x=10
y=[100,x]

图中#数字表示不同的内存地址

在上述的代码中x直接引用了值10,y直接引用了列表,间接引用了100、10两个值。

3.垃圾回收机制

如下图中,10这个值上没有被任何变量直接或间接引用,它是用不到的数据,会额外占用内存空间。python中的垃圾回收机制会定期扫描内存中的数据,当发现此类数据时就会将其清理掉以减少内存的占用。
在这里插入图片描述

4.小整数池与字符串驻留机制

当python解释器运行时,会提前准备好[-5,256]范围内的整数值,这些数值在不被引用的情况下也不会被垃圾回收机制清理掉。
在python中值相同的字符串仅仅会保存一份被存在同一个内存空间中,也就是说多个变量同时共用一个字符串。但是这种驻留机制触发的前提有两点:

  • 字符串仅包含数值、字母和下划线
  • 字符个数不超过20
s1='abc'
s2='abc'
s1 is s2
>>>True

s1='ab c'
s2='ab c'
s1 is s2
>>>False

s1='ab'*11
s2='ab'*11
s1 is s2
>>>False
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值