变量是 Python 程序用来保存计算结果的存储单元,为了方便访问这块存储单元,Python 给这块存储单元命名,该名称即为变量名,在 Python 中通过变量名来访问保存计算结果的存储单元。
上方这种官方教科书式的解释有些晦涩,结合我们生活中的 喝水
场景来解释一下。
在我们的日常生活中我们会用到 杯子
来喝水,但是除了喝水之外,我们还可以用同一个杯子来喝茶、喝可乐、喝茅台等等(我就用杯子喝茅台)。
这里的杯子我们可以看做是 "变量",水、茶、可乐等就是变量的值,往杯子里倒水、倒茶、倒可乐就是给 杯子这个变量的赋值过程
。
从这个场景我们可以得知,杯子盛水就是变量,杯子就是变量名,而水、茶等为变量的值。变量由变量名与变量的值组成,变量不变而变量的值却是可以变化的。
总结:
当我们命名了一个变量后,变量存在那里呢?毕竟它是看不见摸不着的东西,实际上我们电脑的内存是由很多个内存块组成的。每当我们声明了一个变量后,都会将其存储在我们的内存里。当然,变量也不会无限制的存储在内存,毕竟我们的内存是有限的,所以当很多个变量存储在我们的内存中,就会出现内存空间不足的情况。
总结:
下图就是 Python 中变量与内存的示意图
!
、@
、#
、$
、%
等合法的变量名称举栗如下:
name
SEX
creat_table
_drop_user
select__mobile
,该命名包含了2根下划线__init__
,该命名包含了2根下划线OpenLesson
,这种驼峰式变量名虽然可以在 Python 中使用,但并不是一个标准方法,所以不建议使用
不合法的变量名称举栗如下:
get$table
,该命名包含了字符$ab/c
,该命名包含了字符/且无任何意义01class_name
,数字不能作为变量名开头
现在我们做一个关于变量名的小练习
name = "Neo"
birthday = "2000-01-01"
cat_name, cat_years = "mimi", "3" # 多个变量名,可以连续使用,但左右数量必须相同
if __name__ == '__main__':
print("my name is:" + name)
print("my birthday is:" + birthday)
print("I have a cat,name is:" + cat_name, "years is:" + cat_years)
运行结果如下:
需要注意的是不同的编程语言之间的明明规范也是有所区别的~
Python命名建议遵循的一般性原则:
模块尽量使用小写命名,首字母保持小写,尽量不要用下划线 类名使用驼峰(CamelCase)命名风格,首字母大写,私有类可用一个下划线开头 函数名一律小写,如有多个单词,用下划线隔开 私有函数可用一个下划线开头 变量名尽量小写, 如有多个单词,用下划线隔开 常量采用全大写,如有多个单词,使用下划线隔开
python内部自带的用于处理业务逻辑的特殊单词, 上文我们提到过,变量名是绝对不能用关键字来命名的!
变量名与关键字的区别又在哪里?
变量名是用于给变量赋值使用;关键字用于业务逻辑的处理。
其实在 python 中并没有针对关键字进行分类。但是有一部分关键字我们将其作为变量名来使用的话,会直接报错,这类关键字我们可以称之为 强关键字
;
相反的有一部分关键字我们作为变量名使用时,并不会报错,但会失去关键字原有的功能,这类关键字我们可以称之为 弱关键字
,一般为 python 中的内置函数。
python中的常见关键字,以下表格中的关键字都是 强类型关键字
绝对不能使用其作为变量使用
关键字 | 含义 |
---|---|
True | 布尔类型,表示为真 |
False | 布尔类型,表示为假 |
def | 函数定义 |
if | 逻辑中的如果 |
elif | 逻辑中的或者如果 |
else | 逻辑中的否则 |
try | 异常语句的开启 |
is | 判断变量是否是某个类的实例 |
not | 逻辑运算,非的操作 |
or | 逻辑运算,或的操作 |
pass | 无实际意义,占位符 |
raise | 主动抛出异常 |
in | 判断变量是否在序列中 |
while | while循环语句 |
with | 简化python语句 |
yield | 从循环或函数依次返回数据 |
import | 导入语句,可与from共用 |
下面我们试试使用 强关键字
作为变量名
False 是 Python 的关键字,因此提示语法错误:SyntaxError: can’t assign to keyword
。
再试试看 弱关键字
作为变量名
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。