WEB开发网
开发学院软件开发C语言 从C#到Python:2 运算符、表达式和流程控制 阅读

从C#到Python:2 运算符、表达式和流程控制

 2010-09-30 22:36:47 来源:WEB开发网   
核心提示: 最后说明一点,Python的try也支持else语句,从C#到Python:2 运算符、表达式和流程控制(6),如果有一些代码要在try没有发生异常的情况下才执行,就可以把它放到else中(这一点与finally不同,下面是两个例子,一个用LINQ实现,finally分支无论如何都会被执行),关

最后说明一点,Python的try也支持else语句。如果有一些代码要在try没有发生异常的情况下才执行,就可以把它放到else中(这一点与finally不同,finally分支无论如何都会被执行)。

关于异常处理我们就简单介绍到这里,若需了解更多关于Python异常处理类、内建异常类型、自定义异常等内容,可以参考《Python精要参考(第二版)》。

2.3  列表内涵

列表内涵(List Comprehensions,也译作“列表推导式”)是Python最强有力的语法之一,常用于从集合对象中有选择地获取并计算元素,虽然多数情况下可以使用for、if等语句组合完成同样的任务,但列表内涵书写的代码更简洁(当然有时可能会不易读)。

列表内涵的一般形式如下,我们可以把[]内的列表内涵写为一行,也可以写为多行(一般来说多行更易读)。

[表达式 for item1 in 序列1  ...  for itemN in 序列N  if 条件表达式]

上面的表达式分为三部分,最左边是生成每个元素的表达式,然后是for 迭代过程,最右边可以设定一个if 判断作为过滤条件。

列表内涵的一个著名例子是生成九九乘法表:

s = [(x, y, x*y) for x in range(1, 10) for y in range(1,10) if x>=y]

列表内涵可能放在函数编程一章更合适,因为它可以统一实现map和filter等高阶函数(下一章介绍)。不过我还是倾向于将它看为一种组合的流程控制语句,而且我个人感觉它与C#中的LINQ有点神似(当然LINQ更强大,可以处理数据库和XML)。下面是两个例子,一个用LINQ实现,一个用 Python的列表内涵实现。

1 //C#中用LINQ找出10以内的偶数
2 var s = from x in Enumerable.Range(0, 10) where x % 2 == 0 select x;

上一页  1 2 3 4 5 6 7  下一页

Tags:Python 运算符 表达式

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接