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实现单词拼写检查
Apr 25 Python
深入理解Python变量与常量
Jun 02 Python
python条件变量之生产者与消费者操作实例分析
Mar 22 Python
Python连接SQLServer2000的方法详解
Apr 19 Python
示例详解Python3 or Python2 两者之间的差异
Aug 23 Python
Pandas过滤dataframe中包含特定字符串的数据方法
Nov 07 Python
Django中更改默认数据库为mysql的方法示例
Dec 05 Python
初次部署django+gunicorn+nginx的方法步骤
Sep 11 Python
Python离线安装openpyxl模块的步骤
Mar 30 Python
pandas 实现将NaN转换为None
May 14 Python
告别网页搜索!教你用python实现一款属于自己的翻译词典软件
Jun 03 Python
python套接字socket通信
Apr 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 Token(令牌)设计
2008/03/15 PHP
php下将多个数组合并成一个数组的方法与实例代码
2011/02/03 PHP
PHP数据集构建JSON格式及新数组的方法
2012/11/07 PHP
php调用c接口无错版介绍
2014/03/11 PHP
PHP文件锁定写入实例解析
2014/07/14 PHP
PHP加密技术的简单实现
2016/09/04 PHP
php实现将HTML页面转换成word并且保存的方法
2016/10/14 PHP
PHP的中使用非缓冲模式查询数据库的方法
2017/02/05 PHP
起点页面传值js,有空研究学习下
2010/01/25 Javascript
JavaScript中几种常见排序算法小结
2011/02/22 Javascript
jQuery移动和复制dom节点实用DOM操作案例
2012/12/17 Javascript
js去字符串前后空格5种实现方法及比较
2013/04/03 Javascript
浅析offsetLeft,Left,clientLeft之间的区别
2013/11/30 Javascript
jquery实现侧边弹出的垂直导航
2014/12/09 Javascript
jQuery实现的简单提示信息插件
2015/12/08 Javascript
jQuery短信验证倒计时功能实现方法详解
2016/05/25 Javascript
jquery实现提示语淡入效果
2017/05/05 jQuery
JavaScript 正则命名分组【推荐】
2018/06/07 Javascript
[00:50]2014DOTA2国际邀请赛 NEWBEE战队回顾
2014/08/01 DOTA
Python实现的检测网站挂马程序
2014/11/30 Python
python 时间戳与格式化时间的转化实现代码
2016/03/23 Python
Python操作MySQL模拟银行转账
2018/03/12 Python
python实现大转盘抽奖效果
2019/01/22 Python
python读写csv文件的方法
2019/08/13 Python
python用类实现文章敏感词的过滤方法示例
2019/10/27 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
2020/02/26 Python
Python之字典对象的几种创建方法
2020/09/30 Python
pycharm远程连接服务器并配置python interpreter的方法
2020/12/23 Python
美国半成品食材配送服务商:Home Chef
2018/01/25 全球购物
企业统计员岗位职责
2013/12/13 职场文书
企业军训感言
2014/02/08 职场文书
制药工程专业职业生涯规划范文
2014/03/10 职场文书
签约仪式主持词
2014/03/19 职场文书
赞美老师的演讲稿
2014/05/22 职场文书
小学课外活动总结
2014/07/09 职场文书
群众路线自查自纠工作情况报告
2014/10/28 职场文书