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编写Linux系统守护进程实例
Feb 03 Python
python requests 使用快速入门
Aug 31 Python
Python 12306抢火车票脚本
Feb 07 Python
Windows下的Jupyter Notebook 安装与自定义启动(图文详解)
Feb 21 Python
Python实现的线性回归算法示例【附csv文件下载】
Dec 29 Python
python中property和setter装饰器用法
Dec 19 Python
Django之全局使用request.user.username的实例详解
May 14 Python
Python计算矩阵的和积的实例详解
Sep 10 Python
详解Python中如何将数据存储为json格式的文件
Nov 18 Python
python3中确保枚举值代码分析
Dec 02 Python
TensorFlow低版本代码自动升级为1.0版本
Feb 20 Python
Python中npy和mat文件的保存与读取
Apr 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
通过ICQ网关发送手机短信的PHP源程序
2006/10/09 PHP
什么是MVC,好东西啊
2007/05/03 PHP
在PHP中使用反射技术的架构插件使用说明
2010/05/18 PHP
PHP基于curl后台远程登录正方教务系统的方法
2016/10/14 PHP
php获取flash尺寸详细数据的方法
2016/11/12 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
2017/09/22 PHP
使用javascipt---实现二分查找法
2013/04/10 Javascript
javascript 拷贝节点cloneNode()使用介绍
2014/04/03 Javascript
DOM事件阶段以及事件捕获与事件冒泡先后执行顺序(图文详解)
2015/08/18 Javascript
javascript实现保留两位小数的多种方法
2015/12/18 Javascript
基于JavaScript实现瀑布流布局(二)
2016/01/26 Javascript
AngularJS中的JSONP实例解析
2016/12/01 Javascript
vue 中自定义指令改变data中的值
2017/06/02 Javascript
JS中正则表达式要注意lastIndex属性
2017/08/08 Javascript
Node.js 中使用 async 函数的方法
2017/11/20 Javascript
微信小程序实现点击按钮修改view标签背景颜色功能示例【附demo源码下载】
2017/12/06 Javascript
vue页面加载闪烁问题的解决方法
2018/03/28 Javascript
js实现的格式化数字和金额功能简单示例
2019/07/30 Javascript
微信小程序 弹窗输入组件的实现解析
2019/08/12 Javascript
vue 页面回退mounted函数不执行的解决方案
2020/07/26 Javascript
基于javascript的无缝滚动动画1
2020/08/07 Javascript
vue-video-player 断点续播的实现
2021/02/01 Vue.js
[42:48]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第二场 12.11
2020/12/16 DOTA
python与php实现分割文件代码
2017/03/06 Python
Python多线程扫描端口代码示例
2018/02/09 Python
Pycharm之快速定位到某行快捷键的方法
2019/01/20 Python
python pygame 愤怒的小鸟游戏示例代码
2021/02/25 Python
网站性能延迟加载图像的五种技巧(小结)
2020/08/13 HTML / CSS
加拿大床上用品、家居装饰、厨房和浴室产品购物网站:Linen Chest
2018/06/05 全球购物
主治医师岗位职责
2013/12/10 职场文书
《雾凇》教学反思
2014/02/17 职场文书
团代会主持词
2014/04/02 职场文书
超市创业计划书
2014/04/24 职场文书
优秀班集体先进事迹材料
2014/05/28 职场文书
文案策划岗位个人自我评价(范文)
2019/08/08 职场文书
Nginx配置之实现多台服务器负载均衡
2021/08/02 Servers