java程序员的python之路(条件,循环和迭代器)
来源:互联网 发布:淘宝分销商招募书 编辑:程序博客网 时间:2024/06/18 18:32
前一篇文章简单介绍了一下python的数据类型,包括,数字,字符串,列表,元组,集合和字典。以及这些类型的基本用法。这一章介绍一个python的条件控制,循环和迭代器。
条件控制
python条件控制的基本结构如下:
if condition1: code_segment elif condition2: code_segment else: code_segment
需要说明的是,在java中,代码块是用一对大括号括起来的,而在python中,代码块是根据缩进来确定的。也就是同一个代码块必须拥有相同的缩进,这就严格的控制了代码的整洁。
从上面的结构我们看到,python的条件控制是if + 条件表达式 + 冒号 + 相同缩进的代码块。
看下面的代码:
a = 1 b = 1 if a == b: print("if") print("a等于b") else: print("else") print("a不等于b")
输出结果如下:
if a等于b a不等于b
从输出我们看到,最后一行被输出了,因为最后一行和倒数第二行不是同一个代码块(缩进不同),所以最后一行不受else控制。修改代码如下:
a = 1b = 1if a == b: print("if") print("a等于b")else: print("else") print("a不等于b")
输出结果:
ifa等于b
这才是我们要的结果,所以python的代码一定要注意缩进。
我们继续讨论一下,关系表达式,什么是关系表达式? 凡是能返回一个True和False结果的,就叫关系表达式:也就是说python的条件操作符,成员运算发,以及身份运算符都可以作为关系表达式,一个函数返回bool类型也可以作为关系表达式。再看一段简单的代码:
a = 1b = 1#关系操作符if a == b: print("a等于b")#身份运算符if a is b: print("a是b")else: print("a不是b")#函数(之后详细介绍函数)def func(): return Trueif func(): print("func")
输出结果如下:
a等于b a是b func
if嵌套
顾名思义就是多层if判断语句,如下所示:
a = 1b = 1#关系操作符if a == b: print("a等于b") if a == b: print("a等于b") if a == b: print("a等于b") else: print("a不等于b") else: print("a不等于b")else: print("a不等于b")
输出结果如下:
a等于ba等于ba等于b
循环
循环是让代码块多次执行的结构。
while循环
python中没有do while循环,while循环的基本结构如下:
while 条件表达式: code_segment
下面我们来计算100之内自然数的和:
i = 0sum = 0;while i <= 100: sum += i i = i +1print(sum)
输出结果如下:
5050
while else循环
结构如下:
while 条件表达式: code_segmentelse: code_segment
在循环结束的时候,执行else中的代码块,代码如下:
i = 0sum = 0;while i <= 100: sum += i i = i +1else: print("i > 100")print(sum)
输出结果如下:
i > 1005050
for循环
for循环一般用来遍历一个序列,比如字符串,列表和元组,结构如下:
for <variable> in <sequence>: code_segment
重写100之内的自然数之和,代码如下:
#使用range函数产生一个0到100的自然数序列sum = 0for i in range(101): sum += iprint(sum)
输出结果如下:
5050
for else循环
结构如下:
for <variable> in <sequence>: code_segment else: code_segment
代码如下:
#使用range函数产生一个0到100的自然数序列sum = 0for i in range(101): sum += ielse: print("序列遍历结束")print(sum)
输出如下:
序列遍历结束5050
嵌套循环以及continue和break在循环中的使用。
我们使用嵌套循环来实现一个乘法表,代码如下:
for i in range(1,10): for j in range(1,i+1): print("%i*%i=%i " % (j,i,i*j),end="") else: print("")#换行
输出结果如下:
1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
现在我们想去掉第5列的输出,怎么办呢?,使用continue可以办到,修改代码如下:
for i in range(1,10): for j in range(1,i+1): if j == 5: continue; print("%i*%i=%i " % (j,i,i*j),end="") else: print("")#换行
输出结果如下:
1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 1*6=6 2*6=12 3*6=18 4*6=24 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 6*9=54 7*9=63 8*9=72 9*9=81
我们看到,第5列已经消失了,现在我们想去掉第5列之后所有的列,就需要使用break了,break后else中的代码也不会执行,所以修改代码如下:
for i in range(1,10): for j in range(1,i+1): if j == 5: break; print("%i*%i=%i " % (j,i,i*j),end="") print("")#换行
输出结果如下:
1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 1*6=6 2*6=12 3*6=18 4*6=24 1*7=7 2*7=14 3*7=21 4*7=28 1*8=8 2*8=16 3*8=24 4*8=32 1*9=9 2*9=18 3*9=27 4*9=36
总的来说,continue是跳过本次循环,继续之后的循环。而break是跳过本次和之后所有的循环。continue和break之后影响当前循环体,不会跳过外边嵌套的循环体。
pass语句
pass语句是一个空语句,不做任何操作,只是为了保持代码的完整性。
代码如下:
for i in range(1,10): for j in range(1,i+1): if j == 5: pass; print("pass块 ",end="") print("%i*%i=%i " % (j,i,i*j),end="") else: print("")#换行
输出结果如下:
1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 pass块 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 pass块 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 pass块 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 pass块 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 pass块 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
迭代器
迭代是Python最强大的功能之一,是访问集合元素的一种方式。。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退,迭代器有两个基本的方法:iter() 和 next()。字符串,列表或元组对象都可用于创建迭代器:
代码如下:
list = [1,2,3,4,5,6]it = iter(list)while True: try: print(next(it)) except StopIteration: pass
输出结果如下:
123456
- java程序员的python之路(条件,循环和迭代器)
- 王亟亟的Python学习之路(四)-循环,条件,Range,list和tuple
- Python基础(四)之条件判断和循环
- python基础之条件判断和循环
- Python:条件和循环
- Python 条件和循环
- python的条件和循环语句
- (六) Python的条件判断和循环
- python的循环和条件判断
- Python基础之语句(条件、循环)
- <Python核心编程>条件和循环(包括迭代器、生成器)
- python的循环条件
- Python学习(条件和循环语句)
- Java循环和条件
- python之条件、循环语句
- python中的条件和循环
- python 条件判断和循环
- Python(条件判断和循环)
- AndroidStudio SVN Ignored Files
- First_FX3_App
- 说说 JavaScript 表单的选择框脚本
- Weblogic 12套接字无法下降的原因
- Oracle建立表空间和用户
- java程序员的python之路(条件,循环和迭代器)
- 递归函数
- POJ 2377(最大生成树)
- javascript hasOwnProperty(),in操作符
- petalinux 设备树驱动GPIOLED
- java数据结构与算法之树基本概念及二叉树(BinaryTree)的设计与实现
- IBM SPSS Modeler 18.1最新版本正式发布 | 附下载
- android apk安装包修改了之后在安卓7.0系统上无法安装的解决办法
- Python导入自定义的三种方法