Python中的变量与常量
作者:码农星期八 发布时间:2022-01-14 22:26:43
目录
一、变量、常量的区别
二、变量
1. Python中的变量不需要声明类型
2. 用“=”号来给变量赋值
3. 赋值
4. 变量
5. “=”
6. Python允许同时为多个变量赋值
三、常量
四、总结
一、变量、常量的区别
变量:在程序运行过程中,值会发生变化的量。
常量:在程序运行过程中,值不会发生变化的量。
无论是变量还是常量,在创建时都会在内存中开辟一块空间,用于保存它的值。
二、变量
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
结果:
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)
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中的一切都是对象,变量是对象的引用!
图:
执行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,不会弹出任何错误。所以,用全部大写的变量名表示常量只是一个习惯上的用法。
常量通常放置在代码的最上部,并作为全局使用。
四、总结
来源:https://developer.51cto.com/art/202111/689030.htm
猜你喜欢
- new_ 方法是什么?__new__方法其实就是创建对象的方法new()方法是在类准备将自身实例化时调用。一个类可以有多个位置参数和多个命名
- python 中有6大标准类型:数字(Number)字符串(String)列表(List)元组(Tumple)集合(Set)字典(Dicti
- 从前有三只小猪,长大自立了分别造房子住。老大搬来草堆堆出草屋,老二搬来木头搭出木屋,老三搬来砖头,砌墙,造烟囱,造出了坚固的砖房。一天晚上大
- 我就废话不多说了,大家还是直接看代码吧~print(np.shape(X))#(1920, 45, 20)X=sequence.pad_se
- 为网页设置防火墙的主要目的是根据网页内容对不同来访者提供不同的服务,利用Java Script或VB Script,我们很容易做到这一点。但
- 如何更改 pandas dataframe 中两列的位置:把其中的某列移到第一列的位置。原来的 df 是:df = pd.read_csv(
- PHP用代码实现文件下载,阅读PHP用代码实现文件下载,我们一般实现下载都是调用url来下载,但是遇到ie能识别打开的文件就不能用这种方式了
- 计算机键盘每天用得太多了,以致于我们无视它的存在(盲打),当然也很少有人去问这样一个问题——为什么键盘字母的排列方式是QWERTY而不是AB
- 自动化处理PDF文件使用Python完成简单的PDF文件处理操作,如PDF文件的批量合并、拆分、加密以及添加水印等。1. 批量合并PDF文件
- 安装python之后,我们往往面临这样一个问题,在命令行输入“python”,竟然出错,难道是没有安装成功吗?非也,其实是你的系统环境变量没
- 如下所示:pd.to_datetime(data[data['last_O_XLMC']==data['O_XLMC
- 关于Mysql的触发器,基本上每个Mysql教程里都有讲到,但是我发现那些教程里讲的都是如何处理其他表的数据。在Mysql中写触发器操作本表
- 本文实例为大家分享了OpenCV+face++实现实时人脸识别解锁功能的具体代码,供大家参考,具体内容如下1.背景最近做一个小东西,需要登录
- 本教程配置好后一劳永逸,不用再配置,每次只需要选择 Python 解释器即可打开KBEngine的服务器项目文件夹(资产目录)其主要工程目录
- 不知道大家有没有这样一个烦恼,“自己的电脑总是被别人使用,又不好意思设置密码”,所以利用python设计了一个程序来实现自由管控。功能虽然简
- 背景:pony是公司的首席体验官、首席产品经理。这次在产品峰会上pony将自己平时经验的积累与大家交流,体验较细。这次分享研发管理部,设计中
- 这几天想统计一下《中国人文社会科学期刊 AMI 综合评价报告(2018 年):A 刊评价报告》中的期刊,但是只找到了该报告的PDF版,对于表
- 1. 什么是存储过程?存储过程是SQL server所提供的Tran
- Filed under 数据库技术Leave a commentSQL Server命令行导数据两种方式bcp和sqlcmd先说一下bcp:
- 方法来源于土豆网的导航,在这里纪录一下实现的思路。主要是利用 position 属性的 absolute 和 relative 配