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 sqlobject(mysql)中文乱码解决方法
Nov 14 Python
python解析html开发库pyquery使用方法
Feb 07 Python
python列表操作之extend和append的区别实例分析
Jul 28 Python
python opencv之SIFT算法示例
Feb 24 Python
Python3利用Dlib19.7实现摄像头人脸识别的方法
May 11 Python
Python3enumrate和range对比及示例详解
Jul 13 Python
Python 矩阵转置的几种方法小结
Dec 02 Python
django迁移文件migrations的实现
Mar 31 Python
python 实现两个线程交替执行
May 02 Python
python高级特性简介
Aug 13 Python
Python爬虫自动化爬取b站实时弹幕实例方法
Jan 26 Python
判断Python中的Nonetype类型
May 25 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脚本数据库功能详解(下)
2006/10/09 PHP
CodeIgniter生成网站sitemap地图的方法
2013/11/13 PHP
微信API接口大全
2015/04/15 PHP
在HTML中插入JavaScript代码的示例
2015/06/03 Javascript
浅谈JavaScript 的执行顺序
2015/08/07 Javascript
jQuery实现仿QQ空间装扮预览图片的鼠标提示效果代码
2015/10/30 Javascript
jQuery+Pdo编写login登陆界面
2016/08/01 Javascript
微信小程序使用第三方库Underscore.js步骤详解
2016/09/27 Javascript
使用bootstrap-paginator.js 分页来进行ajax 异步分页请求示例
2017/03/09 Javascript
vue里面v-bind和Props 利用props绑定动态数据的方法
2018/08/27 Javascript
element ui 表格动态列显示空白bug 修复方法
2018/09/04 Javascript
用WebStorm进行Angularjs 2开发(环境篇:Windows 10,Angular-cli方式)
2018/12/05 Javascript
jQuery实现简单日历效果
2020/07/05 jQuery
基于JavaScript实现简单的轮播图
2021/03/03 Javascript
跟老齐学Python之集合的关系
2014/09/24 Python
详细探究Python中的字典容器
2015/04/14 Python
如何使用七牛Python SDK写一个同步脚本及使用教程
2015/08/23 Python
用python写一个windows下的定时关机脚本(推荐)
2017/03/21 Python
Python读取文件内容的三种常用方式及效率比较
2017/10/07 Python
Python机器学习算法之k均值聚类(k-means)
2018/02/23 Python
使用Python的Django和layim实现即时通讯的方法
2018/05/25 Python
儿童学习python的一些小技巧
2018/05/27 Python
python 中的列表生成式、生成器表达式、模块导入
2019/06/19 Python
python实现倒计时小工具
2019/07/29 Python
python正则表达式匹配IP代码实例
2019/12/28 Python
英国领先的杂志订阅网站:Magazine.co.uk
2018/01/25 全球购物
世界汽车零件:World Car Parts
2019/09/04 全球购物
荣耀商城:HIHONOR
2020/11/03 全球购物
车间副主任岗位职责
2013/12/24 职场文书
加多宝凉茶广告词
2014/03/18 职场文书
销售员工作检讨书(推荐篇)
2014/10/18 职场文书
2014财务年度工作总结
2014/11/11 职场文书
2014年保密工作总结
2014/11/22 职场文书
Vue中foreach数组与js中遍历数组的写法说明
2021/06/05 Vue.js
Nginx中使用Lua脚本与图片的缩略图处理的实现
2022/03/18 Servers
Windows Server 2016服务器用户管理及远程授权图文教程
2022/08/14 Servers