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 子句就会执行。

最新文章

  1. 【JUC】JUC集合框架综述
  2. jquety
  3. SqlServer查询日期时间范围条件
  4. 线程本地变量ThreadLocal (耗时工具)
  5. PHP框架Swoole的一个定时器Timer特性
  6. LeetCode OJ String to Integer (atoi) 字符串转数字
  7. C#的提交表单方式WebClient
  8. .Net 把网页Html转PDF文件
  9. WordPress /wp-admin/includes/post.php user_ID 参数操作权限提升漏洞
  10. css解决文字垂直居中
  11. Tomjson - json 解析库
  12. [转]Net Framework引路蜂地图开发示例
  13. 04737_C++程序设计_第3章_函数和函数模板
  14. http协议的八种请求类型
  15. 安卓开发中Spinner控件的使用
  16. Jmeter之Bean shell学习(一)
  17. CMD命令查询DNS服务器
  18. 久未更 ~ 二之 —— TextView 文字省略
  19. 2apt-get命令,deb包安装,源码安装
  20. Java集合类源码解析:LinkedHashMap

热门文章

  1. Wamp PHP 安装各种拓展
  2. mac 安装svn
  3. java并发系列(一)-----多线程简介、创建以及生命周期
  4. 适配器模式--在NBA我需要翻译
  5. 常用命令5--文件搜索命令3-find
  6. 基于LSTM对西储大学轴承故障进行分析
  7. 在Spring应用中创建全局获取ApplicationContext对象
  8. iOS播放器横竖屏切换
  9. R语言可视化--qplot函数
  10. node.js的path模块