5,流程控制语句

半世苍凉 提交于 2020-03-25 19:04:09

3 月,跳不动了?>>>

流程控制语句

条件语句:if

    if语句用于实现条件判断,让程序作出简单或复杂的决策。
if...else...

if...elif...else

循环语句:

1)条件循环while语句

定义 while语句用于实现条件循环,可以在条件满足的情况下循环执行代码块 若结果为真则执行循环,反之不执行(若...则循环...) 语法·

While条件判断:
    While条件判断根据代码返回的布尔逻辑结果True或False来进行选择操作
        与if条件一样
    布尔/比较/身份成员操作能够返回True和False
        布尔操作
            and
            or
            not
        比较操作
            ==
            !=
            >
            <
            > = 
            < = 
        成员操作
            in
            not in
        身份操作
            is
            is not
    一般在条件判断之前,会有初始语句,例如定义变量初始值等
        n = 0
        i = 1
    循环代码块
    重复执行,直到条件不满足
    一般包含递增赋值语句,确保循环最终能退出
        i = i + 1

2)for循环语句

for语句用于实现循环,例如对列表和字符等可迭代对象进行遍历

语法 for X in Y X为变量 Y为可迭代对象 可以是字符串/元祖/列表/字典/函数等可迭代对象 for+range

for语句结合range( )
    功能
        range( )函数可以生成整数列表
        range(x,y)会生成x到y-1的整数列表
        range(1,10)会生成1到9的整数列表
    语法
        完整语法
            range(start, end, step)
                range( )返回一个包括所有k的列表,这里start<=k<end,从start到end
k每次递增step。step不可以为0,否则将发生错误。
                若没有给step,只有2个值,则step默认为1
                range返回的值不能等于end,可以等于start
        简略语法
            range( end )
                >>> range(5)
                [0, 1, 2, 3, 4]
            range (start, end)
    举例
        >>> for x in range(1,10):
        ...     print x

for+zip语句

for语句结合zip()
    功能
        zip( )函数获取多个列表的元素,生成内置元祖的列表
        结合for循环语句可以实现多列表并行遍历
    语法
        for (x,y) in zip (l1, l2)
    举例
        >>> l1 = ['a','b','c','d']
        >>> l2 = [1,2,3,4]
        >>> zip(l1,l2)
        [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
        >>> for (x,y) in zip(l1,l2):
        ...     print x , y
        ...     
         a 1
        b 2
        c 3
        d 4

for+map()

功能
        map( )函数将可迭代对象的每个元素传入函数并返回一个列表
    语法
        map(f, iterable)
            [f(x) for x in iterable]
        map函数包括函数和可迭代对象(列表等)
        当函数为None时,map( )可以实现并行解析
    举例
        >>> l1 = ['a','b','c','d']
        >>> l2 = [1,2,3,4]
        >>> map(None,l1,l2)
        [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
        >>> for (x,y) in map(None,l1,l2):
        ...     print x , y
        ...     
        a 1
        b 2
        c 3
        d 4

 

for语句结合enumerate( )

功能
        enumerate( )用于给传入的可迭代对象索引,返回迭代器
    语法
        >>> for (x,y) in enumerate(迭代对象):
    举例
        >>> l1 = ['a','b','c']
        >>> for (x,y) in enumerate(l1):
        ...     print x,y
        ...     
        0 a
        1 b
        2 c

循环控制

1)break

用于while和for循环中,用于终止整个循环语句

2)continue

定义

用于while和for循环中,用于终止本次循环

3)pass 用于循环语句、条件语句、函数语句中占空,保证语句完整

迭代器

迭代(Iteration)指的是对可迭代对象进行从头到尾访问/遍历的过程;例如for循环的底层原理就是一个迭代

迭代器

    迭代器(Itarator)指的是通过iter( )函数所返回的一个支持next( )方法的对象

迭代方法

    iter( )
        通过iter( )可以获得可迭代对象
        默认可迭代对象没有next( )函数,通过iter( )迭代函数赋予next( )
    next( )
        返回可迭代对象中的下一个元素,并检查StopIteration异常终止迭代

可迭代对象

有哪些可迭代对象?
        列表
        元祖
        字符串
        字典
        文件
            自身有next( )方法
    迭代的原理是什么?
        可迭代对象(iterable)在进行遍历/迭代的时候,自动调用iter获取迭代器,自动调用next方法获取下一个元素
        例如 for i in [1,2,3] Python自动调用iter( )函数获取迭代器,自动调用next( )函数获得下一个元素
            next( )函数检查StopIteration异常并终止迭代

语法

iter( L )
    next( L )
通过try...except...语句自动迭代列表:注:等价于for i in l
    >>> l = [1,2,3,4,5]
    >>> i = iter(l)
    >>> i
    <listiterator object at 0x10d2b8bd0>
    >>> try:
    ...     while True:
    ...         n = i.next()
    ...         print n
    ... except StopIteration:
    ...     pass
    ...     
    1
    2
    3
    4
    5

列表解析

定义 列表解析(List comprehensions)主要用于动态的创建列表 列表解析是迭代技术的一个应用,采用for循环和迭代函数动态生成列表,更简洁方便

语法

    [X for Y in Z]
        [expr for iter_var in iterable]
            for循环通过变量iter_var遍历可迭代对象iterable
            expr应用于序列的每个成员,最终结果即产生的列表
        [X for Y in Z if J]
            if J 为判断条件
    X为需要得到的结果
        X与Y是相关联的
    Y是用于遍历Z的参数
    Z是被遍历的对象
        Z可以是字符串/元祖/列表/字典/函数等可迭代对象

生成器表达式

定义
    生成器是特定的函数, 允许返回一个值, 然后"暂停"代码的执行, 稍后恢复
        生成器函数
            在 Python 中,带有 yield 的函数被称之为 generator(生成器)
            使用yield语句一次返回一个结果,在每个结果之间挂起和继续它们的状态
    生成器表达式是生成器的应用,是列表解析和生成器的结合,也是列表解析的拓展
    生成器表达式按需返回产生结果的一个对象,而不是返回或构建一整个结果列表
    列表解析是直接生产最终的列表,而生成器表达式按需生产内容,相比而言,后者更加节省内存空间

语法:

    (expr for iter_var in iterable if cond_expr)
    列表解析用[ ] 生成器表达式用( )
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!