Python中的变量与常量


Posted in Python onNovember 11, 2021

 

一、变量、常量的区别

  • 变量:在程序运行过程中,值会发生变化的量。
  • 常量:在程序运行过程中,值不会发生变化的量。

无论是变量还是常量,在创建时都会在内存中开辟一块空间,用于保存它的值。

二、变量

1. Python中的变量不需要声明类型

这是根据Python的动态语言特性而来。变量可以直接使用,而不需要提前声明类型。例如下面的a,b,c,d四个变量,在使用前没有进行任何的诸如 int a, str b, list c , int d 的类型声明,而这在C语言和JAVA编程语言中是必须要携带的。

例如:

a = 4 
 b = "haha" 
 c = [] 
 d = 9-5

2. 用“=”号来给变量赋值

a = 100

这里的等号要理解并读作“赋值”,而不是“等于”,“赋值”是对变量的操作,而“等于”是对两个变量进行比较。上面的a,b,c,d四个变量,就通过“=”号,赋予了不同的值。

3. 赋值

每个变量在使用前都必须赋值,变量赋值以后才会被创建。

新的变量通过赋值的动作,创建并开辟内存空间,保存值。如果没有赋值而直接使用会抛出赋值前引用的异常或者未命名异常。

例如:

a       # 孤单单一个a,什么也表示不了,只能报错 
a = 1   # 这样就没问题了,解释器知道a是个新变量了 
c.append(1)     # c是个什么鬼? 
NameError: name 'c' is not defined

结果:

Python中的变量与常量

4. 变量

Python中,变量本身没有数据类型的概念

通常所说的“变量类型”是变量所引用的对象的类型,或者说是变量的值的类型。

a = 1 
a = "haha" 
a = [1, 2, 3] 
a = { "k1":"v1"}

变量a在创建的时候,赋予了值为1的整数类型,然后又被改成字符串“haha”,再又变成一个列表,最后是个字典。变量a在动态的改变,它的值分别是不同的数据类型,这是动态语言的特点。

5. “=”

“=”号这个赋值运算符是从右往左的计算顺序

a = 1 
b = 2 
c = a + b  # 先计算a+b的值,再赋给c 
print(c)

Python中的变量与常量

6. Python允许同时为多个变量赋值

(例如:a = b = c = 1,最终大家都是1)。也可以同时为多个变量赋值,用逗号分隔,逐一对应。

例如:a, b, c = 1, 2, 3,最后a是1,b是2,c是3。

不要把赋值语句的等号等同于数学的等号。

x = 1 
 
x = x + 2

如果从数学上理解x = x + 2那无论如何是不成立的,在程序中,赋值语句先计算右侧的表达式x + 2,得到结果3,再赋给变量x。由于x之前的值是1,重新赋值后,x的值变成3。

a = 'ABC'时,Python解释器干了两件事情:

  • 在内存中创建了一个‘ABC'的字符串对象;
  • 在内存中创建了一个名为a的变量,并把它指向'ABC'。

也可以把一个变量a赋值给另一个变量b,这个操作实际上是将变量b指向变量a所指向的数据,

例如下面的代码:

a = 'Jack' 
b = a 
a = 'Tom' 
print(b) 
print(a)

最后变量b的内容到底是'Jack'还是'Tom'?如果从数学意义上理解,就会错误地得出b和a相同是‘Tom',但实际上b的值还是'Jack ‘!

请牢记:Python中的一切都是对象,变量是对象的引用!

图:

Python中的变量与常量

执行a = ‘Jack',解释器创建字符串‘Jack'对象和变量a,并把a指向‘Jack'对象;

执行b = a,解释器创建变量b,并且将其指向变量a指向的字符串‘Jack'对象;

执行a = ‘Tom',解释器创建字符串‘Tom'对象,并把a改为指向‘Tom'对象,与b无关。

三、常量

常量就是不变的变量,比如常用的数学常数圆周率就是一个常量。在Python中,通常用全部大写的变量名表示常量:

PI = 3.14159265359

但事实上,从Python语法角度看,PI仍然是一个变量,因为Python根本没有任何机制保证PI不会被改变。你完全可以给PI赋值为10,不会弹出任何错误。所以,用全部大写的变量名表示常量只是一个习惯上的用法。

常量通常放置在代码的最上部,并作为全局使用。

四、总结

到此这篇关于Python中的变量与常量的文章就介绍到这了,更多相关Python变量与常量内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
使用Python的PEAK来适配协议的教程
Apr 14 Python
教大家使用Python SqlAlchemy
Feb 12 Python
利用python爬取散文网的文章实例教程
Jun 18 Python
Python实现通讯录功能
Feb 22 Python
PyTorch CNN实战之MNIST手写数字识别示例
May 29 Python
python pytest进阶之xunit fixture详解
Jun 27 Python
解决pytorch-yolov3 train 报错的问题
Feb 18 Python
Python是什么 Python的用处
May 26 Python
树莓派4B安装Tensorflow的方法步骤
Jul 16 Python
Python中三维坐标空间绘制的实现
Sep 22 Python
python爬虫中PhantomJS加载页面的实例方法
Nov 12 Python
python如何利用traceback获取详细的异常信息
Jun 05 Python
Python 键盘事件详解
Nov 11 #Python
Python 详解通过Scrapy框架实现爬取CSDN全站热榜标题热词流程
Nov 11 #Python
Python 多线程处理任务实例
Nov 07 #Python
python利用while求100内的整数和方式
Nov 07 #Python
python中if和elif的区别介绍
Nov 07 #Python
python中取整数的几种方法
Python 中的 copy()和deepcopy()
Nov 07 #Python
You might like
使PHP自定义函数返回多个值
2006/11/26 PHP
Mysql和网页显示乱码解决方法集锦
2008/03/27 PHP
php session和cookie使用说明
2010/04/07 PHP
php魔术方法与魔术变量、内置方法与内置变量的深入分析
2013/06/03 PHP
使用php 获取时间今天明天昨天时间戳的详解
2013/06/20 PHP
用PHP实现弹出消息提示框的两种方法
2013/12/17 PHP
php下获取http状态的实现代码
2014/05/09 PHP
详解HTTP Cookie状态管理机制
2016/01/14 PHP
php的socket编程详解
2016/11/20 PHP
laravel 字段格式化 modle 字段类型转换方法
2019/09/30 PHP
Jquery ajaxStart()与ajaxStop()方法(实例讲解)
2013/12/18 Javascript
jQuery仿gmail实现fixed布局的方法
2015/05/27 Javascript
javascript控制层显示或隐藏的方法
2015/07/22 Javascript
利用jquery实现下拉框的禁用与启用
2016/12/07 Javascript
Jquery EasyUI Datagrid右键菜单实现方法
2016/12/30 Javascript
bootstrap模态框嵌套、tabindex属性、去除阴影的示例代码
2017/10/17 Javascript
vue 解决addRoutes动态添加路由后刷新失效问题
2018/07/02 Javascript
微信小程序 函数防抖 解决重复点击消耗性能问题实现代码
2019/09/12 Javascript
vue自定义switch开关组件,实现样式可自行更改
2019/11/01 Javascript
VueQuillEditor富文本上传图片(非base64)
2020/06/03 Javascript
有关wxpython pyqt内存占用问题分析
2014/06/09 Python
python编程测试电脑开启最大线程数实例代码
2018/02/09 Python
解决nohup重定向python输出到文件不成功的问题
2018/05/11 Python
详解Django中类视图使用装饰器的方式
2018/08/12 Python
Python时间序列处理之ARIMA模型的使用讲解
2019/04/02 Python
python智联招聘爬虫并导入到excel代码实例
2019/09/09 Python
Django多层嵌套ManyToMany字段ORM操作详解
2020/05/19 Python
基于 HTML5 Canvas实现 的交互式地铁线路图
2018/03/05 HTML / CSS
微软巴西官方网站:Microsoft Brasil
2019/09/26 全球购物
用C语言实现文件读写操作
2013/10/27 面试题
某IT外企面试题-二分法求方程!看看大家的C++功底
2015/07/04 面试题
生日宴会答谢词
2014/01/09 职场文书
中学生差生评语
2014/01/30 职场文书
长城导游词300字
2015/01/30 职场文书
2019年“我为祖国点赞”演讲稿(3篇)
2019/09/26 职场文书
python文本处理的方案(结巴分词并去除符号)
2021/05/26 Python