zoukankan      html  css  js  c++  java
  • Python 学习笔记 12.流程控制(Control Flow)

    转载自:http://www.xwy2.com/article.asp?id=121

    if...elif...else

    Code
    >>>>>> def test(i):
    if 0<i<10:
    print "small.."
    elif 10<=i<20:
    print "midle.."
    elif 20<=i<30:
    print "large.."
    else:
    print "invalid.."


    >>>>>> test(15)
    midle..

    for...in...

    Code
    >>>>>> for i in range(4):
    print i


    0
    1
    2
    3
    >>>>>>
    >>>>>> for k, v in {1:"a", 2: "b", 3:"m"}.items():
    print "%d=%s"%(k,v)


    1=a
    2=b
    3=m
    >>>>>>

    当然,我们可以用 range() 来实现 C# for(++)/for(--) 的效果。

    Code
    >>>>>> for i in range(len(a)):
    print "%d: %s"%(i, a[i])


    0: a
    1: b
    2: c
    >>>>>>
    >>>>>> for i in range(len(a)-1, -1, -1):
    print "%d: %s"%(i, a[i])


    2: c
    1: b
    0: a
    >>>>>>

    while

    Code
    >>>>>> while i < 5:
    print i
    i
    =i+1;


    0
    1
    2
    3
    4
    >>>>>>
    >>>>>> while True:
    print i
    i
    +=1;
    if i == 5:break


    0
    1
    2
    3
    4
    >>>>>>

    continue, break

    和大多数语言一样,Python 循环同样支持 continue 和 break。这没什么好说的。

    Changing horses in midstream

    我们看一个有意思的例子。

    Code
    >>>>>> a=range(3)
    >>>>>> for i in a:
    print i
    a
    =range(10)


    0
    1
    2
    >>>>>>

    你会发现在循环体内部对 a 的修改并没有起到作用,为什么会这样呢?改一下代码就明白了。

    Code
    >>>>>> a=range(3)
    >>>>>> hex(id(a))
    '0xdc36e8'
    >>>>>> for i in a:
    print i
    a
    =range(19)
    print(id(a))


    0
    14411376
    1
    14431896
    2
    14386240
    >>>>>>

    哦~~~ 原来内部所谓修改的 a 完全是一个新的对象,自然不会影响到循环体本身了。这和 Python 变量的作用范围有关。

    xrange()

    如果你用 range() 创建一个很大的列表时,你会发现内存一下涨了很多~~~~~ ,这时候你应该用 xrange() 来代替。虽然这两者从表面看没什么区别,但实际上他们生成的结果类型并不一样。

    Code
    >>>>>> type(range(10))
    <type 'list'>
    >>>>>> type(xrange(10))
    <type 'xrange'>
    >>>>>>
  • 相关阅读:
    PHP中new static()与new self()的比较
    【程序员感悟系列】 由一点业务说开去
    配置管理工具 Puppet的安装和使用
    【读书笔记】大话设计模式
    博客还是要写起来 2016.08.13 周六
    linux启动SSH及开机自动启动
    Monkey日志信息的11种Event percentages
    Monkey官方帮助翻译&介绍
    Github问题An error occurred trying to download
    怎样克服拖延症,马上采取行动?
  • 原文地址:https://www.cnblogs.com/sislcb/p/1285997.html
Copyright © 2011-2022 走看看