20190417(python key抄录)

目录

1.python 2.7 关键字

2. 了解

3.list操作:

4.字典(dictionary)操作 

5.MTD了解


1.python 2.7 关键字

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

anddelfromnotwhileaselif
globalorwithassertelseifpass
yieldbreakexceptimportprintclassexec
inraisecontinuefinallyisreturndef
forlambdatry    

2. 了解

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

基本思想: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介绍

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值