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 相关文章推荐
在Python中使用成员运算符的示例
May 13 Python
python实现根据主机名字获得所有ip地址的方法
Jun 28 Python
python对日志进行处理的实例代码
Oct 06 Python
手把手教你如何安装Pycharm(详细图文教程)
Nov 28 Python
pthon贪吃蛇游戏详细代码
Jan 27 Python
11个Python Pandas小技巧让你的工作更高效(附代码实例)
Apr 30 Python
详解python 爬取12306验证码
May 10 Python
Python音频操作工具PyAudio上手教程详解
Jun 26 Python
浅析pandas 数据结构中的DataFrame
Oct 12 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
Jun 22 Python
Python OpenCV 图像平移的实现示例
Jun 04 Python
python实现剪贴板的操作
Jul 01 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使用function_exists判断函数可用的方法
2014/11/19 PHP
php动态变量定义及使用
2015/06/10 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
2020/02/21 PHP
JavaScript Base64编码和解码,实现URL参数传递。
2006/09/18 Javascript
asp批量修改记录的代码
2008/06/25 Javascript
jQuery Ajax 全解析
2009/02/08 Javascript
一次失败的jQuery优化尝试小结
2011/02/06 Javascript
详解JS 比较两个Json对象的值是否相等的实例
2013/11/20 Javascript
Javascript实现div层渐隐效果的方法
2015/05/30 Javascript
jQuery实现获取绑定自定义事件元素的方法
2015/12/02 Javascript
jQuery Mobile弹出窗、弹出层知识汇总
2016/01/05 Javascript
下一代Bootstrap的5个特点 超酷炫!
2016/06/17 Javascript
Vue中添加过渡效果的方法
2017/03/16 Javascript
CentOS 安装NodeJS V8.0.0的方法
2017/06/15 NodeJs
Angular4项目中添加i18n国际化插件ngx-translate的步骤详解
2017/07/02 Javascript
使用JavaScript实现alert的实例代码
2017/07/06 Javascript
基于jquery实现五星好评
2017/11/18 jQuery
深入浅析vue组件间事件传递
2017/12/29 Javascript
使用VUE+iView+.Net Core上传图片的方法示例
2019/01/04 Javascript
JavaScript的Proxy可以做哪些有意思的事儿
2019/06/15 Javascript
vue中npm包全局安装和局部安装过程
2019/09/03 Javascript
layui清空,重置表单数据的实例
2019/09/12 Javascript
[36:29]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs TNC
2018/04/02 DOTA
利用python实现简易版的贪吃蛇游戏(面向python小白)
2018/12/30 Python
Java的for语句中break, continue和return的区别
2013/12/19 面试题
会计实习生自我鉴定
2013/12/12 职场文书
银行实习鉴定
2013/12/13 职场文书
给儿子的表扬信
2014/01/15 职场文书
四群教育工作实施方案
2014/03/26 职场文书
目标责任书范文
2014/04/14 职场文书
班干部竞选演讲稿
2014/04/24 职场文书
《鸟岛》教学反思
2014/04/26 职场文书
2014年党员创先争优承诺书
2014/05/29 职场文书
小组口号大全
2014/06/09 职场文书
2015年大学生村官工作总结
2015/04/21 职场文书
MyBatis在注解上使用动态SQL方式(@select使用if)
2022/07/07 Java/Android