Python3 流程控制和迭代器

# 先随便定义一个变量
    some_var = 5

# 用if语句打印出"some_var比10小"。
    if some_var > 10:
        print("some_var比10大")
    elif some_var < 10:    # elif句是可选的
        print("some_var比10小")
    else:                  # else也是可选的
        print("some_var就是10")

"""
#用for循环语句遍历列表
 打印:
    dog is a mammal
    cat is a mammal
    mouse is a mammal
"""
    for animal in ["dog", "cat", "mouse"]:
        print("{} is a mammal".format(animal))

"""
#"range(number)"返回数字列表从0到给的数字
 打印:
    0
    1
    2
    3
"""
    for i in range(4):
        print(i)

"""
#while循环直到条件不满足
 打印:
    0
      1
     2
      3
"""
    x = 0
    while x < 4:
        print(x)
        x += 1  # x = x + 1 的简写

# 用try/except块处理异常状况
    try:
        # 用raise抛出异常
        raise IndexError("This is an index error")
    except IndexError as e:
        pass    # pass是无操作,但是应该在这里处理错误
    except (TypeError, NameError):
        pass    # 可以同时处理不同类的错误
    else:   # else语句是可选的,必须在所有的except之后
        print("All good!")   # 只有当try运行完没有错误的时候这句才会运行

# Python提供一个叫做可迭代(iterable)的基本抽象。一个可迭代对象是可以被当作序列
# 的对象。比如说上面range返回的对象就是可迭代的。

    filled_dict = {"one": 1, "two": 2, "three": 3}
    our_iterable = filled_dict.keys()
    print(our_iterable) # => range(1,10) 是一个实现可迭代接口的对象

# 可迭代对象可以遍历
    for i in our_iterable:
        print(i)    # 打印 one, two, three
    
# 但是不可以随机访问
    our_iterable[1]  # 抛出TypeError

# 可迭代对象知道怎么生成迭代器
    our_iterator = iter(our_iterable)

# 迭代器是一个可以记住遍历的位置的对象
# 用__next__可以取得下一个元素
    our_iterator.__next__()  #=> "one"

# 再一次调取__next__时会记得位置
    our_iterator.__next__()  #=> "two"
    our_iterator.__next__()  #=> "three"

# 当迭代器所有元素都取出后,会抛出StopIteration
    our_iterator.__next__() # 抛出StopIteration

# 可以用list一次取出迭代器所有的元素
    list(filled_dict.keys())  #=> Returns ["one", "two", "three"]

 

posted on 2017-05-30 23:52  cvn  阅读(239)  评论(0编辑  收藏  举报

导航