人们常说人生就是一个不断做选择题的过程:有的人没得选,只有一条路能走;有的人好一点,可以二选一;有些能力好或者家境好的人,可以有更多的选择;还有一些人在人生的迷茫期会在原地打转,找不到方向。对于相信有上帝的人来讲,这就好像是上帝事先为我们制定好了人生路线,也好像是那些神仙为唐曾师徒的取经之路提前设置的重重磨难,上帝和神仙掌控了一切。编程语言可以模拟人类生活的方方面面,程序员就像上帝和神仙一样可以通过编程语言中特殊的关键字控制程序的执行过程,这些关键字组成的就是流程控制语句。

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

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

其中顺序语句不需要单独的关键字来控制,就是一行行的执行,不需要特殊的说明。这里主要要说的是 分支语句 和 循环语句。

一、分支语句


条件分支语句是通过一条或多条语句(判断条件)的执行结果(True/False)来决定执行哪个分支的代码块。Python中提供的分支语句为:if..else语句,没有提供switch..case语句。if..else语句有以下几种形式:

单分支:

if 判断条件:
代码块

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

if 判断条件: 一句代码

实例:判断指定的uid是不是root用户

uid = 0

if uid == 0:
print("root")

也可以这样写:

uid = 0

if uid == 0: print("root")

输出结果:root

双分支:

if 判断条件:
代码块
else:
代码块

实例:根据用户id打印用户身份

uid = 100

if uid == 0:
print("root")
else:
print("Common user")

输出结果:Common user

多分支:

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时,就表示该条件成立,相应的代码块就会被执行;否则表示条件不成立,需要判断下一个条件。

二、循环语句


当我们需要多次执行一个代码语句或代码块时,可以使用循环语句。Python中提供的循环语句有:while循环和for循环。需要注意的是Python中没有do..while循环。此外,还有几个用于控制循环执行过程的循环控制语句:break、continue和pass。

1. while循环

基本形式

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

while死循环

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

while True:
print("这是一个死循环")

输出结果:

这是一个死循环
这是一个死循环
这是一个死循环
...

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

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. for循环

for循环通常用于遍历序列(如list、tuple、range、str)、集合(如 set)和映射对象(如dict)。

基本形式

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

for...else

与while..else基本一致,不再赘述。

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

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

输出结果:

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

Python流程控制语句的更多相关文章

  1. 【转】Python流程控制语句

    [转]Python流程控制语句 人们常说人生就是一个不断做选择题的过程:有的人没得选,只有一条路能走:有的人好一点,可以二选一:有些能力好或者家境好的人,可以有更多的选择:还有一些人在人生的迷茫期会在 ...

  2. 『无为则无心』Python基础 — 13、Python流程控制语句(条件语句)

    目录 1.流程控制基本概念 2.选择结构(条件语句) (1)条件语句概念 (2)if语句语法 (3)if...else...语句 (4)多重判断 (5)if语句嵌套 3.应用:猜拳游戏 4.三元运算符 ...

  3. 004 python 流程控制语句

    流程控制语句 1.if判断 语法 a = 10,b = 20# 1if a == 10:  print('a等于10')# 2if a > b:  print('a大于b')else:  pri ...

  4. 4.python流程控制语句介绍

    流程控制语句分类 1).顺序结构 2).判断结构 3).循环结构 判断结构 特点:如果 ... 否则 ... 格式一:                 ①                 if 条件表 ...

  5. python流程控制语句 ifelse - 3

    #! /usr/bin/python x = input ('please inut a integer:') x = int(x) : print ('你输入了一个负数') elif x == : ...

  6. Python流程控制语句(Control Flow)

    Python用于流程控制的语句包括if,for,while,这些都是从C语言借鉴过来的,然后我们会提到pass语句. 1,if if的语法很简答,我们举一个例子就好,注意关键字if, elif, el ...

  7. Python流程控制语句详解

    1.程序结构 计算机在解决问题时,分别是顺序执行所有语句.选择执行部分语句.循环执行部分语句,分别是:顺序结构.选择结构.循环结构.如下图: 2.选择语句 2.1最简单的if语句 Python使用保留 ...

  8. 『无为则无心』Python基础 — 14、Python流程控制语句(while循环语句)

    目录 1.什么是循环结构 2.while循环 (1)while循环的语法 (2)while循环的应用 3.while语句的死循环 4.break和continue 5.while循环嵌套 (1)应用场 ...

  9. python流程控制语句 for循环 - 1

    Python中for循环语句是通过遍历某一序列对象(元组.列表.字典等)来构建循环,循环结束的条件就是遍历对象完成. 语法形式: for <循环变量> in <遍历对象>: & ...

随机推荐

  1. INotifyPropertyChanged接口的PropertyChanged 事件

    INotifyPropertyChanged 接口用于向客户端(通常是执行绑定的客户端)发出某一属性值已更改的通知. 例如,考虑一个带有名为 FirstName 属性的 Person 对象. 若要提供 ...

  2. Java程序,取随机数的两种实现方法

    1.随机数的第一种程序(取0-9的整型随机数) public class random_1 { public static void main(String[] args) { Random r=ne ...

  3. chrome 浏览器 手动同步书签 && 安装离线插件

    现在查的很严,所以使用chrome浏览器 同步功能不是特别好,就算是FQ也会出现 同步延迟的情况,所以定时使用手动同步还是很靠谱的行为,就在网上找了下,借鉴下.亲测可用. 在Chrome浏览器没有一个 ...

  4. 「2014-2-8」Reading a blog on the pain points of Global Variables of C language

    晚上读到一篇<C 语言全局变量那些事儿>.我先前对链接的理解不深,算是涨了一番姿势.此文吐槽的重点,是「非 static 限定的全局变量」带来的看似出人意料(实则可以被合理解释)的行为.虽 ...

  5. 位图图像处理控件ImageCapture Suite更新至v9.1

    概述:Dynamsoft公司旗下非常出名的位图图像处理控件ImageCapture Suite更新至了v9.1,这次新版本为Mac版本和IE 9新增了不少功能,同时还对其他组件的性能进行了质的提高! ...

  6. jQuery中$.fn的用法

    原文:http://www.jb51.net/article/42816.htm $.fn是指jquery的命名空间,$.fn=$.prototype. 1.$.extend 为jquery添加静态方 ...

  7. java调用Linux命令报错:java.io.IOException: Cannot run program "ps": CreateProcess error=2, ?????????

    在idea里面,java代码:Runtime.getRuntime().exec("ps -aux") 是因为默认是用windows平台运行了,所以报错,得改成调用Linux平台运 ...

  8. Bootstrap库之Modals

    Bootstrap库之Modals. Bootstrap是Twitter推出的一个开发工具包,包含了一些比较常用的CSS,JavaScript代码.使用Bootstrap可以加快前端开发的速度.本站( ...

  9. Worse Is Better

    最近做的几件事和最近刚读到这篇文章(http://www.jwz.org/doc/worse-is-better.html)让我重新认识了KISS和这个所谓的Worse-is-better原则. 软件 ...

  10. android precelable和Serialization序列化数据传输

    一 序列化原因: 1.永久性保存对象,保存对象的字节序列到本地文件中:2.通过序列化对象在网络中传递对象:3.通过序列化在进程间传递对象. 二 至于选取哪种可参考下面的原则: 1.在使用内存的时候,P ...