五、流程控制语句
五、流程控制语句
程序时有语句构成,而流程控制语句是用来控制程序中每条语句执行顺序的语句,可以通过控制语句实现更丰富的逻辑以及更强大的功能。几乎所有编程语言都有流程控制语句,功能也都基本相似。
其流程控制当时有
- 顺序结构
- 分支结构
- 循环结构
这里最简单最常用的就是顺序结构,即语句从上至下一一执行。
print("ok")
5.1、单分支语句
语法:
""" if 表达式 代码块 """ user = input("用户名>>") pwd = input("密码>>") if user = "root" and pwd == "123": # 返回一个布尔值 print("登录成功") # 强烈建议使用四个缩进 print("程序结束")
说明:
1、“表达式”可以是一个单一的值或者复杂语句,形式不限,但解释器最后会通过
bool
获取一个true
或者false
的布尔值2、“代码块”由:与具由相同缩进标识的若干条语句组成(一般是四个缩进)。
5.1.2、双分支语句
双扥之语句顾名思义,二条分支二选一执行!
语法格式:
''' if 表达式: 代码块 1 else: 代码块 2 ''' user = input("用户名>>") pwd = input("密码>>") if user == "root" and pwd == "123": # 返回一个布尔值 print("登录成功") # 强烈建议使用四个缩进 print("祝贺你") else: print("登录失败") print("不好意思")
5.1.3、多分支语句
多分支即从比双分支更多的分支选择一支执行。
语法格式:
''' if 表达式 1: 代码块 1 elif 表达式 2: 代码块 2 elif 表达式 3: 代码块 3 ...# 其它elif语句 else: 代码块 n ''' score = input("请输入您的成绩>>") # "100" # 当成绩大于90的时候显示优秀,否则显示一般 # 将数字字符串,比如"100",转换成一个整型数字的时候,需要int转换 score = int(score) # 100 if score > 100 or score < 0: print("您的输入有误!") elif score > 90: print("成绩优秀") elif score > 70: # else if print("成绩良好") elif score > 60: print("成绩及格") else: print("成绩不及格")
5.1.4、if嵌套
score = input("请输入您的成绩>>") # "100" if score.isdigit(): score = int(score) # 100 if score > 100 or score < 0: print("您的输入有误!") elif score > 90: print("成绩优秀") elif score > 70: # else if print("成绩良好") elif score > 60: print("成绩及格") else: print("成绩不及格") else: print("请输入一个数字")
5.2循环语句
在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。一组被重复执行的语句称之为循环体,能否继续重复,决定循环的终止条件。
Python语言中的循环语句支持 while循环(条件循环)和for循环(遍历循环)。
5.2.1、while循环
''' while 表达式: 循环体 '''
(1)无限循环
# 案例1 while 1: print("OK") # 无限循环打印OK,这样使用没有什么意义 # 案例2 while 1: score = input("请输入您的成绩>>") # "100" if score.isdigit(): score = int(score) # 100 if score > 100 or score < 0: print("您的输入有误!") elif score > 90: print("成绩优秀") elif score > 70: # else if print("成绩良好") elif score > 60: print("成绩及格") else: print("成绩不及格") else: print("请输入一个数字")
2)限定次数循环
循环打印十遍"hello world”
count = 0 # 初始化语句 while count < 10: # 条件判断 print("hello world") count+=1 # 步进语句 print("end")
5.2.2、for循环
for 循环的语法格式如下:
''' for 迭代变量 in 字符串|列表|元组|字典|集合: 代码块 '''
格式中,迭代变量用于存放程序列类型变量中读取出来的元素,所以一般不会在循环中对迭代变量手动赋值;代码块指的是具有相同缩进格式的多行代码(和 while 一样),由于和循环结构联用,因此代码块又称为循环体。
for i in "hello world": print(i) for name in ["张三",'李四',"王五"]: print(name) for i in range(10): # [1,2,3,4,5,6,7,8,9] range函数: range(start,end,step) print(i)
5.2.3、退出循环
如果想提前结束循环(在不满足结束条件的情况下结束循环),可以使用break或continue关键字。
- break
当 break 关键字用于 for 循环时,会终止循环而执行整个循环语句后面的代码。break 关键字通常和 if 语句一起使用,即满足某个条件时便跳出循环,继续执行循环语句下面的代码。
- continue
不同于break退出整个循环,continue指的是退出当次循环。
while 1: num = int(input("num>>")) for i in range(1, num + 1): # if i > 100: if i == 6: # break continue print(i)
配合debug模式理解
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("")