变量

变量

在python中变量是什么?我们天天说变量,什么变量的命名规范,那么什么是变量?

首先在python中使用变量,不需要提前声明,也不需要指定类型

变量类型

我们天天说的变量其实是说变量类型:

变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。

变量名称:

变量的命名规范:

  1. 字母数字下划线组成,不能以数字开头
  2. 除了类名和异常名称外均使用小写字母加_的形式
  3. 类名和异常名大写字母开头并使用_分割
  4. 常量或全局全部使用大写字母

既然都有命名规范了,那么变量一定会有一个变量名

变量赋值

相信有句话我们也天天说:把xxx赋值给变量a,为什么我们要说<赋值>这个词?

a = 1

这句话的意思先不说,我们先看看这句话是怎么运行的:

  1. 在内存中开辟了一块内存空间,内存空间中的数据是1
  2. 在内存中开辟了一个叫 a 的变量
  3. 变量a 指向了 步骤1中的内存地址
  4. 变量a 创建成功

这里的 ‘=’ 号并不是数学中的等号,而是赋值运算符。将对象引用和内存中的某个对象进行绑定

简单的说就是开辟了一个整数类型的1 ,和一个变量a, a指向了1 。这就是赋值

赋值的作用就是让变量指针指向某一个对象 ,也就是说变量其实存储了一个对象的引用

变量的作用仅仅是一个标识,只有在赋值后才会被创建。=号用来关联变量和对象之间的关系

>>> b
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'b' is not defined

仅定义一个变量名b,并不能成功创建一个变量,而是会报错:提示 变量名为b的变量 没有定义

也就是验证了变量只有在赋值后才会创建

a = 1
a = '1'
a = True

可以发现变量可以指向任何类型的数据,但是我们之前说过变量本身是没有类型的,但是变量的类型是如何来的呢?

>>>a = 1
>>>type(a)
<class 'int'>
>>>type(1)
<class 'int'>

变量的类型是对象的类型

>>> a = 1000
>>> id(a)
10932896
>>> id(1000)
10932880
>>> a
1000

我干了什么呢?定义了一个变量 查看了变量的id 又查看了 值的 id,发现这两个的id不一致。(id() 查看python中的内存地址(虚拟的))这也证明了 变量 仅仅是一个标识,并不是值, 当我们输入a 的时候就会打印出1000也验证了 变量 存储的是 对象的引用

小结:

  • 变量是由 标识符、类型、值 组成,缺一不可
    • 标识符可以理解成 内存地址,作为变量的唯一标识
    • 类型:type 对象的类型
    • 值: value 对象的值
  • 变量存储了一个对象的引用
  • 变量起到一个标识作用
  • 变量只有赋值后才会创建

举个栗子

a = 1
b = a
a += 1
print(a)
print(b)
创建了变量aa 指向 数字类型的对象 1
创建了变量b 将b 指向 变量a(因 a是变量,进而 指向 数字类型的对象 1)
这时 a b 同时指向了 数字类型对象 1
a += 1 由于a的类型是int 不可变数据类型 所有没有实现就地加方法 即调用 a = a + 1
所以 创建了一个新的数字类型的对象 2 并将a 指向该对象
最终打印结果: 2 1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值