我们在之前的文章《RealPython 基础教程:Python基本数据类型介绍 》中了解了如何创建各种基本类型的数据,但是我们的例子中使用的都是“字面量”或者“常量” 。
>>> print(5.3)5.3
这显然不适于复杂的实用程序中,我们需要定义能够在程序执行过程中可以变化的数据 。
通过本文,你将了解到:
1,Python 中的所有数据元素都可通过抽象的对象(object)来描述
2,你将学会如何通过符号名称(变量)来操作这些对象 。
【变量的赋值】
我们可将变量视作附着在一个特定对象上的名称 。
在 Python 中,变量不必提前声明或定义 。这和其他一些编程语言不同,在那些编程语言里,变量必须先声明才可以使用 。
创建变量很简单,只需要为这个名称赋一个值就行了,然后你就可以使用它了 。
Python 使用等号(=)为变量赋值:
>>> n=300
这个赋值语句的意思是:n 被赋值为 300.
赋值完成后,n 就可以被用作语句或者表达式中了 。其值也会被更新 。
>>> print(n)300
我们也可以不使用 print() 函数,直接在 Python 解释器命令提示符窗口中输入 n 来打印其值 。
>>> n300
可以给 n 重新赋值 。
>>> n=1000>>> n1000
Python 允许链式赋值,这让我们可以同时为多个变量赋相同的值 。
>>> a = b = c = 300>>> a300>>> b300>>> c300
【Python 变量的类型】
数据类型是对数据上可执行操作的约定 。
在很多编程语言中,变量是静态类型 。其含义是,变量在初始化时需要声明为一个特定的类型,在后续的使用中也只能将相同类型的值赋给这个变量 。静态类型的变量,意味着在其上只能执行类型专有的操作 。
而 Python 中的变量不受此限制 。变量可以被赋予一个类型的值,之后再被赋予另一个类型的值 。
>>> var = 23.5>>> var23.5>>> type(var)
在实际应用中,动态改变变量的类型可能并非一个好的行为,这会引起理解和运行上的混乱 。
【对象引用】
当我们创建一个变量时,Python 解释器到底执行了什么操作?
了解这个问题的答案很重要,因为这和你在其他语言中理解的原来稍微有点不一样 。
Python 是一个高度面向对象的语言 。Python 程序中的每个数据元素都是一个特定类(class)的实例对象(object) 。
考虑下边这段简单的代码:
>>> print(300)300
当执行 print(300) 这条语句时,Python 解释器会做以下 3 个工作:
- 创建一个整数对象
- 为这个整数对象赋值 300
- 将这个整数对象输出到控制台
>>> type(300)
Python 变量其实只是一个名称而已,它是指向某个对象的引用或者指针,是“贴在这个对象上的一个标签” 。
一旦变量被赋值,你就可以通过变量名来引用它指向的对象,变量拥有的数据实际上是被保存在这个对象中 。
仍以这个简单代码为例:
>>> n=300
这个赋值语句创建了一个值为 300 的整数对象,并将变量 n 指向这个对象 。
文章插图
你可以这样理解:喏,整数为 300 的对象,给你贴个标签,你现在叫 n 了 。
以下代码就可看出 n 指向了一个值为 300 的 int 类型的对象:
>>> print(n)300>>> type(n)
再看下边这条语句:
>>> m = n
那么,执行这条语句时又发生了什么?
Python 并没有为 m 创建一个新的对象,而只是建立了一个新的名字 m,并将这个名字指向了 n 指向的对象 。
现在,值为 300 的整数对象身上贴了两个标签:n 和 m 。
我们接着执行以下操作:
>>> m=400
这时,Python 才又创建了一个新的值为 400 的整数对象,并将名字 m 指向这个对象 。
- 一文了解删除微信好友的两种方法 用什么方法删除微信好友
- 一文看懂2022苹果春季新品发布会 苹果2021秋季发布会
- 【游戏世界】明日方舟新六星奶妈特色和技能理解起来比较简单和轻松
- 止于至善”怎么理解 止于至善是什么意思
- 【游戏世界】《游戏王:决斗链接》沉默混沌全新顶级理解
- 【游戏世界】特战荣耀最后一战竟在开篇, 只是当时未曾理解, 回头再看心中感慨
- 一文读懂OPPO手机隐私保护功能 OPPO隐私保护
- 理解是女人送给男人最好的礼物 女人送男人什么礼物最好
- 美发色彩的调配理解 美发颜色调配
- 【游戏世界】王者荣耀: 为什么说甄姬是低端局T0英雄, 却有大量玩家不理解呢?