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 解析XML python模块xml.dom解析xml实例代码
Feb 07 Python
python监控linux内存并写入mongodb(推荐)
Sep 11 Python
python 设置文件编码格式的实现方法
Dec 21 Python
一道python走迷宫算法题
Jan 22 Python
python在文本开头插入一行的实例
May 02 Python
python输出决策树图形的例子
Aug 09 Python
Matplotlib scatter绘制散点图的方法实现
Jan 02 Python
python对Excel的读取的示例代码
Feb 14 Python
使用 Python ssh 远程登陆服务器的最佳方案
Mar 06 Python
Python基于wordcloud及jieba实现中国地图词云图
Jun 09 Python
python转化excel数字日期为标准日期操作
Jul 14 Python
Python + opencv对拍照得到的图片进行背景去除的实现方法
Nov 18 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
session 的生命周期是多长
2006/10/09 PHP
php排序算法(冒泡排序,快速排序)
2012/10/09 PHP
php实现留言板功能(代码详解)
2017/03/28 PHP
Alliance vs Liquid BO3 第三场2.13
2021/03/10 DOTA
js实现运动logo图片效果及运动元素对象sportBox使用方法
2012/12/25 Javascript
JavaScript中字符串分割函数split用法实例
2015/04/07 Javascript
jquery中添加属性和删除属性
2015/06/03 Javascript
jquery中绑定事件的异同
2017/02/28 Javascript
使用DataTable插件实现异步加载数据
2017/11/19 Javascript
详解vue路由篇(动态路由、路由嵌套)
2019/01/27 Javascript
vue自定义指令实现方法详解
2019/02/11 Javascript
微信公众号平台接口开发 获取access_token过程解析
2019/08/14 Javascript
Vue实现滑动拼图验证码功能
2019/09/15 Javascript
基于js实现复制内容到操作系统粘贴板过程解析
2019/10/11 Javascript
在vue中把含有html标签转为html渲染页面的实例
2019/10/28 Javascript
iSlider手机端图片滑动切换插件使用详解
2019/12/24 Javascript
再也不怕 JavaScript 报错了,怎么看怎么处理都在这儿
2020/12/09 Javascript
[01:36]极致酷炫!TI9典藏宝瓶+撼地者至宝展示
2019/06/11 DOTA
python实现杨辉三角思路
2017/07/14 Python
python3+PyQt5实现自定义窗口部件Counters
2018/04/20 Python
使用Python和xlwt向Excel文件中写入中文的实例
2018/04/21 Python
使用python判断你是青少年还是老年人
2018/11/29 Python
Pycharm 字体大小调整设置的方法实现
2019/09/27 Python
tensorflow2.0的函数签名与图结构(推荐)
2020/04/28 Python
通过css3动画和opacity透明度实现呼吸灯效果
2019/08/09 HTML / CSS
简约控的天堂:The Undone
2016/12/21 全球购物
男女时尚与复古风格在线购物:RoseGal(全球免费送货)
2017/07/19 全球购物
HUGO BOSS美国官方网上商店:世界知名奢侈品牌
2017/08/04 全球购物
倡议书格式
2014/08/30 职场文书
干部竞争上岗演讲稿
2014/09/11 职场文书
医院护士党的群众路线教育实践活动对照检查材料思想汇报
2014/10/04 职场文书
党员违纪检讨书怎么写
2014/11/01 职场文书
工作建议书范文
2019/07/08 职场文书
spring项目中切面及AOP的使用方法
2021/06/26 Java/Android
SpringDataJPA在Entity中常用的注解介绍
2021/12/06 Java/Android
python在package下继续嵌套一个package
2022/04/14 Python