变量是什么
变量:记录事物变化的状态。
类似数学中的解方程,最后求得x=1,意思就是x代表1。
为了让计算机具备人的某项功能,能更好的完成人类下达的任务,由此诞生了变量。
变量怎么声明
# 变量名 赋值符号 变量值 name = "Tom" 复制代码
变量的命名规范
- 为了提高自己在程序员中的地位,切记不可用拼音。
- 为了提高自己在程序员中的地位,切忌不可用中文。
- 不可使用Python中的关键字。
- 不可数字开头。
常用的命名风格
- 纯小写+数字+下划线。变量名一般会采用这种方式。
- 驼峰体。第一个单词小写,其余单词首字母大写。
- 纯大写。这一般是用来定义程序中的常量。注意,这是约定俗成的规范,不是Python本身的语法。
变量的特性
每个变量都有一个在内存中的地址,称为:id。
每个变量在被赋值后都有不同类型,使用type内置方法可查看。
判断两个变量是否相等,可以使用is和==。
- is:判断两个变量是否属于同一内存空间,即id是否相等。
- ==:仅仅判断两个变量的值是否相等。
>>> x = 1 >>> y = 1 >>> x is y True >>> x == y True >>> q = 666 >>> p = 666 >>> q is p False >>> q == p True 复制代码
为什么变量等于1的时候,is判断相等呢?而变量等于666的时候,is判断不相等呢?
再看一段代码:
>>> def jj(): ... j = 666 ... k = 666 ... return j is k ... >>> jj() True >>> 复制代码
总结一下:
小整数池[-5,256]是全局解释器范围内被重复使用,永远不会被GC回收。
同一个代码块中的不可变对象,只要值是相等的就不会重复创建新的对象。
Python的关键字
总计35个关键字,列表如下:
- class
定义类
- def
用来定义方法
- import
包导入
- return
用来跳出函数,可同时返回一个值
- pass
类或者方法具体实现未想好时可以用pass暂代,避免报错
- lambda
匿名函数,不想给函数起名字,如:lambda x,y: x*y
- yield
def fab(max): a,b = 0,1 while a < max: yield a a, b = b, a+b for i in fab(20): print i,",", 复制代码
结果: 0 , 1 , 1 , 2 , 3 , 5 , 8 , 13 ,
- global
定义全局变量,要给全局变量赋值,就需要加上global
- from
导入模块,import 或者 from...import
- if
如果
- elif
再如果
- else
不然
if a > b: print"a > belif a < b: print"a < b"else: print"a = b" 复制代码
- for
for...in...一起使用,在一序列的对象上递归,遍历队列中的每个项目
- in
查找类别中是否包含某个元素,或者字符串a是否包含字符串b,不可查找list1是否包含list2
- None
空,无,假
- while
语序重复执行一块语句,一般无限循环的情况使用它
- with
- as
with...as 代替传统的try...finally语法,with所求对象必须有一个__enter__() 和一个__exit__()方法
- False
- True
- or
逻辑或
- and
逻辑与
- not
逻辑非
- continue
跳过continue后面循环块中的语句,继续进行下一轮的循环
- break
终止循环
- try
- except
- finally
try: f = open('xxx') except: print'fail to open' exit(-1) try: do something except: do something finally: f.close() 复制代码
- raise
可以显示的抛出异常,一旦执行raise语句,后面的代码就不执行了
- async
- await
- del
用于list列表操作,删除一个或者连续几个元素
- nonlocal
nonlocal是Python3新增的关键字,用于告知Python后面的变量定义在其他地方,不要在本函数中定义出一个新的局部变量。
- is
Python中的对象包含三要素:id、type、value。
id 用来唯一标识一个对象,type标识对象的类型,value是对象的值。
is用来判断对象a是否是对象b,用id来判断。
== 判断对象的value是否相等。
- assert
断言,如果断言出错则抛出异常 AssertionError