Python3(四)之流程控制

流程控制

  • 在此之前,我们已经学习了Python的数据类型与运算符了;
  • 接下来,请大家跟随我的步伐,让我们一起去学习Python的流程控制;

语句分类

  • 顺序语句:按照源代码的顺序去执行;
  • 分支语句:经由一定的判断,选择性地去执行一些代码;
  • 循环语句:需要重复执行一些代码;

注意事项

  • Python中使用冒号(:)表示满足条件时,执行的代码块;
  • 还记得Python使用缩进来控制代码块吗,并且相同代码块的缩进必须一致;
  • 根据逻辑值(TrueFalse)判断代码的执行方向;
    • True:所有非空的值;
    • False0None,空值;
  • 逻辑表达式:andornot

分支语句

  • 分支语句允许嵌套使用;

if语句

  • 此处flag的值为False,所以不会执行if语句;
1
2
3
4
5
6
7
8
9
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

flag = False

if flag:
print("Flag is True.")

print("Hello, World")

if/else语句

  • 若判断值为False,执行else语句,且else语句只能拥有一个;
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

flag = False

if flag:
print("Flag is True.")
else:
print("Flag is False.")

print("Hello, World")

if/elif/else语句

  • 或许有时有多个匹配条件,那我们该怎么办呢,此时就是elif登场了;
  • 允许有多个elif语句同时存在;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

var = 2

if var == 1:
print("var is 1.")
elif var == 2:
print("var is 2.")
elif var == 3:
print("var is 3.")
else:
print("var is unmatch.")

print("Hello, World")

switch/case语句

  • 不同于其他编程语言,Python中没有switch/case语句;
  • 不过我们可以使用字典映射来实现这一语句;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

def numbers_to_strings(argument):
switcher = {
0: "zero",
1: "one",
2: "two",
}
return switcher.get(argument, "nothing")

print(numbers_to_strings(1))

print(numbers_to_strings(3))

三元表达式

  • Python中提供了类似于C语言的三元条件表达式;
  • 语法格式为:True_Part if 条件 else False_Part
1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

flag = True
var = 1 if flag else 0

print(var)

flag = False
var = 1 if flag else 0

print(var)

循环语句

  • 循环语句允许嵌套使用;

for语句

  • Python中使用for语句用来迭代任何序列中的项目;
1
2
3
4
5
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

for item in sequence:
print(item)
  • Python中内置range函数,用于迭代数字序列,即产生算术数列迭代器;
1
2
3
4
5
6
7
8
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

# range(0, 5)
print(range(5))

# [0, 1, 2, 3, 4]
print(list(range(5)))
  • 使用for语句,遍历迭代序列;
1
2
3
4
5
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

for item in range(5):
print(item)
  • 通过序列的索引进行遍历,Python内置len函数,用于求序列的长度;
1
2
3
4
5
6
7
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

info = ["xiao", "hello", "22"]

for index in range(len(info)):
print(info[index])

while语句

  • 根据表达式的结果,判断循环是否还继续执行;
1
2
3
4
5
6
7
8
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

index = 0

while index < 10:
print(index)
index += 1
  • 值得注意:使用while语句时,必须有控制条件可以结束循环,不然会陷入死循环;

pass语句

  • Python中,pass语句代表什么都不做,代表一个占位符;
1
2
3
4
5
6
7
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

if True:
pass
else:
pass
  • 可以理解为暂时未实现功能,先构建代码的整体架构;

break、continue与else语句

break语句

  • break语句用于结束循环,即结束整个循环语句;
1
2
3
4
5
6
7
8
9
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

index = 0

while index < 10:
if index == 8:
break
print(index)

continue语句

  • continue语句用于结束本次循环,即转入循环的下一次迭代;
1
2
3
4
5
6
7
8
9
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

index = 0

while index < 10:
if index == 8:
continue
print(index)

else语句

  • Python中,为循环语句也添加else语句,但与分支语句中else语句不同;
  • 此处的else语句用于执行当循环自然终止,即没有被break中止时,会执行else语句;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

index = 0

while index < 10:
if index == 8:
break
print(index)
else:
print("Hello, World")

index = 0

while index < 10:
print(index)
else:
print("Hello, World")

有你就有世界,感谢有你,昕!
0%