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之后,才需要买书 ...
随机推荐
- python赋值和生成器
在python赋值过程中,对单个变量的赋值,在所有语言中都是通用的,如果是对两个变量同时进行赋值,这个时候,就会出现一点点小的差异.例如在下面的一两行代码中. a , b = b , a+b 这是同时 ...
- Go-day02
Go程序的基本结构 ***func init() 会在main函数之前执行 1.包中的函数调用 a.同一个包中函数,直接调用 b.不同包中函数,通过包名+点+函数名进行调用 2.包的访问控制规则 a. ...
- Java引用类型传递整理
引用数据类型(类) 10.1引用数据类型分类 可以把类的类型为两种: Java为我们提供好的类,如Scanner类,Random类等,这些已存在的类中包含了很多的方法与属性,可供我们使用. 我们自己创 ...
- reportgen :python生产pptx
欢迎关注博主主页,学习python视频资源 https://www.cnblogs.com/gasongjian/p/8670925.html reportgen v0.1.8 更新介绍 这段时间,我 ...
- Django之Models操作
一.字段 AutoField(Field) - int自增列,必须填入参数 primary_key=True BigAutoField(AutoField) - bigint自增列,必须填入参数 pr ...
- o(1), o(n), o(logn), o(nlogn)
转自:https://blog.csdn.net/Mars93/article/details/75194138 在描述算法复杂度时,经常用到o(1), o(n), o(logn), o(nlogn) ...
- docker-compose 案例
官网示例: 安装wordpress version: " services: db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql r ...
- java用流的方式加载图片
前端: <img ng-show="photo" class="vertical_b" id="photoImg" src=" ...
- bzoj千题计划317:bzoj4650: [Noi2016]优秀的拆分(后缀数组+差分)
https://www.lydsy.com/JudgeOnline/problem.php?id=4650 如果能够预处理出 suf[i] 以i结尾的形式为AA的子串个数 pre[i] 以i开头的形式 ...
- HTML第二耍 列表标签
先复习下上一节 <!doctype html> <html> <head> <meta charset="utf-8"> <t ...