免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2110 | 回复: 0
打印 上一主题 下一主题

python(16): 循环语句while和for(第10章) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-02-28 22:49 |只看该作者 |倒序浏览

               
                像其他绝大多数语言一样,python中的循环语句也是两种while语句和for语句。与c中循环语句的不同有两点:
  • 有一个else从句
  • 不能在while的真值判断表达式中同时进行赋值操作先来看while语句:
  • while :
  •     ...
  • else:
  •     ...上面说的第一点不同是指在中,不能写成比如这样的表达式:"while x =  next", 因为在python中,一个赋值语句并不返回一个值,只是赋值,这与c中不一样。else从句是在while循环结束后执行的,看起来好像是多此一举,因为即使没有else从句,后面的语句也会在while循环结束后执行,其实不然。如果在while的循环体内有break语句,情况就不一样的。因为break语句是用来跳过整个循环,碰到break语句后,else从句中的内容也不会执行。
    for语句:
  • for x in seq:
  •     ...
  • else:
  •     ...
    for语句是一种更加高级的循环语句,其实for语句完全可以用while语句来代替,只不过是比较麻烦而已。在for语句中,有一个隐式的赋值过程,比如上面的语句,x会被依次赋予seq[0] seq[1]...等值。在python中,应该尽量使用for循环,因为for比while运行得比较快。
    与循环搭配使用的除了break外还有continue,与break跳过整个循环语句不同,continue只是表示马上跳回循环体的开头,进行下一次循环。此外,range()、zip()、map()函数也常常与循环语句配合使用。zip()前面介绍过。map()与zip()非常相似,唯一的不同是,map(function, seq1, seq2...),它也返回一个list,是把seq1 seq2...各个成员应用于functions中,以function返回的值作为成员构建一个list,如果function为None,那么就是直接返回seq1和seq2...中值。比如:
    L = [1,2]
    S = [3,4,5]
    map(None, L, S) ==> [(1,3), (2,4), (None,5)]
                   
                   
                   
                   
                   
                   
                   

    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/2809/showart_79581.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP