Python中的流程控制语句有五个,分别是if条件判断、if嵌套、while循环、for循环和跳转语句。python
代码块:代码块中保存着一组代码,同一个代码块中的代码,要么都执行要么都不执行;代码块以缩进开始,直到代码恢复到以前的缩进级别时结束。函数
几乎全部的语言都有if判断语句,if语句根据判断条件来选择执行或者不执行后面的代码块。code
Python中的if判断语句的格式以下:字符串
if 表达式: 语句1 语句2 ...
if语句的核心是表达式,这个表达式是逻辑表达式,是判断条件,表达式的值要么是 "True" ,要么是 "False" 。for循环
表达式后面的 ":" 不能省略,不然会报错。class
语句一、语句二、...、是紧跟if的一个代码块,前面的缩进不能省,不然会报错;缩进以四个空格为标准,当代码恢复到以前的缩进级别时,代码块结束。变量
当表达式的值为 "True" 时,执行if后面的代码块;当表达式的值为 "False" 时,跳过if后面的代码块,直接执行下一行代码。循环
表达式能够是布尔类型,也能够是数字;当表达式为数字时, "0" 为假,其它数字均为真。遍历
当出现多个判断条件时,表达式还可使用逻辑运算符来链接多个条件,若是但愿全部条件同时知足,则须要使用 "and" ;若是但愿只要有一个条件知足便可,则须要使用 "or" 。程序
表达式的值为 "False" 或者 "0" 时,if后面的代码块不执行;当表达式为空字符串、空列表、空元组、空字典时,表达式的值为 "False" ;当表达式为 "None" 时,表达式的值也为 "False" 。
x = True if x: print("It's True!") # 输出It's True! print('---------') x = False if x: print("It's True!") # 没有输出 print('---------') x = 18 if x: print('x is', x) # 输出x is 18 print('---------') x = 0 if x: print('x is', x) # 没有输出 print('---------') x = 18 if x > 0: print('x =', x ) # 输出x = 18 print('---------') x = 'Hello' if x: print('x is', x) # 输出x is Hello print('---------') x = '' if x: print('x is', x) # 没有输出 print('---------') x = 1 if x*5 > 0 and x < 5: print('x =', x) # 输出x = 1 print('---------') if None: print('Hello world') # 没有输出
It's True! --------- --------- x is 18 --------- --------- x = 18 --------- x is Hello --------- --------- x = 1 ---------
有时候事情的结果有两种可能,那么能够用 "if...else" 来表示;当if表达式的值为 "False" 时,执行else后的语句;注意,else不能单独出现,必须跟if成对出现。
有时候事情的结果有多种可能,简单的 "if...else" 并不能知足需求,这种状况下就可使用 "if...elif" 。
elif和else同样都是if的可选项,而且elif也不能单独出现,必须跟在if的后面。
"if...elif" 格式只会执行第一个知足条件表达式的代码块,其它表达式中的代码块都会被忽视。
若是有elif,则else必须在最后,不能插在elif以前。
if...else的格式以下:
if 表达式: 代码块 else: 代码块
if...elif的格式以下:
if 表达式1: 代码块 elif 表达式2: 代码块 elif 表达式3: 代码块 ... else: 代码块
print('if...else') x = 65 if x >= 60: print('及格!') else: print('不及格!') print('---------') print('if...elif') x = 89 if x >= 0 and x <= 100: if x >= 90 and x <= 100: print('极其优秀!') elif x >= 80: print('优秀!') elif x >= 70: print('良好!') elif x >= 60: print('及格!') else: print('不及格!')
if...else 及格! --------- if...elif 优秀!
Python中主要有两种循环结构,while循环和for循环。
while循环是Python中最简单的循环结构。
while循环的格式以下:
while 表达式: 语句1 语句2 ...
while后面的表达式和if中的表达式同样,都是条件判断;只有表达式的结果为 "True" 时,才会执行后面的循环体。
语句一、语句二、...、是紧跟while的一个代码块,叫作循环体;前面的缩进不能省,不然会报错;缩进以四个空格为标准,当代码恢复到以前的缩进级别时,代码块结束。
print('while循环') x = 1 while x <= 5: print('当前数字为:%d' % x) x += 1 # x += 1不能省略,不然会产生无限循环或死循环 print('---------') print('1-100的累加和') x = 1 sum = 0 while x <= 100: sum += x x += 1 print('1-100的累加和为:sum = %d' % sum) print('---------') print('打印小星星') i = 1 # i表示行 while i <= 5: j = 1 # j表示列 while j <= i: print('*', end='') # end=''在末尾传递一个空字符串,这样print函数不会在末尾添加一个换行符,而是添加一个空字符串 j += 1 print('') # 表示换行 i += 1
while循环 当前数字为:1 当前数字为:2 当前数字为:3 当前数字为:4 当前数字为:5 --------- 1-100的累加和 1-100的累加和为:sum = 5050 --------- 打印小星星 * ** *** **** *****
在Python中,for循环能够遍历任何序列中的内容,如遍历一个列表或一个字符串的全部元素;
也能够用它来实现内容的重复输出。
Python中的range函数能够配合for使用;range函数有两种使用方式,第一种是给定一个数字型参数,即range(num);第二种是给定两个或三个数字型参数,即range(num1, num2, num3),前两个数字分别表明开始和结束,最后一个数字表明步长,若是没有则默认步长为1。
for循环的格式以下:
for 临时变量 in 列表或字符串等序列: 语句1 语句2 ...
print('for循环') for x in (1, 2, 3, 4, 5): print(x, end=' ') print('') # 表示换行 print('---------') print('重复输出') for x in (1, 2, 3): print('Hello Python!') print('---------') print('第一种range函数') for x in range(5): print(x, end=' ') # 输出5个数,从0开始,即0 1 2 3 4 print('') # 表示换行 print('---------') print('第二种range函数') for x in range(1, 10): print(x, end=' ') # 输出9个数,从1开始,不会输出10,默认步长为1,即1 2 3 4 5 6 7 8 9
for循环 1 2 3 4 5 --------- 重复输出 Hello Python! Hello Python! Hello Python! --------- 第一种range函数 0 1 2 3 4 --------- 第二种range函数 1 2 3 4 5 6 7 8 9
跳转语句有break语句和continue语句。
break语句和continue语句只能用在循环中,不能单独使用。
break语句和continue语句在嵌套循环中,只对最近的一层循环起做用。
break语句的做用是当即退出循环体,直接结束循环,包括while和for在内的全部循环控制语句;break用来结束当前代码块的最内层循环。
continue语句的做用是跳过当前的循环,紧接着执行下一次的循环,并不会退出循环体;continue用来结束当前代码块的本次循环。
print('break语句') i = 0 while i < 10: if i == 3: break print(i) i += 1 print('over!') print('---------') print('break结束最内层循环') name = '流程控制语句' for x in range(3): for y in name: if y == '控': break print(y, end=' ') print('') print('——第%d次循环——' % (x+1))
break语句 0 1 2 over! --------- break结束最内层循环 流 程 ——第1次循环—— 流 程 ——第2次循环—— 流 程 ——第3次循环——
print('continue语句') i = 0 while i <= 5: i += 1 if i == 3: continue print(i) print('over!') print('---------') print('continue结束本次循环') name = '流程控制语句' for x in name: if x == '控': continue print(x, end=' ')
continue语句 1 2 4 5 6 over! --------- continue结束本次循环 流 程 制 语 句
在Python中,pass语句是空语句,其做用是保持程序结构的完整性;pass语句不作任何操做,通常用做占位语句。
由于流程控制以后的一行必须是有缩进的代码块,然而有时候可能并不须要执行什么东西或者在编写程序的时候尚未想好要如何编写执行内容,这时候为了保持程序结构的完整性,就须要用到pass语句来占位。
print('pass语句') for i in 'Python': if i == 'h': pass # 若是没有pass会报错,由于if语句不完整 else: print(i, end=' ')
pass语句 P y t o n
在Python中,不仅if能够和else组合,while和for也能够和else组合出现。
和while组合的else后的代码块,会在while的条件表达式为 "False" 时执行。
若是循环体中出现break语句,那么退出循环的时候是不会执行else后的代码块的。
print('while...else') x = 0 while x < 3: print('Hello Python!') x += 1 else: print('结束!') print('---------') print('while...break...else') x = 0 while x <= 5: if x == 3: break print(x, end=' ') x += 1 else: print('结束!') # 执行break语句退出循环时,else后的代码块并无执行 print('') # 表示换行 print('---------') print('for...else') for x in range(3): print('当前数字为 %d' % x) else: print('当前数字为 无') print('---------') print('for...break...else') for x in range(5): if x == 3: break print(x, end=' ') else: print('结束!') # 执行break语句退出循环时,else后的代码块并无执行
while...else Hello Python! Hello Python! Hello Python! 结束! --------- while...break...else 0 1 2 --------- for...else 当前数字为 0 当前数字为 1 当前数字为 2 当前数字为 无 --------- for...break...else 0 1 2