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'>
    >>>>>>
  • 相关阅读:
    内存寻址:逻辑地址到物理地址的转化
    变量类型,变量作用域,变量存储空间,变量生命周期
    位运算计算与位运算应用
    sizeof()计算
    位域(位段)
    自然对齐和强制对齐
    内存中的数据对齐
    用汇编编写子程序,可以显示字符串到屏幕指定位置
    汇编语言 实验9 根据材料编程
    80x25彩色字符模式
  • 原文地址:https://www.cnblogs.com/sislcb/p/1285997.html
Copyright © 2011-2022 走看看