在编程的世界中,流程控制是程序员运行的基础,流程控制决定了程序按照什么样的方式去执行,本节给大家介绍 Python 流程控制相关语法。
if 语句
if 语句表示如何发生什么样的条件,执行什么样的逻辑。
Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false。
1)单一分支
if 条件表达式:【代码块】
【后续代码】
执行流程:如果条件表达式为真,则执行【代码块】。否则不执行,直接执行if语句后面的【后续代码】
注意:【代码块】必须缩进单if语句可以嵌套
2) 双向分支
if 条件表达式:【语句块A】
else:【语句块B】
【后续代码】
执行流程:如果条件表达式为真,执行【语句块A】然后执行【后续代码】,否则执行【语句块B】,然后再执行【后续代码】,二选一,不可能既执行A有执行B
注意:【语句块A】和【语句块B】必须缩进if-else可以嵌套
3)多向条件分支
if 条件1:【代码段1】
elif 条件2:【代码段2】
............
elif 条件n:
【代码段n】
else:【else语句块】
【后续代码】
执行流程:多选一,如果满足条件1,执行【代码段1】,然后跳出if-elif语句,执行【后续代码】,否则判断是否满足条件2,如果满足执行【代码段2】,然后跳出if-elif语句,执行【后续代码】...。如果所有条件都不满足,执行【else语句块】,然后再执行【后续代码】。
注意:else是可选的,可以写也可以不写。
示例:
x = int(input("Please enter an integer: "))x = -5
if x < 0:x = 0print('Negative changed to zero')
elif x == 0:print('Zero')
elif x == 1:print('Single')
else:print('More')
可能会有零到多个 elif 部分,else 是可选的。关键字 ‘elif’ 是 ’else if’ 的缩写,这个可以有效地避免过深的缩进。if … elif … elif … 序列用于替代其它语言中的 switch 或 case 语句。
for 循环
Python for 循环可以遍历任何序列的项目,如一个 列表 或者一个 字符串。
语法:
for 循环的语法格式如下:
'''
for 后跟变量名,in 后跟序列,注意加冒号
for 循环每次从序列中取一个值放到变量中
此处的序列主要指 列表 元组 字符串 文件
'''
for iterating_var in sequence:
statements(s)
示例如下:
for letter in 'Python': # 第一个实例print('当前字母 :', letter)fruits = ['banana', 'apple', 'mango']for fruit in fruits: # 第二个实例print('当前字母 :', fruit)print("Good bye!")
也可以通过索引地址来遍历内容
fruits = ['banana', 'apple', 'mango']
for index in range(len(fruits)):print('当前水果 :', fruits[index])print("Good bye!")
循环概念
广义:一个周期现象或者重复出现的情况,这种状态被称为循环
狭义:在满足条件的情况下,反复执行某一段代码,在编程语言中出现的这种现象被称为循环。被反复执行的这段代码被称为循环体
当反复执行某段代码时,需要在合适的时机将循环停止下来,否则会产生死循环
Python中提供的循环语句:while语句,for-in语句
while的使用
1 while语法
while 表达式:循环体
工作原理:遇到while语句时,首先计算表达式的值,如果表达式的值为假,则跳过整个while语句,继续执行下面的代码;如果表达式的值为真,则执行循环体
2 while-else
while 表达式: 循环体 else:【else语句块】
说明:当while语句执行完成之后,执行【else语句块】,如果用break跳出循环则不执行else
3 死循环
在循环语句中,表达式永远为真的循环
while True: #循环体while 1: #循环体
4 while语句的嵌套
while 条件1: #外层循环【语句块A】while 条件2: #内存循环 【语句B】
执行流程:首先判断外层循环的条件1,如果为真,则执行循环体中的【语句块A】,执行内层循环,判断条件2是否成立,如果成立,执行内层循环的【语句块B】,执行完内层循环后,重新判断外层循环条件....
-
特点:外层循环走一步,内层循环执行一遍
-
外层循环和内层循环的循环变量必须不同
语法:
while 判断条件:
执行语句……
示例:
count = 0
while (count < 9):print( 'The count is:', count)count = count + 1print("Good bye!")
也可以在 while 循环中添加判断逻辑
count = 0
while count < 5:print(count, " is less than 6")count = count + 1
else:print(count, " is not less than 6")
range() 函数
如果你需要一个数值序列,内置函数 range() 会很方便,它生成一个等差级数链表:
语法:
range (start, end, scan):
参数含义:
-
start:计数从 start 开始。默认是从 0 开始。例如 range(5) 等价于 range(0, 5);
-
end:计数到 end 结束,但不包括 end.例如:range(0, 5) 是[0, 1, 2, 3, 4]没有 5
-
scan:每次跳跃的间距,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
示例:
for i in range(6):print(i)
print(range(6),'finish')for i in range(6,10):print(i)
print(range(6,10),'finish')for i in range(6,12,2):print(i)
print(range(6,12,2),'finish')
需要迭代链表索引的话,如下所示结合使 用 range() 和 len():
a = ['i', 'love', 'coding', 'and', 'free']
for i in range(len(a)):print(i, a[i])
break 用法和continue、pass
break用于结束当前循环。只对当前这一重循环起作用。break只能出现在循环中。
break示例:
for letter in 'ityouknow': # 第一个实例if letter == 'n': # 字母为 n 时中断breakprint ('当前字母 :', letter)
continue 语句用来跳过当前循环的剩余语句,然后重新判断循环条件,开启下一轮循环。continue只能出现在while和for循环中
continue 示例:
for letter in 'ityouknow': # 第一个实例
if letter == 'n': # 字母为 n 时跳过输出continueprint ('当前字母 :', letter)
pass 示例:
while True:
pass # Busy-wait for keyboard interrupt (Ctrl+C)
# 这通常用于创建最小结构的类:
class MyEmptyClass:
pass
总结
本节给大家介绍了 Python 语法中的流程控制相关语法,方便后期在代码逻辑中进行条件控制,留一个小问题,试着去用循环打印一下九九乘法表,答案下期揭晓。
参考:
http://www.pythondoc.com/pythontutorial3
https://www.runoob.com/python3/python3-tutorial.html