目录

1.python 2.7 关键字

2. 了解

3.list操作:

4.字典(dictionary)操作 

5.MTD了解


1.python 2.7 关键字

上个礼拜通过学习《本方法学习python》开始接触python 2.7,学习了两天,写了一部分代码,今天工作利用测试之余,总结下python 2.7的关键字31个(抄录)

and

del

from

not

while

as

elif

global

or

with

assert

else

if

pass

yield

break

except

import

print

class

exec

in

raise

continue

finally

is

return

def

for

lambda

try

 

 

 

 


2. 了解

  1.  and:表示逻辑与
  2.  del:用于list列表操作,删除一个或者几个元素
  3. from:导入相应的模块,用import或者from.....import...
  4. not:表示逻辑非
  5. while:循环,一般用于无限循环,but,在项目中这是不允许的必须要有break条件
  6. 抄录,都没用过) 

基本思想:with后跟的所求值的对象中必须有一个__enter__()方法,一个__exit__()方法;

首先,with后面的语句被执行,进入__enter__()函数,然后返回值将被赋值给as后面的变量; 

接着执行with...as...后面的代码块,全部被执行完之后,将调用with后面语句中的__exit__()函数。示例如下:

#coding=utf-8

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后的另一个if语句

8.global :定义全局变量,通俗理解是:要想给全局变量重新赋值,就要在这个变量前加global,表示是全局变量,与局部同名变量(如果有)区分开;示例如下:

#coding:utf-8

#定义全局变量,变量名全部大写
NAME = "XiaoTian"
 
#得到NAME值
def get_NAME():
    return NAME
    
#重新设定NAME值
def set_NAME(name_value):
    global NAME  #使用global 关键字表示这个变量为全局变量
    NAME = name_value
    
print u"输出全局变量NAME的值:",get_NAME()    #print u""可以输出中文
new_name = "XiaoXiao"
set_NAME(new_name)    #为全局变量重新赋值
print u"输出重新复制后的全局变量NMAE值:",get_NAME()

 输出结果:

输出全局变量NAME的值: XiaoTian

输出赋值完的全局变量NMAE的值: XiaoXiao

9. or:表示逻辑或

10. with:和as一起使用,同6.

11.assert:表示断言,用于声明某个条件为真,如果该条件为假,则抛出异常:AssertionError

12.else:看13.

13.if:(注意:if语句中最好不要嵌套if语句,你可以把嵌套的if语句写在另一个函数中)

#coding=utf-8

if a > b:
    print "a > b
elif a < b:
    print "a < b"
else:
    print "a = b"

14.pass: pass的意思就是什么都不做,先占个位子;

用途及理解:当我们写一个软件的框架的时候,具体方法啊,类啊之类的都不写,等着后续工作在做。那么就在方法和类里面加上pass,那样编译起来就不会报错了!就像这样:

#coding=utf-8

#理解pass的用途
def test_pass():pass  #如果不加pass,抛出错误:IndentationError: expected an indented block
 
test_pass()

15. yield :用起来和return很像,但它返回的是一个生成器。可以去看看这个关于Python中的yield

或者请看下面的代码:

#coding=utf-8

#理解yield
def test_yield(n):
    for i in range(n):    #range(n)表示从0~(n-1),或者range(0,n)   in表示i分别后面跟的列表中元素
        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的地方就是循环结束的时候; 

17.except:和try一起使用,用来捕获异常;

coding=utf-8

try:  
   block  
except [exception,[data…]]:  
   block  
 
try:  
block  
except [exception,[data...]]:  
   block  
else:  
   block 

#该Python异常处理语法的规则是:
#1.执行try下的语句,如果引发异常,则执行过程会跳到第一个except语句
#2.如果第一个except中定义的异常与引发的异常匹配,则执行该except中的语句。
#3.如果引发的异常不匹配第一个except,则会搜索第二个 except,允许编写的except数量没有限制。
#4.如果所有的except都不匹配,则异常会传递到下一个调用本代码的最高层try代码中。
#5.如果没有发生异常,则执行else块代码。

example1:

coding=utf-8

#理解except
try:
    num = 5/0
except:
    print u"计算出错"

输出结果:

计算出错 

 example2:

coding=utf-8

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;

代码如下:

coding=utf-8

#理解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语句,后面的代码就不执行了

coding=utf-8

#理解raise
try:
    raise IOError #这里可以raise一个自定义的错误类。那样就叫做自定义异常了
    print u"是否执行?"     #不执行,因为执行了try中的raise语句
except IOError:
    print "IOError test raise"    #会输出

输出结果:

IOError test raise

24. continue:跳过continue后面循环块中的语句,继续进行下一轮循环

25.finally:看到finally语句,必然执行finally语句的代码块;

example:

coding=utf-8

#打开一个文件,但有可能找不到,最终之慈宁宫finally语句块
try:
    f = open('xxx')
    do something
except:
    do something
finally:
    f.close()

我们写finally,是因为如果文件打开成功后,因为程序抛出异常最后不能关闭文件,但是需要关闭文件有一个前提就是文件已经打开了。在上段代码中,如果异常发生在f=open(‘xxx’)的时候,比如文件不存在,立马就可以知道执行ffinally中的f.close()语句是没有意义的

 修改如下:

coding=utf-8

try:
    f = open('xxx')
except:
    print 'fail to open'
    exit(-1)
try:
    do something
except:
    do something
finally:
    f.close()

26.is:Python中的对象包含三要素:id、type、value

其中id用来唯一标识一个对象,type标识对象的类型,value是对象的值

is判断的是a对象是否就是b对象,是通过id来判断的

==判断的是a对象的值是否和b对象的值相等,是通过value来判断的

 

coding=utf-8

#理解is
e = 1
es = 1.0
ess = 1
print u"""is就是比对id的值,看是否指向同一对象,
这里需要注意的是:同一对象,不是值相等就是同一对象。"""
print id(e)
print id(es)
print id(ess)    #ess和e是指向同一个对象

27.return:用于跳出函数,也可以在跳出的同时返回一个值 

28.def:用于定义方法或者说函数

29.for:for....in 一起使用:它在一序列的对象上递归,就是遍历队列中的每个项目

30.lambda:即匿名函数,不用想给函数起什么名字。提升了代码的简洁程度

如下代码:

coding=utf-8

#理解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捕获异常 


3.list操作:

 学习资料:list的相关操作

参考上述文章,当中print list[2:3]输出有错,或者改成print list[2:4]

list只能以数字作为索引


4.字典(dictionary)操作 

学习资料:字典操作

字典(dict)是一种数据类型,有的语言中叫hash

字典可以用任何作为索引,比如:字符,字符串,数字


5.MTD了解

 相关资料:mtd介绍