python关键字详解关于Python中的yield

python关键字详解关于Python中的yield,第1张

概述今天依旧在啃:《笨方法学python》,其中习题37是复习各种关键字。我本想百度一下记一下就ok了,但是百度出来第一个就Hongten的博客。我才意识到我也有博客,我应该学习他,把这些积累的东西都放到

今天依旧在啃:《笨方法学python》,其中习题37是复习各种关键字。我本想百度一下记一下就ok了,但是百度出来第一个就Hongten的博客。我才意识到我也有博客,我应该学习他,把这些积累的东西都放到博客中。

主要参考:http://www.cnblogs.com/hongten/p/hongten_python_keywords.html#undefined

python2.7关键字详解:

anddelfromnotwhileaselif
globalorwithassertelseifpass
yieldbreakexceptimportprintclassexec
inraisecontinuefinallyisreturndef
forlambdatry    

一共:31个。注意:如果要现在自己电脑中运行我写的这些代码,需要在第一行加上 

#coding:utf-8   因为我的输出中有中文

1.and  :表示逻辑‘与’

2.del  :用于list列表 *** 作,删除一个或者连续几个元素。

3.from   :导入相应的模块,用import或者from...import

4.not    :表示逻辑‘非’

5.while  :while循环,允许重复执行一块语句,一般无限循环的情况下用它。示例如下:

while Ture:    if a > b:        add()#调用函数求和    else:        print "输入错误!重新输入!"

6.as      :as单独没有意思,是这样使用:with....as用来代替传统的try...finally语法的。

基本思想是with所求值的对象必须有一个__enter__()方法,一个__exit__()方法。

紧跟with后面的语句被求值后,返回对象的__enter__()方法被调用,这个方法的返回值将被赋值给as后面的变量。当with后面的代码块全部被执行完之后,将调用前面               返回对象的__exit__()方法。示例如下:

class Sample:    def __enter__(self):        In __enter__()"        return Foo"     __exit__(self,type,value,trace):        In __exit__()"  def get_sample():    return Sample()  with get_sample() as sample:    sample:",sample

输出结果:

In ()sample: FooIn __exit__()

第一步: __enter__()方法被执行

第二步: __enter__()方法返回的值 - 这个例子中是"Foo",赋值给变量'sample'

第三步:执行代码块,打印变量"sample"的值为 "Foo"

第四步: __exit__()方法被调用with真正强大之处是它可以处理异常。可能你已经注意到Sample类的__exit__方法有三个参数- val,type 和 trace。这些参数在异常处理中相当有用。

你也可以参考这里:http://zhoutall.com/archives/325

7.elif  :和if配合使用的,if语句中的一个分支用elif表示。

8.global :定义全局变量,我的理解就是:要想给全局变量重新赋值,就要global一下全局变量(相当于告诉你:哦,注意了!下面我要设定全局变量的值的),之后在重新赋值。示例如下:

Coding:utf-8#################习题37:复习各种符号前言#熟悉global定义全局变量,变量名全部大写name = xueweihan"得到name值 get_name():     name    重新设定name值 set_name(name_value):    global name    name = name_value    print u输出全局变量name的值:",get_name()new_name = 521xueweihanset_name(new_name)为全局变量重新赋值输出赋值完的全局变量NMAE的值:输出结果: 

输出全局变量name的值: xueweihan输出赋值完的全局变量NMAE的值: 521xueweihan

9.or    :表示逻辑“或”

10.with   :和as一起用,使用的方法请看as,在上面!

11.assert:表示断言(断言一个条件就是真的,如果断言出错则抛出异常)用于声明某个条件为真,如果该条件不是真的,则抛出异常:AssertionError

12.else   :看下面if的解释

13.if       :if语句用于选择分支,依据条件选择执行那个语句块。(这里多说一句:if语句中最好不要嵌套if语句,你可以把嵌套的if语句写在另一个函数中)

 b:    a > belif a <a < b":    a = b"

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

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

15.yIEld  :用起来和return很像,但它返回的是一个生成器。我这样说不是很生动。你可以去看看这个关于Python中的yield(最后写的那个斐波那契,我觉得他就是大神),或者请看下面的代码:

理解yIEld test_yIEld(n):    for i in range(n):        yIEld i*2每次的运算结果都返回              for j in test_yIEld(8):    print j,:结束理解yIEld"   利用yIEld输出斐波那契数列#########看这里,太厉害了,不是我写的。。。。######### fab(max):    a,b = 0,1    while a < max:        yIEld a        a,b = b,a+b斐波那契数列!in fab(20print 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一起使用,用来捕获异常。

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

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

第一种格式:

理解excepttry:    num = 5/0except计算出错"

第二种:

:     f = open(file.txtr")  如果该文件不存在except IOError,e:  捕获IO异常   IO错误!"   print e                输出错误信息,这里e是错误信息

输出结果:

计算出错IO错误![Errno 2] No such file or directory: ''

18.import :用来导入模块,有时这样用from....import

19.print   :输出

20.class   :定义类

21exec    :我还没弄懂exec语句用来执行储存在字符串或者文件中的python语句。可以生成一个包含python代码的字符串,然后使用exec语句执行这些语句。

22.in       :查找列表中是否包含某个元素,或者字符串a是否包含字符串b。需要注意的是:不可以查看List1是否包含List2。代码如下:

理解infirst_List = [1,2]second_List = [1,3]element = 1red = red'red_clothes = red clothesprint red in red_clothes trueprint first_List in second_List  falseprint element in first_List      true

输出结果为:

TrueFalseTrue

23.raise  :raise可以显示地引发异常。一旦执行raise语句,后面的代码就不执行了

理解raiseraise IOError 这里可以raise一个自定义的错误类。那样就叫做自定义异常了    是否执行?" 不执行 IOError:    IOError test raise"    

输出结果如下:

IOError test raise

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

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

python异常总结,请看下面的代码:

One:

打开一个文件,但有可能找不到:    f = open(xxx)    do something:    do somethingfinally:    f.close()

Two:

)fail to open    exit(-1:    f.close()

我们为什么要写finally,是因为防止程序抛出异常最后不能关闭文件,但是需要关闭文件有一个前提就是文件已经打开了。
在第一段错误代码中,如果异常发生在f=open(‘xxx’)的时候,比如文件不存在,立马就可以知道执行f.close()是没有意义的。改正后的解决方案就是第二段代码。

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

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

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

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

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

28.def    :用于定义方法

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

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

理解lambdag = lambda :lambda test. g()num1 = lambda x,y=1:x + yprint num1(1)      多个变量的时候,可以不给有默认值的变量传值print num1(10,10)  值得注意的是,如果y没有默认值而且不给它传值的话报错!

输出结果:

lambda test.220

 

31.try  :出现在异常处理中,使用格式为:try...except,try中放想要执行的语句,except捕获异常

代码见,25.

ok了,我要断电了,有几点没懂地方明天补全。边学边写,写了一下午  T.T

终于完成了,在写这篇博客的过程中我学习到了很多:有些知道什么意思的语句,但是就是不会用自己的话说,参考了别人的博客之后。能够顺利的表达明白了。写博客真的很涨知识啊!

 

总结

以上是内存溢出为你收集整理的python关键字详解 关于Python中的yield全部内容,希望文章能够帮你解决python关键字详解 关于Python中的yield所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1190202.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存