五、流程控制语句
程序是由语句构成,而流程控制语句 是用来控制程序中每条语句执行顺序的语句。可以通过控制语句实现更丰富的逻辑以及更强大的功能。几乎所有编程语言都有流程控制语句,功能也都基本相似。
其流程控制方式有
这里最简单最常用的就是顺序结构,即语句从上至下一一执行。
1
2
print ("OK" )
print ("not OK" )
5.1、分支语句
顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用分支结构。
5.1.1、单分支语句
语法:
1
2
3
4
5
6
7
8
9
10
11
'''
if 表达式:
代码块
'''
user = input ("用户名>>" )
pwd = input ("密码>>" )
if user == "root" and pwd == "123" :
print ("登录成功" )
print ("程序结束" )
说明:
1、“表达式”可以是一个单一的值或者复杂语句,形式不限,但解释器最后会通过bool
获取一个true
或者false
的布尔值
2、“代码块”由:与具由相同缩进标识的若干条语句组成(一般是四个缩进)。
5.1.2、双分支语句
双分支语句顾名思义,二条分支二选一执行!
语法格式:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
'''
if 表达式:
代码块 1
else:
代码块 2
'''
user = input ("用户名>>" )
pwd = input ("密码>>" )
if user == "root" and pwd == "123" :
print ("登录成功" )
print ("祝贺你" )
else :
print ("登录失败" )
print ("不好意思" )
5.1.3、多分支语句
多分支即从比双分支更多的分支选择一支执行。
语法格式:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
'''
if 表达式 1:
代码块 1
elif 表达式 2:
代码块 2
elif 表达式 3:
代码块 3
...# 其它elif语句
else:
代码块 n
'''
score = input ("请输入您的成绩>>" )
score = int (score)
if score > 100 or score < 0 :
print ("您的输入有误!" )
elif score > 90 :
print ("成绩优秀" )
elif score > 70 :
print ("成绩良好" )
elif score > 60 :
print ("成绩及格" )
else :
print ("成绩不及格" )
5.1.4、if嵌套
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
score = input ("请输入您的成绩>>" )
if score.isdigit():
score = int (score)
if score > 100 or score < 0 :
print ("您的输入有误!" )
elif score > 90 :
print ("成绩优秀" )
elif score > 70 :
print ("成绩良好" )
elif score > 60 :
print ("成绩及格" )
else :
print ("成绩不及格" )
else :
print ("请输入一个数字" )
5.2、循环语句
在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。一组被重复执行的语句称之为循环体,能否继续重复,决定循环的终止条件。
Python语言中的循环语句支持 while循环(条件循环)和for循环(遍历循环)。
5.2.1、while循环
语法:
1
2
3
4
5
'''
while 表达式:
循环体
'''
(1)无限循环
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
while 1 :
print ("OK" )
while 1 :
score = input ("请输入您的成绩>>" )
if score.isdigit():
score = int (score)
if score > 100 or score < 0 :
print ("您的输入有误!" )
elif score > 90 :
print ("成绩优秀" )
elif score > 70 :
print ("成绩良好" )
elif score > 60 :
print ("成绩及格" )
else :
print ("成绩不及格" )
else :
print ("请输入一个数字" )
(2)限定次数循环
循环打印十遍"hello world”
1
2
3
4
5
count = 0
while count < 10 :
print ("hello world" )
count+=1
print ("end" )
5.2.2、for循环
for 循环的语法格式如下:
1
2
3
4
'''
for 迭代变量 in 字符串|列表|元组|字典|集合:
代码块
'''
格式中,迭代变量用于存放从序列类型变量中读取出来的元素,所以一般不会在循环中对迭代变量手动赋值;代码块指的是具有相同缩进格式的多行代码(和 while 一样),由于和循环结构联用,因此代码块又称为循环体。
1
2
3
4
5
6
7
8
for i in "hello world" :
print (i)
for name in ["张三" ,'李四' ,"王五" ]:
print (name)
for i in range (10 ):
print (i)
5.2.3、退出循环
如果想提前结束循环(在不满足结束条件的情况下结束循环),可以使用break或continue关键字。
当 break 关键字用于 for 循环时,会终止循环而执行整个循环语句后面的代码。break 关键字通常和 if 语句一起使用,即满足某个条件时便跳出循环,继续执行循环语句下面的代码。
不同于break退出整个循环,continue指的是退出当次循环。
1
2
3
4
5
6
7
8
while 1 :
num = int (input ("num>>" ))
for i in range (1 , num + 1 ):
if i == 6 :
continue
print (i)
配合debug模式理解
5.2.4、循环嵌套
在一个循环体语句中又包含另一个循环语句,称为循环嵌套
在控制台上打印一个如下图所示的正方形
**** *
**** *
**** *
**** *
**** *
1
2
3
4
for i in range (5 ):
for j in range (5 ):
print ("*" ,end="" )
print ("" )
在控制台上打印一个如下图所示的三角形
*
**
** *
****
**** *
1
2
3
4
for i in range (5 ):
for j in range (i+1 ):
print ("*" ,end="" )
print ("" )
5.3、练习题
5.3.1、随堂练习
1
2
3
4
5
6
7
8
9
10
11
12
'''
程序随机内置一个位于一定范围内的数字作为猜测的结果,由用户猜测此数字。用户每猜测一次,由系统提示猜测结果:太大了、太小了或者猜对了,直到用户猜对结果或者猜测次数用完导致失败。
设定一个理想数字比如:66,
让用户三次机会猜数字,如果比66大,则显示猜测的结果大了;
如果比66小,则显示猜测的结果小了;
只有等于66,显示猜测结果正确,退出循环。
最多三次都没有猜测正确,退出循环,并显示‘都没猜对,继续努力’。
'''
5.3.2、课后作业
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
'''
1、求偶数元素的和[1,2,1,2,3,3,6,5,8]
2、写代码:计算 1 - 2 + 3 - 4 + ... + 99 中除了88以外所有数的总和?
3、求1+2+3+4+……+100的和.
4、斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13,特别指出:第0项是0,第1项是第一个1。从第三项开始,每一项都等于前两项之和。
计算索引为10的斐波那契数列对应的值
5、打印菱形小星星
*
***
*****
*******
*********
***********
***********
*********
*******
*****
***
*
'''
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律