流程控制语句
程序是由语句构成,而流程控制语句 是用来控制程序中每条语句执行顺序的语句。可以通过控制语句实现更丰富的逻辑以及更强大的功能。几乎所有编程语言都有流程控制语句,功能也都基本相似。
其流程控制方式有
- 顺序结构
- 分支结构
- 循环结构
这里最简单最常用的就是顺序结构,即语句从上至下一一执行。
1、分支语句
顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用分支结构。
1.1、单分支语句
if 表达式:
代码块
代码展示:
if 3 > 2:
print("yes")
print("no")
说明:
1、“表达式”可以是一个单一的值或者复杂语句,形式不限,但解释器最后会通过
bool
获取一个true
或者false
的布尔值2、“代码块”由:与具由相同缩进标识的若干条语句组成(一般是四个缩进)。
1.2、双分支语句
双分支语句顾名思义,二条分支二选一执行!
if 表达式:
代码块
else:
代码块
执行过程:首先执行判断条件,当判断条件成立【结果为真的时候】会执行语句块1,若条件不成立,则执行语句块2。
代码展示:
age = 19
if age > 18:
print("成年人")
else:
print("未成年人")
5.1.3、多分支语句
多分支即从比双分支更多的分支选择一支执行。
语法格式:
if 表达式:
代码块
elif 表达式:
代码块
elif 表达式:
代码块
elif 表达式:
代码块
else:
代码块
执行过程:首先执行判断条件1,若条件1成立则执行语句块1,语句块1执行完毕则跳出分支语句;若条件1不成立,则执行判断条件2,若条件2成立,则执行语句块2;若条件2不成立,则继续往下执行直到判断条件成立为止;若判断条件都不成立,则执行else下面的语句块。
代码展示:
(1)
user = "roots"
pwd = 123
if user == "root" and pwd == 123:
print("登陆成功!")
else:
pass #python中的pass语句代表空语句,也就是占位符,为的就是使程序结构完整性。
print("end")
(2)分支嵌套
core_str = input("请输入一个成绩:")
if score_str.isdigit(): #.isdigit() 所有字符都是数字,此处是判断所输入值是否为数字
score = int(score_str)
if score > 90:
print("成绩优秀")
elif score > 80:
print("成绩良好")
elif score > 60:
print("成绩及格")
else:
print("成绩不及格")
else:
print("非法输入!")
执行过程:首先执行判断条件1,条件1成立,则执行判断条件2;若条件2成立,则执行语句块2-1,否则执行语句块2-2;条件1不成立,则执行语句块1-2。
注意:else与if的配套与缩进有关,if下面的else是对齐的(对应具有相同的缩进量),嵌套的分支语句较上一级整体少4个空格缩进。
(3)
#分支语句的表达式 通过bool()计算布尔值
state = True # "0" 0 -1 此处赋值要是非零值
if state:
print("OK")
else:
print("not OK")
2、循环语句
在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。一组被重复执行的语句称之为循环体,能否继续重复,决定循环的终止条件。
Python语言中的循环语句支持 while循环(条件循环)和for循环(遍历循环)。
2.1、while循环
语法:
while 表达式:
循环体
count = 1 # 初始变量
# while count <= 100: # 条件判断
# # print("OK")
# print(count)
# count += 1 # count = count+1 步进语句
# print("end")
执行语句可以是单个语句或语句块,判断条件可以是任何表达式,任何非零,或非空(null)的值均为True,当判断条件为False时,结束循环。
死循环:当表达式永远为真的时候,会出现死循环,例如
while 1:
print("I am very good!")
whlie循环之else
while 判断条件:
循环体
else:
语句块
执行过程:首先执行判断条件,若条件成立则执行循环体;当循环正常执行结束的时候,会执行else下面的语句块;若循环非正常执行结束[使用break跳出循环体的时候]则不会执行else下面的语句块。
count = 0
while count < 5:
print("%d is less than 5"%count)
count += 1
else:
print("%d is not less than 5"%count)
代码(计算1到100的和)
count: int = 0
result: int = 0
while count <= 100:
result = result + count
count += 1
print(result)
运行结果
5050
2.2、for循环
for 循环的语法格式如下:
for 迭代变量 in 字符串|列表|元组|字典|集合:
代码块
格式中,迭代变量用于存放从序列类型变量中读取出来的元素,所以一般不会在循环中对迭代变量手动赋值;代码块指的是具有相同缩进格式的多行代码(和 while 一样),由于和循环结构联用,因此代码块又称为循环体。
例如:
for i in "hello world":
print(i)
死循环
1、何为死循环:在编程中,一个无法靠自身的控制终止的循环被称为死循环
2、在Python中while循环的执行条件为:While关键字后的条件语句为True
⑴因此当条件为"while True或while 1"时,如果没有特殊处理,那么就会一直执行执行while循环,这种就被称为死循环(不会出现条件为False的情况,无法跳出循环)
3、因为死循环无法终止,会一直运行下去,所以我们要尽量避免出现死循环
4、当然,我们也可以使用break或continue关键字来终止某一循环
⑴break:某一条件满足时,退出循环,不再执行后续重复的代码(跳出整个循环)
⑵continue:某一条件满足时,不执行后续重复的代码(跳出当前循环)
⑶break和continue只针对当前所在循环有效
⑷break和continue关键字都可以用在while循环或for循环中
2.3、退出循环
如果想提前结束循环(在不满足结束条件的情况下结束循环),可以使用break或continue关键字。
- break
当 break 关键字用于 for 循环时,会终止循环而执行整个循环语句后面的代码。break 关键字通常和 if 语句一起使用,即满足某个条件时便跳出循环,继续执行循环语句下面的代码。
例如:
count = 0
while count < 10:
count+=1
if count == 8:
break
print(count)
- continue
不同于break退出整个循环,continue指的是退出当次循环。
例如:
count = 0
while count < 10:
count+=1
if count == 8:
continue
print(count)
5.2.4、循环嵌套
在一个循环体语句中又包含另一个循环语句,称为循环嵌套
- 独立嵌套
在控制台上打印一个如下图所示的正方形
*****
*****
*****
*****
*****
for i in range(5):
for j in range(5):
print("*",end="")
print("")
- 关联嵌套
在控制台上打印一个如下图所示的三角形
*
**
***
****
*****
for i in range(5):
for j in range(i+1):
print("*",end="")
print("")