6 流程控制语句

在Python中,流程控制语句的作用就是用来实现对程序的选择、循环、跳转、返回等逻辑进行控制的,是一门编程语言中最重要的部分之一。类似于Java与C语言,Python的流程控制中,主要有两大类:条件语句和循坏语句。

6.1 条件语句if

 与C语言、Java中的if...else if...else...不同,在Python中,条件语句的格式为:

if 条件1:
    语句1
elif 条件2:
    语句2
else:
    语句3
# 也可以
if 条件1:
    语句1
else:
    语句2
# 也可以
if 条件1:
    语句1
elif 条件2:
    语句2

后面跟的语句1/2/3需要缩进。条件为真值时,才会执行冒号后面的语句。

if 3 > 2:
    print("条件为真,输出该语句")
if 3 < 1:
    print("条件为假,无法输出")
if True:
    print("为真才会执行该语句")
if 3 > 1:
    print("条件为真,输出")
elif 2 > 1:
    print("if的条件为真时,只会执行if后的语句,即使elif条件为真,后面的语句也不会执行。只有if的条件为假时,才会考虑就后面的")

if 3 < 1:
    print("条件为假")
elif 2 < 1:
    print("条件为假")
else:
    print("只有上面条件全为假也就是都不满足,输出该句")

6.2 for循环

在Python中,for循环可以遍历任何序列的项目,如一个列表或者一个字符串,并且是通过不使用下标的方式来实现对序列中每一个元素的访问。语法格式如下:

"""
for 变量 in 要遍历的序列(列表、元组、字符串、字典、集合、文件等):
    执行的语句
"""
for i in [1, 2, 3]:
    print(i)
for i in (1, 2, 3):
    print(i)
for i in "123":
    print(i)
"""
结果都为:
1
2
3
"""
for i in {"name": "Emily", "age": 18}:
    print(i)
"""
结果为:
name
age
"""
# 遍历数字range()
for i in range(0, 10):
    print (i)  # 结果为:1 2 3 4 5 6 7 8 9(空格里面都是回车)

在上面,直接遍历字典,只能得到字典的键,现在要得到字典键和值:

# 之前学了如何得到字典的键和值:items()函数
for i in dict_1.items():
    print(i)
"""
结果为:
('name', 'Emily')
('age', 18)
"""
# 循环得到字典的值
for i in dict_1.values():
    print(i)
"""
结果为:
Emily
18
"""

双层for循环与if的结合:

a = [1, 2, 3, [4, 5, 6], [7, 8, 9]]
for i in a:
    print(i)
    # 判断是否可以进行下一次循环 =>是否是列表
    if isinstance(i, list):
        # 提取嵌套列表的内容
        for j in i:
            print(j)
"""
结果为:
1
2
3
[4, 5, 6]
4
5
6
[7, 8, 9]
7
8
9
"""

6.3 while循环

while语句用于循环执行程序,即在特定条件下,循环执行指定程序,以处理需要重复处理的相同语句,并且while还可以与else搭配使用。语法格式如下:

"""
while 条件(真条件):
    语句
else:
    语句
"""

在使用while循环时,需要设置跳出循环的条件,不然一直为死循环。

c = 0
while c < 5:
    print(c)
    c += 1
else:
    print("c已经为4了,再自增一次就为5不满足c < 5的条件了,循环结束!")
"""
结果为:
0
1
2
3
4
c已经为4了,再自增一次就为5不满足c < 5的条件了,循环结束!
"""

6.4 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)。
# range(0, 4)形成的数字为:0 1 2 3
# range(0, 4, 2)步长为2(跨两步),形成的数字为:0 2 
# range(i, 0, -1):从列表的下标为i的元素开始,倒序取到下标为0的元素(但是不包括下标为0元素)
for i in range(0, 4, 2):
    print(i)
"""
结果为:
0
2
"""

6.5 break用法

break语句可以跳出for和while的循环体。如从for或while循环中跳出来,任何对应的循环else块将不再执行。

# --------------for循环--------------
for i in "Python":
    break
    print(i)
# 结果为:空白,直接终止循环
for i in "Python":
    print(i)
    break
# 结果为:P,后续没有输出,直接终止循环
for i in "Python":
    if i == "t":
        break
    print("当前字符为", i)
"""
结果为:
当前字符为 P
当前字符为 y
"""
for i in "Python":
    print("当前字符为", i)
    if i == "t":
        break
"""
结果为:
当前字符为 P
当前字符为 y
当前字符为 t
"""
# --------------while循环--------------
while a < 4:
    break
    print(a)
    a += 1
# 没有结果输出,直接终止循环了
b = 0
while b < 4:
    print(b)
    b += 1
    break
# 输出结果为:0

6.6 continue用法

continue语句被用来跳过当前循环块中的剩余语句,然后继续进行下一轮循环。

# --------------for循环--------------
for i in "Python":
    continue
    print(i)
# 结果为:空白,直接跳过了continue后面的语句重新进入循环,break是直接跳出循环,不会再执行循环体
for i in "Python":
    print(i)
    continue
# 结果为:P y t h o n(空格代表回车)
for i in "Python":
    print(i)
    continue
    print("Hello")
# 结果跟上面一样,不会输出Hello
for i in "Python":
    if i == 't':
        continue
    print("当前字母为:", i)
"""
结果为:
当前字母为: P
当前字母为: y
当前字母为: h
当前字母为: o
当前字母为: n
"""
for i in "Python":
    print("当前字母为:", i)
    if i == 't':
        continue

"""
结果为:
当前字母为: P
当前字母为: y
当前字母为: t
当前字母为: h
当前字母为: o
当前字母为: n
"""
# --------------while循环--------------
c = 0
while c < 4:
    continue
    print(c)
    c += 1
# 没有输出结果,因为c永远等于0,永远小于4,所以程序处于死循环中
d = 0
while d < 4:
    print(d)
    d += 1
    continue
# 结果为:0 1 2 3(空白为回车)
e = 0
while e < 4:
    e += 1
    if e == 3:
        continue
    print("e的值为", e)
"""
结果为:
e的值为 1
e的值为 2
e的值为 4
"""
# 如果把e += 1语句放在continue后面那么执行到e == 3时,就会进入if语句,成为死循环。
# 因为continue后面的语句是不会执行的,也就是说e += 1也不会执行,所以e一直为3,一直执行if语句,跳不出循环

6.7 pass语句

在Python中,pass是空语句,是为了保持程序结构的完整性。它用于那些语法上必须要有么语句,但程序什么也不做的场合。

for i in range(0, 10):
    pass  # 没有pass会报错,但是for循环里面的逻辑代码还没想好,后续补充,就填补pass,保持程序的完整性不报错。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秃头少女Emily

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值