• Python基础:06条件和循环


    1:条件表达式(三元操作符)

            Python 在很长的一段时间里没有条件表达式(C ? X : Y), 或称三元运算符。人们试着用 and 和 or 来模拟它, 但大多都是错误的。 根据 FAQ , 正确的方法(并不唯一)是:(C and [X] or [Y])[0]。

            唯一的问题是社区不同意这样的语法。最后 Python 2.5 集成的语法确定为: X if C else Y

    在 2.5以前的版本中, Python 程序员最多这样做(其实是一个 hack):

    >>> smaller = (x < y and [x] or[y])[0]
    >>> smaller
    3

            在 2.5 和更新的版本中, 你可以使用更简明的条件表达式:

    >>> smaller = x if x < y else y
    >>> smaller
    3

     

    2:for语句

            Python中的for 语句提供了 Python 中最强大的循环结构。它可以遍历序列成员,可以用在 列表解析 和 生成器表达式中,它会自动地调用迭代器的 next()方法,捕获 StopIteration 异常并结束循环(所有这一切都是在内部发生的)。

            和传统语言(例如 C/C++或Java)中的 for 语句不同,Python 的 for 更像是 shell 或是脚本语言中的 foreach 循环。

     

            使用迭代器做 for 循环的代码与使用序列条目几乎完全相同。事实上在大多情况下, 你无法分辨出你迭代的是一个序列还是迭代器。

            唯一的区别就是 for 语句会做一些额外的事情。迭代器对象有一个 next() 方法, 调用后返回下一个条目。所有条目迭代完后, 迭代器引发一个 StopIteration 异常告诉程序循环结束。 for 语句在内部调用 next() 并捕获异常。

     

    3:循环与else

            Python中,可以在 while 和 for 循环中使用 else 语句。在循环中使用时, else子句只在循环完成后执行, 也就是说 break 语句也会跳过 else 块。

            以寻找最大约数为例。 代码如下:

    def showMaxFactor(num):
            count = num / 2
            while count > 1:
                    if num % count == 0:
                            print 'largest factor of %d is %d' % (num, count)
                            break
                    count -= 1
            else:
                    print num, "is prime"

     

            同样地,for 循环也可以有 else 用于循环后处理。 它和while 循环中的else 处理方式相同。 只要for 循环是正常结束的(不是通过 break ), else 子句就会执行。

     

  • 相关阅读:
    Android开发 default activity not found
    git仓库的初始化
    微服务学习----分布式锁
    Spring boot 学习 ---- Spring Security
    虚拟容器化学习----Docker学习
    Java学习----JVM学习
    spring boot学习 ---- spring boot 之注解(持续更新)
    其他技术----protobuf
    Spring Boot 学习 ---- 监听器
    Spring Boot学习----拦截器
  • 原文地址:https://www.cnblogs.com/gqtcgq/p/7247210.html
Copyright © 2020-2023  润新知