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传递参数方式小结
Apr 17 Python
Python3.4 tkinter,PIL图片转换
Jun 21 Python
Python图像处理之图像的缩放、旋转与翻转实现方法示例
Jan 04 Python
python安装pywin32clipboard的操作方法
Jan 24 Python
python随机在一张图像上截取任意大小图片的方法
Jan 24 Python
django 微信网页授权认证api的步骤详解
Jul 30 Python
Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)
Mar 10 Python
Django Admin设置应用程序及模型顺序方法详解
Apr 01 Python
python连接mysql有哪些方法
Jun 24 Python
python中数字是否为可变类型
Jul 08 Python
如何把python项目部署到linux服务器
Aug 26 Python
python 第三方库paramiko的常用方式
Feb 20 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
世界咖啡生产者论坛呼吁:需要立即就咖啡价格采取认真行动
2021/03/06 咖啡文化
PHP采集相关教程之一 CURL函数库
2010/02/15 PHP
CodeIgniter生成网站sitemap地图的方法
2013/11/13 PHP
在PHP站点的页面上添加Facebook评论插件的实例教程
2016/01/08 PHP
修改yii2.0用户登录使用的user表为其它的表实现方法(推荐)
2017/08/01 PHP
php合并数组并保留键值的实现方法
2018/03/12 PHP
php post json参数的传递和接收处理方法
2018/05/31 PHP
javawscript 三级菜单的实现原理
2009/07/01 Javascript
向当前style sheet中插入一个新的style实现方法
2013/04/01 Javascript
html dom节点操作(获取/修改/添加或删除)
2014/01/23 Javascript
JavaScript Function函数类型介绍
2015/04/08 Javascript
js实现字符串和数组之间相互转换操作
2016/01/12 Javascript
微信小程序入门教程
2016/11/18 Javascript
利用js判断手机是否安装某个app的多种方案
2017/02/13 Javascript
jQuery实现的回车触发按钮事件功能示例
2018/03/25 jQuery
详解vue项目接入微信JSSDK的坑
2018/12/14 Javascript
详解easyui 切换主题皮肤
2019/04/04 Javascript
详解iframe跨域的几种常用方法(小结)
2019/04/29 Javascript
Vue+Element-UI实现上传图片并压缩
2019/11/26 Javascript
vue实现鼠标移过出现下拉二级菜单功能
2019/12/12 Javascript
jQuery实现动态加载瀑布流
2020/09/01 jQuery
JS实现纸牌发牌动画
2021/01/19 Javascript
python编写暴力破解FTP密码小工具
2014/11/19 Python
python从入门到精通(DAY 3)
2015/12/20 Python
python多任务及返回值的处理方法
2019/01/22 Python
Python输出指定字符串的方法
2020/02/06 Python
Python模拟登入的N种方式(建议收藏)
2020/05/31 Python
纯CSS打造(无图像无js)的非常流行的讲话(语音)气泡效果
2012/12/28 HTML / CSS
Html5调用手机摄像头并实现人脸识别的实现
2018/12/21 HTML / CSS
锐步美国官方网站:Reebok美国
2018/01/10 全球购物
Dogeared官网:在美国手工制作的珠宝
2019/08/24 全球购物
亚洲最大的运动鞋寄售店:KicksCrew
2020/11/26 全球购物
会计电算化个人求职信范文
2014/01/24 职场文书
机关单位动员会主持词
2014/03/20 职场文书
2015年学校团委工作总结
2015/05/26 职场文书
python中Pyqt5使用Qlabel标签播放视频
2022/04/22 Python