Python基础 B-02 基本语法之-变量&常量

基本语法之-变量&常量

一、变量

1.1、作用

就是把程序运算的中间结果临时存储到内存里,以备后面的代码继续调用。

1.2、变量申明

name = huangxx
其中name就是变量名(标识符),huangxx就是变量值

1.3、变量定义规则
a、命名要求:
  • 变量名只能是 字母、数字或下划线的任意组合
  • 变量名的第一个字符不能是数字
  • 关键字不能声明为变量。关键字有如下:[‘False’, ‘None’, ‘True’, ‘and’, ‘as’, ‘assert’, ‘async’, ‘await’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘nonlocal’, ‘not’, ‘or’, ‘pass’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’]

附-Python3 查看关键字都有哪些的方法:

>>> import keyword
>>> print(keyword.kwlist)
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
b、命名规范:
  • 驼峰命名法: CustomerName
  • 下划线分割命名: customer_name (推荐使用,清晰明了)
  • 不推荐使用中文、拼音作为变量、不推荐变量名过长、不推荐变量名词不达意———这些都让人觉的很low
1.4、变量的其他定义方法
a、连续多个变量定义
num1 = num2 = num3 = 1
b、交互式赋值定义变量
num6, num7 = 6,7
1.5、变量的变化
变量的创建过程

首先,当我们定义了一个变量name = ‘oldboy’的时候,在内存中其实是做了这样一件事:
程序开辟了一块内存空间,将‘oldboy’存储进去,再让变量名name指向‘oldboy’所在的内存地址。如下图所示:
在这里插入图片描述

变量是保存在内存中的,存放在内存中就会分配地址,查看变量在内存中的地址方法,如下:

>>> name = "oldboy"
>>> id(name)
4317182304
变量的修改过程

实际的原理什么样的呢? 程序先申请了一块内存空间来存储‘oldboy’,让name变量名指向这块内存空间
执行到name=‘alex’之后又申请了另一块内存空间来存储‘alex’,并让原本指向‘oldboy’内存的链接断开,让name再指向‘alex’。
在这里插入图片描述

>>> name = "oldboy"
>>> id(name)
4317182304
>>> 
>>> name = "alex" 
>>> id(name)  # 明显变量的id发生了变化。
4317182360
变量的指向关系
>>> name1 = 'oldboy'
>>> name2 = name1   # 把name1赋值给name2,这样name2的值也是oldboy了
>>> print(name1,name2)
oldboy oldboy
>>> 
>>> name1 = 'alex'  
>>> print(name1,name2) #改了name1后,name2为何没跟着改? 
alex oldboy

要想知道上面问题的结果是为什么,首先要了解在内存中两个变量的存储情况
在这里插入图片描述

从上面的示意图中我们可以知道,当执行name2=name1这句话的时候,事实上是让name2指向了‘oldboy’所在的内存地址。
修改name1的值,相当于断开了name1到‘oldboy’的链接,重新建立name1和‘alex’之间的链接。在这个过程中,始终没有影响到name2和‘oldboy‘之间的关系,因此name2还是‘oldboy’,而name1变成了‘alex’。


二、常量

2.1、常量:指不变的量

Python没有关键字定义常量。大家约定使用全大写字母表示常量。比如 NUMBER = 3。
常见的常量,比如数字。1 、2 、3 、4、 π等

2.2、约定俗成定义:

在Python中没有一个专门的语法代表常量,程序员约定用变量名全部大写代表常量

AGE_OF_OLDBOY = 56

三、变量与常量关系

3.1、总结

[外链图片转存失败(img-lxsO3c81-1568902299948)(evernotecid://80031049-E486-4FD3-9EC6-7B083434A989/appyinxiangcom/1518045/ENResource/p900)]

3.2、特别说明:变量与常量的内存存储关系。

先看一段代码:

a = 3
b = a
a = 4
print('a=', a, 'id(a)=', id(a))
print('b=', b, 'id(b)=', id(b))

运行结果:
a= 4 id(a)= 4415029488
b= 3 id(b)= 4415029456

  1. 首先,在内存中分配一片空间,来保存常量 3 。如图
  2. 然后,在内存中分配一个空间,命名为变量a,并将常量 3 的地址(一般为起始地址) 保存在变量 a 的存储空间。也就是说,a里面保存的是常量3的地址。
  3. 在内存中分配一个空间,命名为变量b,并将常量 3 的地址(一般为起始地址) 保存在变量 b 的存储空间。也就是说,b里面保存的是常量3的地址。
  4. 首先,在内存中分配新的一片空间,来保存常量 4 。如图
  5. 然后,在内存中分配一个空间,命名为变量a,并将常量 4 的地址(一般为起始地址) 保存在变量 a 的存储空间。也就是说,a里面保存的是常量4的地址。

四、空值None

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值