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 相关文章推荐
numpy数组拼接简单示例
Dec 15 Python
python3连接MySQL数据库实例详解
May 24 Python
实例讲解Python中浮点型的基本内容
Feb 11 Python
不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)
Apr 16 Python
python读文件的步骤
Oct 08 Python
Python数据持久化存储实现方法分析
Dec 21 Python
python不相等的两个字符串的 if 条件判断为True详解
Mar 12 Python
Python 实现将大图切片成小图,将小图组合成大图的例子
Mar 14 Python
浅谈python 中的 type(), dtype(), astype()的区别
Apr 09 Python
QT5 Designer 打不开的问题及解决方法
Aug 20 Python
python爬取抖音视频的实例分析
Jan 19 Python
Python采集股票数据并制作可视化柱状图
Apr 04 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
codeigniter教程之多文件上传使用示例
2014/02/11 PHP
详解WordPress中添加和执行动作的函数使用方法
2015/12/29 PHP
PHP获取当前系统时间的方法小结
2018/10/03 PHP
javascript add event remove event
2008/04/07 Javascript
动态刷新 dorado树的js代码
2009/06/12 Javascript
jquery ajax提交表单数据的两种方式
2009/11/24 Javascript
无闪烁更新网页内容JS实现
2013/12/19 Javascript
jQuery获取当前对象标签名称的方法
2014/02/07 Javascript
使用js画图之正弦曲线
2015/01/12 Javascript
js实现点击向下展开的下拉菜单效果代码
2015/09/01 Javascript
nodejs实现bigpipe异步加载页面方案
2016/01/26 NodeJs
微信小程序页面间通信的5种方式
2017/03/31 Javascript
Angular2学习笔记之数据绑定的示例代码
2018/01/03 Javascript
详解vue 项目白屏解决方案
2018/10/31 Javascript
JavaScript键盘事件常见用法实例分析
2019/01/03 Javascript
优化Vue中date format的性能详解
2020/01/13 Javascript
jQuery实现回到顶部效果
2020/10/19 jQuery
python求crc32值的方法
2014/10/05 Python
python根据给定文件返回文件名和扩展名的方法
2015/03/27 Python
python获取各操作系统硬件信息的方法
2015/06/03 Python
python读取excel表格生成erlang数据
2017/08/26 Python
Python编程实现使用线性回归预测数据
2017/12/07 Python
Linux系统(CentOS)下python2.7.10安装
2018/09/26 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
2019/04/04 Python
Python定时发送天气预报邮件代码实例
2019/09/09 Python
HTML5单页面手势滑屏切换原理分析
2017/07/10 HTML / CSS
canvas简单连线动画的实现代码
2020/02/04 HTML / CSS
美国在线旅行社:Crystal Travel
2018/09/11 全球购物
商务邀请函范文
2014/01/14 职场文书
大学生军训自我鉴定
2014/02/12 职场文书
专项法律服务方案
2014/06/11 职场文书
关于晚自习早退的检讨书
2014/09/13 职场文书
预备党员思想汇报1000字
2014/10/07 职场文书
慈善献爱心倡议书
2015/04/27 职场文书
MySQL令人咋舌的隐式转换
2021/04/05 MySQL
超级详细实用的pycharm常用快捷键
2021/05/12 Python