一、对象
python中,一切皆对象。 每个对象由:标识(identity)、类型(type)、value(值)组成。
1. 标识用于唯一标识,通常对应于对象在计算机内存的地址。使用内置函数id(obj)可返回对象obj标识。
2. 类型用于标识对象存储的“数据”的类型。类型可以限制对象的取值范围以及可执行的操作。可以使用type(obj)获得对象的所属类型。
3. 值表示对象所存储的数据的信息。使用print(obj)可以直接打印出值。
对象的本质就是:一个内存块,拥有特定的值,支持特定类型的相关操作。
二、引用
在Python中,变量也变成:对象的引用。变量存储的就是对象的地址。 变量通过地址引用了“对象”
变量 在 栈内存 中,对象 在 堆内存 中。
1. Python是动态类型语言
变量不需要显式申明类型。根据变量所引用的对象,Python解释器自动确定数据类型。
2. Python是强类型语言
每个对象都有数据类型,只支持该类型支持的操作。
三、标识符
标识符:用于变量、函数、类、模板等名称。标识符有以下特定规则:
1. 区分大小写。
2. 第一个字符必须是字母,下划线。其后的字符是:字母,数字,下划线。
3. 不能使用关键字。比如:if、or、while等。
4. 以双下划线开头和结尾的名称通常有特殊含义,尽量避免这种写法、比如:__init__是类的构造函数。
①使用python帮助系统 查看关键字
help()
②然后输入 keywords
help> keywords
◎●◎ Python的关键字
False | class | from | or |
None | continue | global | pass |
True | def | if | raise |
and | del | import | return |
as | elif | in | try |
assert | else | is | while |
async | except | lambda | with |
await | finally | nonlocal | yield |
break | for | not |
◎●◎ Python标识符命名规则
一般我们约定俗称遵守的规则:
类型 | 规则 | 例子 |
模块和包名 | 全小写字母,尽量简单。若多个单词之间用下划线 | math,book,name_id |
函数名 | 全小写字母,多个单词之间用下划线隔开 | my_name,sales |
类名 | 首字母大写,采用驼峰原则。多个单词时,每个单词第一个字母大写,其余部分小写 | MyName,UserName,Name |
常量名 | 全大写字母,多个单词用下划线隔开 | NAME,USER,PAI,MAX_SPEED |
四、变量相关知识
4.1 变量的声明
变量的声明和赋值用于将一个变量绑定到另一个对象上,一般格式为:变量名 = 表达式
#比如
a = 123456
注:变量在使用前必须被格式化(先被赋值)
4.2 删除变量和垃圾回收机制
使用 del 语句删除不再使用的变量。
a = 36
print("a的ID=" , id(a)) #输出:a的ID= 2114883093840
print("36的ID=" , id(36)) #输出:36的ID= 2114883093840
b = "ass"
print(a,b) #输出:36 ass
del a #删除变量a
print("36的ID=" , id(36)) #输出:36的ID= 2114883093840
print(id(a)) #输出:NameError: name 'a' is not defined
注:如果对象没有变量引用,就会被垃圾回收器回收,清空内存空间。
4.3 链式赋值
链式赋值用于同一个对象赋值给多个变量。
x=y=123 相当于 x=123;y=123;
4.4 系列解包赋值
系列解包赋值给对应相同个数的变量(个数必须保持一致)
a,b,c=1,2,3 相当于 a=1;b=2;c=3;
a,b,c = 1,2,3
print(a,b,c) #输出:1 2 3
4.5 常量
Python中不支持常量,即没有语法规则限制改变一个常量的值。只能约定常量的命名规则,以及在程序的 逻辑 上不对常量的值做出修改。