Python中的条件判断语句与循环语句用法小结


Posted in Python onMarch 21, 2016

if语句

>>通用格式
if语句一般形式如下:

if <test1>:
 <statements1>
elif <test2>:
 <statements2>
else:
 <statements3>

另外需要注意的是,Python中是没有switch/case语句的

while循环

while语句是Python语言中最通用的迭代结构,简而言之,只要顶端测试一直计算到真值,就会重复执行一个语句块。

>>一般格式

while <test>:
 <statements1>
else:
 <statements2>
>>break,continue,pass和循环else

break

跳出最近所在的循环(跳过整个循环语句)。

continue

跳到最近所在循环的开头处(来到循环的首行)。

pass

什么事也不做,只是空占位符语句。

循环else块

只有当前循环正常离开时才会执行(也就是没有碰到break语句)

>>一般循环格式
加入break和continue语句后,while的一般格式变为:

while <test1>:
 <statements1>
 if <test2>:break
 if <test3>:continue
else:
 <statements2>
>>pass

pass语句是无运算的占位符,当语法需要语句并且还没有任何实用的语句可写时,就可以使用它。

>>循环else
在while语句中加入else和C/C++中的语法不太一样,这里详细说明一下。else后面的代码只有当循环正常结束时才会执行,如果是用break跳出循环的,这部分代码就不会运行,具体看一个求质数的例子:

x = y // 2
while x > 1:
 if y % x == 0:
  print(y,'has factor',x)
  break
 x -= 1
else:
 print(y,'is prime')

再看一个对比的例子,没有使用else的情况:

found=False
while x and not found:
 if (matchx[0]):
  print('Ni')
  found=True
 else:
  x=x[1:]
if not found:
 print('not found')
使用else后的情况:

while x:
 if (match(x[0])):
  print('Ni')
  break
else:
 print('not found')

for循环

for循环在Python中是一个通用的序列迭代器:可以遍历任何有序的序列对象内元素。for语句可以用于字符串、列表、元组、其他内置可迭代对象。

>>一般格式

for <target> in <object>:
 <statements>
else:
 <statements>

此处的else的作用和while语句中的一样。另外需要注意的是,当Python运行for循环时,会逐个将序列对象中的元素赋值给目标,然后为每个元素执行循环体。

编写循环的技巧

内置range函数:返回一系列连续增加的整数,可作为for中的索引
内置zip函数:返回并行元素的元组的列表,可用于在for中遍历数个数列
>>循环计数器:while和range
range

当range函数只有一个参数时,会返回从零算起的整数列表,但其中不包括该参数的值。如果传进两个参数,那第一个参数是上边界,第二个参数是下边界。如果传进三个参数时,第三个参数表示步进值。

range提供了一种简单的方法,重复特定次数的动作:

for i in range(5):
 print(i,'Pythons')

相应的C++代码则是:

int i;
for(i = 0;i < 5;++i)
{
 std::cout<<i<<"Python";
}

>>并行遍历:zip和map
zip会取得一个或多个序列为参数,然后返回元组的列表,将这些序列中的并排的元素配成对。

L1=[1,2,3,4]
L2=[5,6,7,8]
list(zip(L1,L2))

上述代码的执行结果是:

[(1,5),(2,6),(3,7),(4,8)]

当参数的长度不同时,zip会以最短序列的长度为准来截断所得到的元组。

使用zip构造字典:

keys=['spam','eggs','totast']
values=[1,2,5]
D = dict(zip(keys,values))

>>产生偏移和元素:enumerate
enumerate函数一个比较新的内置函数,它能同时返回元素值和偏移值:

s='spam'
for (offset,item) in enumerate(s):
 print(item,'appears at offset',offset)
Python 相关文章推荐
仅利用30行Python代码来展示X算法
Apr 01 Python
python脚本设置系统时间的两种方法
Feb 21 Python
Python冒泡排序注意要点实例详解
Sep 09 Python
Python 通过pip安装Django详细介绍
Apr 28 Python
TensorFlow实现非线性支持向量机的实现方法
Apr 28 Python
Tensorflow实现卷积神经网络的详细代码
May 24 Python
基于python实现简单日历
Jul 28 Python
PyQt5实现五子棋游戏(人机对弈)
Mar 24 Python
详解python中TCP协议中的粘包问题
Mar 22 Python
Python Pickle 实现在同一个文件中序列化多个对象
Dec 30 Python
Python使用Tkinter实现转盘抽奖器的步骤详解
Jan 06 Python
python ETL工具 pyetl
Jun 07 Python
举例讲解Python中的迭代器、生成器与列表解析用法
Mar 20 #Python
深入解析Python中函数的参数与作用域
Mar 20 #Python
总结Python编程中函数的使用要点
Mar 20 #Python
两个命令把 Vim 打造成 Python IDE的方法
Mar 20 #Python
Python中列表、字典、元组数据结构的简单学习笔记
Mar 20 #Python
Python的Socket编程过程中实现UDP端口复用的实例分享
Mar 19 #Python
使用Python编写基于DHT协议的BT资源爬虫
Mar 19 #Python
You might like
PHP中HTTP方式下的Gzip压缩传输方法举偶
2007/02/15 PHP
window.location和document.location的区别分析
2008/12/23 Javascript
LazyForm jQuery plugin 定制您的CheckBox Radio和Select
2009/10/24 Javascript
jQuery总体架构的理解分析
2011/03/07 Javascript
js实现点击按钮后给Div图层设置随机背景颜色的方法
2015/05/06 Javascript
javascript实现类似百度分享功能的方法
2015/07/27 Javascript
jquery获取下拉框中的循环值
2017/02/08 Javascript
Bootstrap常用组件学习(整理)
2017/03/24 Javascript
JavaScript实现分页效果
2017/03/28 Javascript
原生js实现碰撞检测
2020/03/12 Javascript
JS数据类型判断的几种常用方法
2020/07/07 Javascript
vue3.0 上手体验
2020/09/21 Javascript
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
2015/04/28 Python
python实现对一个完整url进行分割的方法
2015/04/29 Python
python简单判断序列是否为空的方法
2015/06/30 Python
简介二分查找算法与相关的Python实现示例
2015/08/26 Python
Python爬取当当、京东、亚马逊图书信息代码实例
2017/12/09 Python
Pycharm 创建 Django admin 用户名和密码的实例
2018/05/30 Python
Python 读取某个目录下所有的文件实例
2018/06/23 Python
Python 字符串、列表、元组的截取与切片操作示例
2019/09/17 Python
Django实现CAS+OAuth2的方法示例
2019/10/30 Python
pycharm 对代码做静态检查操作
2020/06/09 Python
html5理解head_动力节点Java学院整理
2017/07/13 HTML / CSS
如何查看浏览器对html5的支持情况
2020/12/15 HTML / CSS
Debenhams百货英国官方网站:Debenhams UK
2016/07/12 全球购物
加拿大拼图大师:Puzzle Master
2020/12/28 全球购物
怎么写好自荐信
2013/10/30 职场文书
应急管理培训方案
2014/06/12 职场文书
课堂打架检讨书200字
2014/11/21 职场文书
2015年公共机构节能宣传周活动总结
2015/03/26 职场文书
校园歌手大赛主持词
2015/07/03 职场文书
新学期家长寄语2016
2015/12/03 职场文书
年会邀请函的格式及范文五篇
2019/11/02 职场文书
JS Canvas接口和动画效果大全
2021/04/29 Javascript
Python 阶乘详解
2021/10/05 Python
浅谈为什么我的 z-index 又不生效了
2022/07/15 HTML / CSS