本文主要介绍Python中的变量和常量,包括变量的命名规范,使用注意事项
-------------- 完美的分割线 ---------------
1.变量
1.1.变量理解
1)什么是变量
变量即变化的量,核心是“变”与“量”二字,变即变化,量即衡量状态。
完整的变量包括:变量名,等号,变量值
对于计算机,变量可以看做是一种存放信息的容器,用于存储在计算机程序中需要引用和操作的信息。
对于人,提供一种用描述性的名称对数据进行标记的方法,这样我们写的程序就可以更清楚地被读者和我们自己理解。
Python的变量不需要特别的声明,数据类型是Python自动决定的,可以直接输入
拓展知识:
变量的声明、定义、赋值和初始化有什么区别?
变量声明或定义:在环境中指定一个变量的名字。代表在内存中开辟一块区域。
赋值:销毁一个变量原来的值,并赋予一个新值。相当于改变了一个变量的状态。更改内存区域里的值。
初始化:一个声明后尚未初始化的变量一个有意义的初始值。即开辟内存区域时赋的值。不指定的话开辟时赋该类型的默认值。
注意:应注意区分初始化和赋值,在初始化之前不应该允许对变量进行赋值操作。
2)为什么要有变量
程序执行的本质就是一系列状态的变化,变是程序执行的直接体现,所以我们需要有一种机制能够反映或者说是保存下来程序执行时状态以及状态的变化。
3)何时需要用到变量?
一段程序或者数值需要在后面经常用到就可以用变量
1.2.变量的定义(创建)及命名规范
1)变量名要具有描述性的作用,要写的简洁直观易懂,且不要太长
2)变量名只能是字母、数字或下划线的任意组合,且不能以数字开头,可以下划线开头。
3)变量名可以用中文和拼音,但是尽量不要这样定义
4)以下关键字不能声明为变量名(被系统占用)
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
5)变量定义的等号左右建议用空格隔开(有无空格效果相同)
6)有两种定义方式:驼峰体和下划线
实例:
studentNumber = 30 # 驼峰体,java,asp开发人员常用 student_number = 30 # python常用这种的,下划线连接词组
注意区分:
1)定义函数用小写字母 def sayhi # 全小写 2) 定义类用驼峰体 class LuffyCity # 驼峰体
1.3.变量的多行赋值(格式化输出)
注释符号的其他应用---多行打印
msg = ''' name1 = "ddd" name2 = name1 ''' print (msg,name1,name2) ---> name1 = "ddd" name2 = name1 bbb aaa <---
1.4.Python中变量的修改和回收
如果你想让a存储不同的数据,你不需要删除原有变量就可以直接赋值。
1)直接重新赋值,相当于取消变量名与变量值的关系
a = 1.3 print(a,type(a)) --->1.3 <class 'float'>
2)删除变量delete
del aaa
3)超时清理
python有自己的内存回收机制,每隔一段时间,检查没有变量名的变量值,进行清理,一般不用担心内存会变满
4)用变量为变量赋值会涉及到变量的二次赋值问题
name1 = "aaa" name2 = name1 print (name1,name2 ) --->aaa aaa name1 = "bbb" print (name1,name2 ) --->bbb aaa
# 结论:
用变量name1给变量name2赋值,name1只是将他自己变量的值交付给name2,赋完值之后name2获取到新的值,
之后他们俩就没有关系了,此时无论name1如何变化也不会影响name2的值,因为”name2 = name1“并不是建立name1和name2的关系
1.5.变量的其他知识
定义变量会产生id,type,value等信息
1)等号比较的是变量的value值
2)is比较的是变量的id值
3)id相同的两个变量,代表占用的同一块内存空间,所以其type和value必定相同
4)两个变量的value相同,那么type肯定相同,但id可能不同,如下
x="I'm 18" y="I'm 18" id(x) --->139641415263432 id(y) --->139641415263488 x == y --->True x is y --->False
拓展知识:小整数池
1)在交互式模式下
Python实现int的时候有个小整数池。为了避免因创建相同的值而重复申请内存空间所带来的效率问题, Python解释器会在启动时创建出小整数池,范围是[-5,256],该范围内的小整数对象是全局解释器范围内被重复使用,永远不会被GC回收,每创建一个-5到256之间的整数,都是直接从这个池里直接拿走一个值,例如
y=4 id(y) --->4297641184 x=3 x+=1 id(x) --->4297641184
2)在pycharm中
在pycharm中运行python程序,pycharm出于对性能的考虑,会扩大小整数池的范围,其他的字符串等不可变类型也都包含在内一便采用相同的方式处理了,我们只需要记住这是一种优化机制,至于范围到底多大,无需细究
2.常量:不变的量
2.1.什么是常量?
全部都大写用于表示常量
例如:PIE = 3.1415926...
2.2.常量和变量区分
1)大写字母用于表示常量,小写字母用于表示变量,
2)在Python中没有一个专门的语法代表常量,所有的变量都是可变的,程序员约定俗成用变量名全部大写代表常量,常量也可以修改,但不建议
3)在c语言中有专门的常量定义语法,const int count = 60;一旦定义为常量,更改即会报错
拓展知识:在linux下声明变量
在linux下声明变量:变量名=变量值, “=”左右不能有空格,使用“$变量名”进行调用
而python中没有严格规定,空格可有可没有,建议等号左右加空格
# 完毕,呵呵呵呵