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 子句就会执行。
Python基础:06条件和循环的更多相关文章
- Python基础之条件和循环
阅读目录 一.if语句 1.1功能 1.2语法 1.2.1:单分支,单重条件判断 1.2.2:单分支,多重条件判断 1.2.3:if + else 1.2.4:多分支if + elif +else 1 ...
- Python基础:条件判断 &&循环
1:条件判断 2:循环 2.1:for 2.2 while 小结: continue :跳出本次循环 进行下次循环, break :结束循环体.
- 『Python基础-7』for循环 & while循环
『Python基础-7』for循环 & while循环 目录: 循环语句 for循环 while循环 循环的控制语句: break,continue,pass for...else 和 whi ...
- 【Python】-NO.99.Note.4.Python -【Python3 条件语句 循环语句】
1.0.0 Summary Tittle:[Python]-NO.99.Note.4.Python -[Python3 条件语句 循环语句] Style:Python Series:Python Si ...
- python基础之条件控制与循环
Python3 条件控制 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户 ...
- Python基础__Python语法基础、条件、循环
之前主要讨论的是Python的对象,这本节将第一次走进Python的语言之旅,将会介绍条件与循环.本节我们将会涉及到复合语句,简要介绍一下Python的语法规则是有必要的Python语法规则 1.语句 ...
- Python基础:条件判断与循环的两个要点
一.条件判断: Python中,条件判断用if语句实现,多个条件判断时用if...elif实现:看下面一段程序 #python 3.3.5 #test if...elif age = 20 if ag ...
- Python基础之条件语句和循环
条件语句 Python中的条件语句分为 if ...else . if ...elif...else 以及if ...else 的嵌套使用: username = input('请输入您的用户名:' ...
- python学习第六天:python基础(条件判断、循环)
条件判断 格式 if <条件判断1>: <执行1> elif <条件判断2>: <执行2> elif <条件判断3>: <执行3> ...
- #7 Python顺序、条件、循环语句
前言 上一节讲解了Python的数据类型和运算,本节将继续深入,涉及Python的语句结构,相当于Python的语法,是以后编写程序的重要基础! 一.顺序语句 顺序语句很好理解,就是按程序的顺序逻辑编 ...
随机推荐
- WPF 从属性赋值到MVVM模式详解
示例源码 这两天学习了一下MVVM模式,和大家分享一下,也作为自己的学习笔记.这里不定义MVVM的概念,不用苍白的文字说它的好处,而是从简单的赋值讲起,一步步建立一个MVVM模式的Simple.通过前 ...
- 公共钥匙盒 ccf
试题编号: 201709-2 试题名称: 公共钥匙盒 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里, ...
- @at-root和#{&}结合
Sass有脚本模式#{},他和&不同之处是,&只用作选择器,它只能出现在一个复合的开始选择器,类似于一个类型选择器,如a或者h1.但#{}他表示的是一个插值,它可以用在任何地方.同样的 ...
- Java基础-注解
什么是注解? Jdk1.5新增新技术,注解.很多框架为了简化代码,都会提供有些注解.可以理解为插件,是代码级别的插件,在类的方法上写:@XXX,就是在代码上插入了一个插件. 注解不会也不能影响代码的实 ...
- 使用Docker 安装Elasticsearch、Elasticsearch-head、IK分词器 和使用
原文:使用Docker 安装Elasticsearch.Elasticsearch-head.IK分词器 和使用 Elasticsearch的安装 一.elasticsearch的安装 1.镜像拉取 ...
- case 和decode的区别
区别: decode是pl/sql语法,只能在oracle中使用,case when是标准SQL的语法,哪儿都能用,也就是说移植性更强. decode像是case when的精简版,当要实现的功能比较 ...
- T2848 列车调度(二分或dp)
题目背景 自行脑补, 题目描述 有N辆列车,标记为1,2,3,…,N.它们按照一定的次序进站,站台共有K个轨道,轨道遵从先进先出的原则.列车进入站台内的轨道后可以等待任意时间后出站,且所有列车不可后退 ...
- ubuntu16.04上在使用搜狗输入法时,按shift不能正常切换中英文
问题描述: ubuntu16.04上在使用搜狗输入法时,不知道把什么组合键给错按了,导致了按shift不能正常切换中英文,这是一件很烦恼的事儿! 解决步骤: 1,终端输入打开: fcitx-confi ...
- Yann LeCun清华演讲:深度学习与人工智能的未来
2017年3月22日下午,Facebook人工智能研究院院长.纽约大学终身教授Yann LeCun在清华大学大礼堂为校内师生以及慕名而来的业内人士呈现了一场主题为<深度学习与人工智能的未来(De ...
- 【linux配置】虚拟机配置静态IP地址
使用VMware配置虚拟机静态IP地址 一.安装好虚拟后在菜单栏选择编辑→ 虚拟网络编辑器,打开虚拟网络编辑器对话框,选择Vmnet8 Net网络连接方式,随意设置子网IP,点击NAT设置页面,查看子 ...