ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python 简明教程 --- 6,Python 控制流

2020-05-25 17:51:57  阅读:236  来源: 互联网

标签:语句 ... 教程 Python 控制流 while 循环 条件 执行


微信公众号:码农充电站pro
个人主页:https://codeshellme.github.io

Talk is cheap, show me the code.
—— Linus Torvalds

目录

在这里插入图片描述

控制流用来控制程序的处理流程,即当程序满足或不满足某一条件时,让程序去做哪些事情。

控制流语句使得我们可以处理丰富的代码逻辑。

基本的控制流语句有三种,分别是:

  • if 条件语句
  • for 循环语句
  • while 循环语句

1,if 条件语句

if 语句用于判断一个条件,当条件为True 时,执行一段代码,当条件为False 时,执行另一段代码。

if 语句有三种结构:

  • 没有分支
  • 一个分支
  • 多个分支

分支内要执行的语句,需要有缩进,每个条件后边要有冒号:,如下:

# 没有分支
if 条件:
    # 条件为True 时要执行的语句
    ...

# 一个分支
if 条件:
    # 条件为True 时要执行的语句
    ...
else:
    # 条件为False 时要执行的语句
    ...

# 多个分支
if 条件1:
    # 条件1 为True 时要执行的语句
    ...
elif 条件2:
    # 条件2 为True 时要执行的语句
    ...
elif 条件3:
    # 条件3 为True 时要执行的语句
    ...
else:
   # 条件1,条件2,条件3 都为False 时要执行的语句
    ...

多分支语句时,如果有多个条件都为True,则只会执行第一个条件为True 内的语句,其它条件为True 内的语句不会执行。

比如上面的多分支if 语句中:

  • 如果条件1条件2条件3都为True,则只会执行条件1 内的语句。
  • 如果条件1False条件2条件3都为True,则只会执行条件2 内的语句。

if 语句后边的条件,可带括号(),可不带括号(),如下是带括号的:

# 带括号的if 语句
if (条件):
    ...

if 语句嵌套

if 语句中还可以嵌套if 语句,下面是一个简单的if 嵌套语句结构:

if 条件1:
    ...
    if 条件2:
       ...
       
    ...

示例,根据分数判断等级

scores = ...	# 分数
grade = None    # 等级

if scores > 90:
    # 分数大于90 时,等级为优秀
    grade = '优秀'
    
elif scores > 80:
    # 分数大于80 时,等级为良好
    grade = '良好'
    
elif scores > 60:
    # 分数大于60 时,等级为及格
    grade = '及格'
    
else:
    # 否则,等级为不及格
    grade = '不及格'

2,for 循环语句

Python 中的for 循环不同于C/C++Java 中的for 循环。

Python 中的for 语句实际上是for...in 语句,通常用于遍历一个序列,序列后边要有一个冒号:

说明:
一个字符串,一个列表,都是一个序列。
字符串列表,在后续章节会详细介绍。

遍历列表:

# l 是一个列表
l = [1, 2, 3]

# 遍历列表
for i in l: 
	# i 是列表中的每个元素
    print(i)

其输出结果为:

1
2
3

遍历字符串:

# s 是一个字符串
s = 'abc'

# 遍历字符串中的字符
for i in s:
    print(i)

其输出结果为:

a
b
c

for 循环中的else

for 循环中也可以有一个else 语句,在for 循环执行完之后,会在最后执行else 语句:

# l 是一个列表
l = [1, 2, 3]

# 遍历列表
for i in l: 
	# i 是列表中的每个元素
    print(i)
else:
    print('for 循环执行结束')

其输出结果如下:

1
2
3
for 循环执行结束

for 循环的执行过程中遇到break 语句,else 语句则不会被执行:

l = [1, 2, 3]
for i in l:
    print(i)

    if i == 3: 
        # 当i 为3 时,会执行 break
        break
else:
    print('for 循环执行结束')

该段代码在执行到i3 时,会执行到break 语句,break 语句会跳出for 循环,else 语句也是for 循环的一部分,所以,else 中的语句不会被执行到。

其输出结果如下:

1
2
3

注意:break 语句会在下面介绍到。

3,while 循环语句

下面是while 循环语句的语法格式,条件后边有一个冒号:,如下:

while 条件:
    # 条件为True 时要执行的语句
    ...
    ...

while 语句的含义是,当条件True 时,会一直执行while 循环中的代码,直到某一时刻条件变为了False

每次在执行while 循环体内的语句块之前,都会判断条件,如果条件True,则执行循环体,如果条件False,则退出循环体。

示例:

i = 3
while i > 0:
   print(i)
   i = i - 1

这段代码的输出结果为:

3
2
1

i 减到0 时,i > 0False,此时while 循环结束。

while 循环中else

while 循环也与for 循环一样,可以有else 语句:

while 条件:
    ...
else:
    ...

无限循环

无限循环是一个特殊的循环,其条件永远为,如下就是一个无限循环:

while True:
    ...
    ...

只要无限循环中的语句没有主动退出,或者遇到异常,则无限循环中的语句将永远执行下去。

4,continue 语句

continue 语句用在for 循环和while 循环中,当遇到continue 语句时,会跳到循环的开头执行。

示例:

i = 3
while i > 0:
    i = i - 1

    if i == 2:
        print('跳到循环开头')
        continue
            
    print(i)

其输出如下:

跳到循环开头
1
0

i == 2 时,执行完print('跳到循环开头') 后,执行continue 语句,然后跳到循环开头执行,所以,i == 2 时,没有执行print(i)

5,break 语句

break 语句也是用在for 循环和while 循环中,当遇到break 语句时,会跳出循环体。

示例:

i = 3
while i > 0:
    i = i - 1

    if i == 0:
        print('跳出循环')
        break
            
    print(i)

其输出结果如下:

2
1
跳出循环

i == 0 时,执行完print('跳出循环') 后,执行break 语句,然后跳出循环,所以,i == 0 时,没有执行print(i)

6,pass 语句

pass 语句经常在控制流中用到,pass 语句是一个空语句,不执行任何东西,只起到一个占位的作用。

示例:

i = ...
if i == 0:
    # 做任何事情
    pass
else:
    print('i 不为 0')

(完。)


推荐阅读:

Python 简明教程 --- 1,搭建Python 环境

Python 简明教程 --- 2,第一个Python 程序

Python 简明教程 --- 3,Python 基础概念

Python 简明教程 --- 4,Python 变量与基本数据类型

Python 简明教程 --- 5,Python 表达式与运算符


欢迎关注作者公众号,获取更多技术干货。

码农充电站pro

标签:语句,...,教程,Python,控制流,while,循环,条件,执行
来源: https://www.cnblogs.com/codeshell/p/12958225.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有