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之关于循环的小伎俩
Oct 02 Python
JPype实现在python中调用JAVA的实例
Jul 19 Python
python opencv 直方图反向投影的方法
Feb 24 Python
详解Python中的动态属性和特性
Apr 07 Python
DataFrame中的object转换成float的方法
Apr 10 Python
JupyterNotebook 输出窗口的显示效果调整方法
Apr 13 Python
python读取xml文件方法解析
Aug 04 Python
Python 如何查找特定类型文件
Aug 17 Python
python可视化 matplotlib画图使用colorbar工具自定义颜色
Dec 07 Python
Python如何使用logging为Flask增加logid
Mar 30 Python
Python趣味挑战之教你用pygame画进度条
May 31 Python
Python可视化学习之matplotlib内置单颜色
Feb 24 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 HtmlReplace输入过滤安全函数
2010/07/03 PHP
window+nginx+php环境配置 附配置搭配说明
2010/12/29 PHP
JS中encodeURIComponent函数用php解码的代码
2012/03/01 PHP
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同之处小结
2012/03/07 PHP
php中3des加密代码(完全与.net中的兼容)
2012/08/02 PHP
ThinkPHP实现ajax仿官网搜索功能实例
2014/12/02 PHP
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
2007/08/13 Javascript
使用jquery与图片美化checkbox和radio控件的代码(打包下载)
2010/11/11 Javascript
DOM2非标准但却支持很好的几个属性小结
2012/01/21 Javascript
JavaScript中将一个值转换为字符串的方法分析[译]
2012/09/21 Javascript
Jquery 自定义事件实现发布/订阅的简单实例
2016/06/12 Javascript
jQuery插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
2017/03/22 jQuery
基于Vue的文字跑马灯组件(npm 组件包)
2017/05/24 Javascript
详解.vue文件解析的实现
2018/06/11 Javascript
关于在LayUI中使用AJAX提交巨坑记录
2019/10/25 Javascript
vue实现前端列表多条件筛选
2020/10/26 Javascript
Python多线程编程(二):启动线程的两种方法
2015/04/05 Python
Python判断直线和矩形是否相交的方法
2015/07/14 Python
python 递归深度优先搜索与广度优先搜索算法模拟实现
2018/10/22 Python
Python批处理更改文件名os.rename的方法
2018/10/26 Python
python 输出所有大小写字母的方法
2019/01/02 Python
Python爬虫之Selenium多窗口切换的实现
2020/12/04 Python
详解css3 Transition属性(平滑过渡菜单栏案例)
2017/09/05 HTML / CSS
在HTML5 Canvas中放入图片和保存为图片的方法
2014/05/03 HTML / CSS
可持续未来的时尚基础:Alternative Apparel
2019/05/06 全球购物
儿科护士自我鉴定
2013/10/14 职场文书
校园餐饮创业计划书
2014/01/10 职场文书
房地产开盘策划方案
2014/02/10 职场文书
社区义诊活动总结
2014/04/30 职场文书
大学团日活动新闻稿
2014/09/10 职场文书
2014教师年度思想工作总结
2014/11/10 职场文书
小学生交通安全寄语
2015/02/27 职场文书
2015中秋节晚会主持词
2015/07/01 职场文书
学困生转化工作总结
2015/08/13 职场文书
pytorch 6 batch_train 批训练操作
2021/05/28 Python
浅谈JS的原型和原型链
2021/06/04 Javascript