python - 条件语句/循环语句/迭代器
条件测试:
if 条件表达式
python 的比较操作
所有的python对象都支持比较操作
可用于测试相等性、相对大小等
如果是复合对象,python会检查其所有部分,包括自动遍历各级嵌套对象,知道可以得出最终结果。
测试操作符
‘==’操作符测试值得相等性
'is' 表达式测试对象的一致性。
python 中不同类型的比较方法
数字:通过相对大小进行比较
字符串:按照字典次序逐字符进行比较
列表和元组:自左至右比较各部分内容
字典:对排序之后的(键、值)列表进行比较
python 中真和假的含义
1.任何非零数字和非空对象都为真,否则为假
2.数字0、空对象和特殊None 均为假
3.比较和相等测试会递归地应用于数据结构中
4.返回值为True或False
组合条件测试:
X and Y : 与运算
X or Y : 或运算
not X :非运算
判断语句格式:
if boolean_expression1:
suite1
elif boolean_expression2:
suite2
else:
eslse)suite
while 循环
用于便携通用迭代结构
顶端测试为真即会执行循环体,并且重复多次测试知道为假后执行循环后的其他语句
循环表达式:
while boolean_expression:
while_suite
else:
else_suite
#只要boolean_expression的结果为True ,循环就一直执行;
#boolean_expression的结果为False时终止循环,此时如果有else分支,则会执行.
************************************************************************
* #break 跳出最内层的循环
* #continue 跳出所处的最近层循环的开始处
* #pass 点位语句
* #else 代码块,循环正常终止才会执行,如果循环终止是由break 跳出导致 * 的,则else不会执行。
************************************************************************
while 表达式:
while True:
x = raw_input('')
if x == 'q' or x == 'quit':
break
else:
test.append(x)
for循环
一个通用的序列迭代器,用于遍历任何有序的序列对象内的元素
可用于字符串、元组、列表和其他的内置可迭代对象,以及通过类所穿件的新对象。
python 也提供了一些能够进行隐形迭代的工具:
in成员关系测试
列表解析
map、reduce和filter函数
for表达式:
for expression in object:
for_suite
if boolean_expression2 : continue
if boolean_expression3 :break
else:
else_suite
python 迭代
迭代:重复做一件事
iterable(可迭代)对象
支持每次返回自己所包含的一个成员对象
对象实现了__iter__方法
序列类型,如:list,str,tuple
非徐磊类型,如:dict,file
用于自定义的一些包含_iter_()或_getitem_()方法的类
迭代器又称游标,它是程序设计的软件设计模式,是一种可在容器物件(container,如列表等)上实现元素遍历的接口
迭代器是一种特殊的数据结构,
简单理解方式:对于一个集体中的每一个元素,想要执行遍历,那么针对这个集合的迭代器定义了遍历集体每一个元素的顺序或方法.
迭代器本身是不可逆的.
迭代器
在python中迭代器是遵循迭代协议的对象
使用iter()可从任何序列对象中得到迭代器
若要实现迭代器,需要在类中定义next()方法(python3 中是 __next__())
要使得迭代器指向下一个元素,则使用成员函数next()
在python中,是函数next(),而非成员函数
当没有元素时,则会引发stoptieration异常
文件是可迭代:
iter()
_iter_()
for循环可用于任何可迭代对象
for循环开始时,会通过迭代协议传递给iter()内置函数,从而能够从可迭代对象中获取一个迭代器,返回的对象含有需要的next方法.
python列表解析:
列表解析是python迭代机制的一种应用,它常用于实现创建新的列表,因此要放置[]中
语法:
[expression for iter_var in iterable ]
[expression for iter_var in iterable if cond_expr ]
生成器表达式
生成器表达式并不是真正创建数字列表,而是返回一个生成器对象,此对象在每次自己算出一个条目后,把这个条目'产生'(yield)出来
生成器表达式使用了"惰性计算"或称作'延迟求职'的机制
序列过长,并且每次只需要取一个元素时,应当考虑使用生成器表达式而不是列表解析
生成器表达式于python2.4引入
语法:
(expr for iter_var in iterable)
(expr for iter_var in iterbale if cond_expr)
python - 条件语句/循环语句/迭代器的更多相关文章
- python条件、循环语句
既然讲到语句,那先说明一下语句块.语句块不是一种语句,是一组语句.在条件为真时执行或者多次的一组语句.主要注意其格式,用冒号来标识语句块的开始,块中每行缩进相同的量,一般4个空格(tab字符位置为8个 ...
- Python 2.7 学习笔记 条件与循环语句
本文介绍下python条件和循环语句的语法 一.if条件语句 语法格式如下: if 表达式: .... elif 表达式: .... elif 表达式: .... else: ..... 说明:与其它 ...
- python实例 条件和循环语句
#! /usr/bin/python #条件和循环语句 x=int(input("Please enter an integer:")) if x<0: x=0 ...
- #7 Python顺序、条件、循环语句
前言 上一节讲解了Python的数据类型和运算,本节将继续深入,涉及Python的语句结构,相当于Python的语法,是以后编写程序的重要基础! 一.顺序语句 顺序语句很好理解,就是按程序的顺序逻辑编 ...
- 【Python】-NO.99.Note.4.Python -【Python3 条件语句 循环语句】
1.0.0 Summary Tittle:[Python]-NO.99.Note.4.Python -[Python3 条件语句 循环语句] Style:Python Series:Python Si ...
- python系列八:Python3条件控制&循环语句
#!/usr/bin/python #-*-coding:gbk-*-#Python3 条件控制&循环语句import randomage = int(input("请输入你的年龄: ...
- Python之路-条件控制&循环语句&列表推导式&常用函数
一.什么是条件控制语句 条件控制语句,也可以称之为判断语句,通过一条或多条的执行结果来决定接下来要执行的代码块. 二.if语句 if语句是用来进行判断的,最简答的if语句只有一个判断一个操作. 语法: ...
- Python中的条件和循环语句
条件和循环语句 1. 条件语句 if单用 格式:if 条件表达式 例如:if 5 > 3: print('True') >>> 'True' #当条件满足时才会执行上述操作. ...
- 详解Python中的循环语句的用法
一.简介 Python的条件和循环语句,决定了程序的控制流程,体现结构的多样性.须重要理解,if.while.for以及与它们相搭配的 else. elif.break.continue和pass语句 ...
- Python数据结构与循环语句
# Python数据结构与循环语句: 首先编程是一项技能,类似跑步,期初不必在意细节,能使用起来就行,等学的游刃有余了再回过头来关注细节问题也不迟. 关于买书: 学会python之后,才需要买书 ...
随机推荐
- postman 测试套件collection
测试套件collection就是为了跑一套case,整体的一套case,为了解决一个一个的case单独跑 1.点击小加号 2.填写套件的名字 3.右键增加folder,一个folder里面可以增加多个 ...
- 解决mysql乱码问题
在mysql根目录下创建my.ini文件 my.ini内容为: [mysqld] # 设置默认字符集,只会影响新建数据库的默认字符集 character-set-server=utf8
- Mysql+Keepalived双主热备高可用操作记录
我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务.当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短.MySQL双主复制,即互为Mast ...
- 基于C语言libvirt API简单小程序
libvirt API简单小程序 1.程序代码如下 #include<stdio.h> #include<libvirt/libvirt.h> int getDomainInf ...
- Tensorflow object detection API 搭建物体识别模型(一)
一.开发环境 1)python3.5 2)tensorflow1.12.0 3)Tensorflow object detection API :https://github.com/tensorfl ...
- spark常见异常汇总
spark常见异常汇总 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 温馨提示: 如果开发运行spark出现问题啦,可能需要运维这边做一些调优,也可能是开发那边需要修改代码.到 ...
- Linux 内核中的数据结构:基数树(radix tree)
转自:https://www.cnblogs.com/wuchanming/p/3824990.html 基数(radix)树 Linux基数树(radix tree)是将指针与long整数键值相 ...
- org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cardSalDao' defined in file [E:\GItUp\pointerCard+redis\target\gameCard-1.0-SNAPSHOT\WEB-INF\classes\cn\jbit\dao
错误信息: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cardSa ...
- 常用Java数据库连接池
概述 在这里所谓的数据库连接是指通过网络协议与数据库服务之间建立的TCP连接.通常,与数据库服务进行通信的网络协议无需由应用程序本身实现,原因有三: 实现复杂度大,需要充分理解和掌握相应的通信协议. ...
- springboot(十八):解决跨域问题
在controller上添加@CrossOrigin注解,如下: @RestController @RequestMapping("course") @CrossOrigin pu ...