编程语言中的流程控制语句分为以下几类:

  • 顺序语句
  • 分支语句
  • 循环语句

其中顺序语句不需要单独的关键字来控制,就是按照先后顺序一行一行的执行,不需要特殊的说明。

下面主要是 分支语句 和 循环语句的说明:

Python中的真假判断标准:

Python中只有判断语句的最终结果:非0,非空,非None,结果就为真

1、分支语句

条件分支语句是通过一条或多条语句(判断条件)的执行结果(True/False)来决定执行哪个分支的代码块。

Python中提供的分支语句为:if..else语句,没有提供switch..case语句。

if..else语句有以下几种形式:

1.1 单分支:

if 判断条件:

代码块

如果单分支语句的代码块只有一条语句,可以把if语句和代码写在同一行:

if 判断条件: 一句代码

示例:

a = 1
b = 5
c = 10
if a <= b <= c:
   
print('1 <= 5 <= 10')

输出:

1 <= 5 <= 10

代码块中只有一条语句,可以改写为:

a = 1
b = 5
c = 10
if a <= b <= c:   
print('1 <= 5 <= 10')

输出:

1 <= 5 <= 10

1.2 双分支:

if 判断条件:

代码块

else:

代码块

示例:

a = 1
b = 5
if a >= b :
   
print('a大于b')
else:
   
print('a小于b')

输出结果:

a小于b

1.3 多分支:

if 判断条件1:

代码块1

elif 判断条件2:

代码块2

...

elif 判断条件n:

代码块n

else:

默认代码块

示例:根据学生分数打印字母等级

score = 88.8

level = int(score % 10)

if level >= 10:

print('Level A+')

elif level == 9:

print('Level A')

elif level == 8:

print('Level B')

elif level == 7:

print('Level C')

elif level == 6:

print('Level D')

else:

print('Level E')

输出结果:Level B

注意

当上面的“判断条件”中的表达式可以是任意的表达式,也可以是任意类型的数据对象实例。只要判断条件的最终返回结果的值测试为True时,就表示该条件成立,相应的代码块就会被执行;否则表示条件不成立,需要判断下一个条件

 

2、循环语句

当我们需要多次执行一个代码语句或代码块时,可以使用循环语句。

Python中提供的循环语句有2种:while循环(通用)和for循环(已知循环次数使用)。

需要注意的是Python中没有do..while循环

此外,还有几个用于控制循环执行过程的循环控制语句:break、continue和pass。

2.1.  while循环

基本形式

2.1.1  while循环语句基本语句

基本形式如下:

while 判断条件:

代码块

当给定的判断条件的返回值的真值测试结果为True时执行循环体的代码,否则退出循环体

示例:循环打印数字0-9

count = 0

while count <= 9:

print(count, end='
')

count += 1

输出结果:0 1 2 3 4 5 6 7 8 9

2.1.2  while死循环

当while的判断条件一直为True时,while循环体中代码就会永远循环下去

while True:

print("这是一个死循环")

输出结果:

这是一个死循环

这是一个死循环

这是一个死循环

...

此时可以通过Ctrl + C终止运行。

2.1.3  while..else

语句形式:

while 判断条件:

代码块

else:

代码块

else中的代码块会在while循环正常执行完的情况下执行,如果while循环被break中断,else中的代码块不会执行。

 

示例1:while循环正常执行结束的情况(else中的语句会被执行)

count = 0

while count <=9:

print(count, end='
')

count += 1

else:

print('end')

执行结果为:0 1 2 3 4 5 6 7 8 9 end

示例2:while循环被中断的情况(else中的语句不会被执行)

count = 0

while count <=9:

print(count, end='
')

if count == 5:

break

count += 1

else:

print('end')

输出结果:0 1 2 3 4 5

2.2.  for循环

for循环通常用于遍历序列(listtuplerangestr)、集合(set)和映射对象(dict)

基本形式

2.2.1.  for循环的基本格式:

for   临时变量   in   可迭代对象:

代码块

示例:遍历打印一个list中的元素

names = ['Tom', 'Peter', 'Jerry', 'Jack']

for  name  in  names:

print(name)

对于序列,也通过索引进行迭代:

names = ['Tom', 'Peter', 'Jerry', 'Jack']

for  i  in  range(len(names)):

print(names[i])

执行结果:

Tom

Peter

Jerry

Jack

2.2.2  for...else

与while..else基本一致,同样else语句只有在for循环正常执行结束时才会执行,如果for循环被break跳出,则不执行else语句。

2.3. 循环控制语句

循环控制语句可以更改循环体中程序的执行过程,如中断循环、跳过本次循环。

循环控制语句

说明

break

跳出当前层循环,不能一次跳出多层

contine

跳过本次循环,继续执行本层的下一次循环

pass

pass语句是个空语句,只是为了保持程序结构的完整性,相当于占位符,没有什么特殊含义。

pass语句并不是只能用于循环语句中,也可以用于分支语句中。

示例1:遍历0-9范围内的所有数字,并通过循环控制语句打印出其中的奇数

for  i  in  range(10):

if  i % 2 == 0:

continue

print(i, end=' ')

输出结果:1 3 5 7 9

示例2:通过循环控制语句打印一个列表中的前3个元素

names = ['Tom', 'Peter', 'Jerry', 'Jack', 'Lilly']

for  i  in  range(len(names)):

if  i  >=
3:

break

print(names[i])

输出结果:

Tom

Peter

Jerry

2.4. 循环嵌套

循环嵌套是指:在一个循环体里面嵌入另一循环。

示例1:通过while循环打印99乘法表

j = 1

while j <= 9:

i = 1

while i <= j:

print('%d*%d=%d'
% (i, j, i*j), end='\t')

i += 1

print()

j += 1

示例2:通过for循环打印99乘法表

for j in range(1, 10):

for i in range(1, j+1):

print('%d*%d=%d' % (i, j, i*j), end='\t')

i += 1

print()

j += 1

注意:python中没有类似C中的自增和自减运算,因为数值类型的对象在python中属于不可变类型,不能够原位改变其值

最新文章

  1. iOS Swift-控制流(The Swift Programming Language)
  2. window 和 linux 环境下杀死tomcat进程——也可以解决其他端口被占用的问题
  3. 英文写作——冠词的使用(Use 0f Articles)
  4. Ubuntu install Docker
  5. Unity 插件制作笔记(持续更新)
  6. eclipse报jvm terminated.exitcode=2异常解决办法
  7. Nginx简单配置
  8. init()和deinit()
  9. 使用logmnr方法找回被误删除Oracle的数据的脚本
  10. 数据结构(线段树):HDU 5649 DZY Loves Sorting
  11. The JSR-133 Cookbook for Compiler Writers(an unofficial guide to implementing the new JMM)
  12. Content-Type boundary 问题
  13. 下载caffe慢
  14. FPGA——流水灯(一)
  15. CMake support in Visual Studio
  16. Android布局中的空格以及占一个汉字宽度的空格,实现不同汉字字数对齐
  17. faster rcnn讲解很细
  18. Ubuntu相关配置
  19. JQ动态生成的元素,原事件绑定失效
  20. MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到Spring

热门文章

  1. hdoj5563(简单几何)
  2. 不常见偏门的Bug,Spring Boot IDEA 静态资源 图片访问404,初学者之殇
  3. Photoshop下载
  4. oj判题WA/RE怎么办
  5. jquery $.trim()方法的介绍
  6. Python标准库 os
  7. windows下配置java环境jdk
  8. android开发学习 ------- json数据与实体类之间的相互转换
  9. VC++编译出错:LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
  10. 复位电路设计&mdash;&mdash;利用PLL锁定信号(lock)产生复位信号