Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2793174
  • 博文数量: 471
  • 博客积分: 7081
  • 博客等级: 少将
  • 技术积分: 5369
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-04 21:55
文章分类

全部博文(471)

文章存档

2014年(90)

2013年(69)

2012年(312)

分类: Python/Ruby

2013-02-26 23:16:19

1、while


  • while进行循环控制,它对表达式进行测试,如果为真,则循环执行循环体。格式如下:

    while EXPRESSION:
              STATEMENT
    else:
              STATEMENT
    

    如果测试为假,则会执行else块。如果循环被中断(break),则else块不会执行


点击(此处)折叠或打开

  1. #coding:utf-8
  2. #!/usr/bin/python
  3. # Filename: string.py

  4. i=10
  5. while i>0:
  6.     i=i-1
  7.     print i
  8. else:
  9.     print "i 已经为0了 i=",i
  10.     
  11. j=10
  12. while j>0:
  13.     j=j/2
  14.     if j==2:
  15.         break
  16.     print "j=",j
  17. else:
  18.     print "已经break了,这句不执行"

  19. 9
  20. 8
  21. 7
  22. 6
  23. 5
  24. 4
  25. 3
  26. 2
  27. 1
  28. 0
  29. i 已经为0了 i= 0
  30. j= 5



2、for


  • for循环可遍历对象,并可进行迭代操作。语名格式如下:

    for TARGET in OBJECTS:
           STATEMENT
    else:
           STATEMENT
    

    和while一样,在循环正常退出时,会执行else块。



点击(此处)折叠或打开

  1. #coding:utf-8
  2. #!/usr/bin/python
  3. # Filename: for.py

  4. mystr="statment"
  5. for word in mystr:
  6.     print word
  7. else:
  8.     print "End list"
  9. #range会直接生成一个list对象
  10. alist=range(0,100)
  11. for i in alist:
  12.     if i==99:
  13.         print i
  14. #而xrange则不会直接生成一个list,而是每次调用返回其中的一个值
  15. for j in xrange(0,100,2):
  16.     if j==99:
  17.         print j
  18. print "alist 的长度: ",len(alist)
  19. for k in xrange(len(alist),-1,-1):
  20.     if k==0 or k==100:
  21.         print "k:",k
  22.     
  23.     
  24. s
  25. t
  26. a
  27. t
  28. m
  29. e
  30. n
  31. t
  32. End list
  33. 99
  34. alist 的长度: 100
  35. k: 100
  36. k: 0

注意:

要生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间,这两个基本上都是在循环的时候用:

  1. for i in range(0100): 
  2. print i 
  3. for i in xrange(0100): 
  4. print i
range会直接生成一个list对象:

  1. a = range(0,100
  2. print type(a)
  1.  'list'>
而xrange则不会直接生成一个list,而是每次调用返回其中的一个值:

  1. a = xrange(0,100
  2. print type(a
  1.  'xrange'
所以xrange做循环的性能比range好,尤其是返回很大的时候,尽量用xrange吧,除非你是要返回一个列表。




















阅读(1165) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~