2018-04-30
python 关键字(Keywords)
声明:本文章大部分来自下面博客,对其作者表示感谢。以后会有详细的关键字说明。
【Python学习笔记之一】Python关键字及其总结 – Angel_Kitty – 博客园
1、and: 表示逻辑‘与’
2、del: 用于list列表操作,删除一个或者连续几个元素
3、from: 导入相应的模块,用import或者from…import
4、not: 表示逻辑‘非’
5、while: while循环,允许重复执行一块语句,无限循环情况下使用。(少用,多用for)
6、as:as单独没有意思,是这样使用:with….as用来代替传统的try…finally语法的。
基本思想是:with所求值的对象必须有一个__enter__()方法,一个__exit__()方法。紧跟with后面的语句被求值后,返回对象的__enter__()方法被调用,这个方法的返回值将被赋值给as后面的变量。当with后面的代码块全部被执行完之后,将调用前面,返回对象的__exit__()方法。示例如下:
class Sample:
def __enter__(self):
print “In __enter__()”
return “Foo”
def __exit__(self, type, value, trace):
print “In __exit__()”
def get_sample():
return Sample()
with get_sample() as sample:
print “sample:”, sample
输出结果:
In __enter__()
sample: Foo
In __exit__()
第一步: __enter__()方法被执行
第二步: __enter__()方法返回的值 – 这个例子中是”Foo”,赋值给变量’sample’
第三步:执行代码块,打印变量”sample”的值为 “Foo”
第四步: __exit__()方法被调用with真正强大之处是它可以处理异常。可能你已经注意到Sample类的__exit__方法有三个参数- val, type 和 trace。这些参数在异常处理中相当有用。
7、elif:和 if 配合使用,if 语句中的一个分支用 elif 表示(细小规则参见设计和调试简书 – 写文章)
8、global: 定义全局变量,我的理解就是:要想给全局变量重新赋值,就要global一下全局变量(相当于告诉你:哦,注意了!下面我要设定全局变量的值的),之后在重新赋值。示例如下:
#coding:utf-8
#################
#################
#熟悉global
#定义全局变量,变量名全部大写
NAME = “xueweihan”
#得到NAME值
def get_NAME():
return NAME
#重新设定NAME值
def set_NAME(name_value):
global NAME
NAME = name_value
print u”输出全局变量NAME的值:”,get_NAME()
new_name = “521xueweihan”
set_NAME(new_name)#为全局变量重新赋值
print u”输出赋值完的全局变量NMAE的值:”,get_NAME()
输出结果:
输出全局变量NAME的值: xueweihan输出赋值完的全局变量NMAE的值: 521xueweihan
9、or: 表示逻辑 ‘或’
10、with: 和 as 一起使用,使用方法看 as
11、assert:表示断言(断言一个条件就是真的,如果断言出错则抛出异常)用于声明某个条件为真,如果该条件不是真的,则抛出异常:AssertionError
12、else:看下面 if 的解释
13、if:if 语句用于选择分支,依据条件选择执行那个语句块。(这里多说一句:if语句中最好不要嵌套if语句,你可以把嵌套的if语句写在另一个函数中)而且,在用 if 语句时,最好配合 else 使用,防止出现逻辑上的错误。
14、pass:pass的意思就是什么都不做。用途及理解:当我们写一个软件的框架的时候,具体方法啊,类啊之类的都不写,等着后续工作在做。那么就在方法和类里面加上pass,那样编译起来就不会报错了!就像这样:
15、yield:用起来和return很像,但它返回的是一个生成器。
#理解yield
def test_yield(n):
for i in range(n):
yield i*2#每次的运算结果都返回
for j in test_yield(8):
print j,”:”,
print u”结束理解yield”
#利用yield输出斐波那契数列
##########
def fab(max):
a,b = 0,1
while a < max:
yield a
a, b = b, a+b
print u”斐波那契数列!”
for i in fab(20):
print i,”,”,
输出结果:
0 : 2 : 4 : 6 : 8 : 10 : 12 : 14 : 结束理解yield
斐波那契数列!
0 , 1 , 1 , 2 , 3 , 5 , 8 , 13 ,
16、break:作用是终止循环,程序走到break的地方就是循环结束的时候。(有点强行终止的意思)注意:如果从for或while循环中终止(break)之后 ,else语句不执行。
17、except:和try一起使用,用来捕获异常。
该种Python异常处理语法的规则是:
◆执行try下的语句,如果引发异常,则执行过程会跳到第一个except语句。
◆如果第一个except中定义的异常与引发的异常匹配,则执行该except中的语句。
◆如果引发的异常不匹配第一个except,则会搜索第二个 except,允许编写的except数量没有限制。
◆如果所有的except都不匹配,则异常会传递到下一个调用本代码的最高层try代码中。
◆ 如果没有发生异常,则执行else块代码。
#理解except
try:
num = 5/0
except:
print u”计算出错”
try:
f = open(“file.txt”,”r”) #如果该文件不存在
except IOError, e: #捕获IO异常
print u”IO错误!”
print e #输出错误信息,这里e是错误信息
输出结果:
计算出错
IO错误!
[Errno 2] No such file or directory: ‘file.txt’
18、import:用来导入模块,有时这样用from….import
19、print:输出
20、class:定义类
21、exec:exec语句用来执行储存在字符串或者文件中的python语句。可以生成一个包含python代码的字符串,然后使用exec语句执行这些语句。
22、in:查找列表中是否包含某个元素,或者字符串a是否包含字符串b。需要注意的是:不可以查看list1是否包含list2。代码如下:
#理解in
first_list = [1, 2]
second_list = [1, 2, 3]
element = 1
red = ‘red’
red_clothes = “red clothes”
print red in red_clothes #true
print first_list in second_list #false
print element in first_list #true
输出结果为:
True
False
True
23、raise:raise可以显示地引发异常。一旦执行raise语句,后面的代码就不执行了
#理解raise
try:
raise IOError #这里可以raise一个自定义的错误类。那样就叫做自定义异常了
print u”是否执行?” #不执行
except IOError:
print “IOError test raise”
输出结果如下:
IOError test raise
24、continue:跳过 continue 后面循环块中的语句,继续进行下一轮循环。
25、finally:看到 finally 语句,必然执行 finally 语句的代码块。
Python Exception Handling – Try, Except and Finally
26、is:Python中的对象包含三要素:id、type、value
id 用来唯一标识一个对象,type 标识对象的类型,value 是对象的值
is判断的是a对象是否就是b对象,是通过id来判断的==判断的是a对象的值是否和b对象的值相等,是通过value来判断的
#理解is
e = 1
es = 1.0
ess = 1
print u”””is就是比对id的值,看是否指向同一对象,
这里需要注意的是:同一对象,不是值相等就是同一对象。”””
print id(e)
print id(es)
print id(ess)
27、return:用于跳出函数,也可以在跳出的同时返回一个值。
28、def:用于定义函数
29、for:for….in 一起使用:它在一序列的对象上递归,就是遍历队列中的每个项目。也可以遍历列表(目前在列表中使用过)
30、lambda:即匿名函数,不用想给函数起什么名字。提升了代码的简洁程度。如:
g = lambda :”lambda test.”
print g()
num1 = lambda x, y=1:x + y
print num1(1) #多个变量的时候,可以不给有默认值的变量传值
print num1(10,10) #值得注意的是,如果y没有默认值而且不给它传值的话报错!
输出结果:
lambda test.
2
20
31、try:出现在异常处理中,使用格式为:try…except,try中放想要执行的语句,except捕获异常