Python入门教程第55篇 循环进阶之for…else语句
Posted 不剪发的Tony老师
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python入门教程第55篇 循环进阶之for…else语句相关的知识,希望对你有一定的参考价值。
本篇我们将会介绍 for…else 循环语句,基本的 for 循环可以参考第 17 篇。
for else 语句简介
在 Python 中,for 语句支持可选的 else 分支,这一点和其他编程语言(例如 Java、C#)不同。以下是该语句的语法:
for item in iterables:
# process item
else:
# statement
在以上语法中,只有当循环正常执行完成时才会执行 else 分支。也就是说,如果循环中执行了 break 语句,不会执行 else 分支。
另外,如果 iterables 对象中没有任何元素,也会执行 else 分支。
以下流程图演示了 for…else 语句的执行过程:
下面我们来看一个示例。
for else 语句示例
以下是一个人员列表,每个人员都有一个字典,包含了他的姓名和年龄:
people = ['name': 'John', 'age': 25,
'name': 'Jane', 'age': 22,
'name': 'Peter', 'age': 30,
'name': 'Jenifer', 'age': 28]
现在需要通过姓名搜索人员。如果在列表中找到了相应的人员,显示他的信息。否则,输出一个未找到相关人员的信息。
为此,我们可以编写以下程序:
people = ['name': 'John', 'age': 25,
'name': 'Jane', 'age': 22,
'name': 'Peter', 'age': 30,
'name': 'Jenifer', 'age': 28]
name = input('Enter a name:')
found = False
for person in people:
if person['name'] == name:
found = True
print(person)
break
if not found:
print(f'name not found!')
以上代码的执行过程如下:
- 首先,通过 input() 函数获取用户输入。
- 然后,将 found 标识设置为 False。如果输入的姓名在 people 列表中,将标识修改为 True,并且显示人员信息,使用 break 语句退出循环。
- 最后,检测 found 标识并显示信息。
下面是一些运行结果:
Enter a name:Peter
'name': 'Peter', 'age': 30
Enter a name:Maria
Maria not found!
以上程序可以正常运行。
不过,如果我们使用 for…else 语句,可以进一步简化代码。例如:
people = ['name': 'John', 'age': 25,
'name': 'Jane', 'age': 22,
'name': 'Peter', 'age': 30,
'name': 'Jenifer', 'age': 28]
name = input('Enter a name:')
for person in people:
if person['name'] == name:
print(person)
break
else:
print(f'name not found!')
使用 for…else 语句之后,不再需要使用 found 标识,也不需要在循环之后使用 if 语句进行判断。
在修改后的程序中,如果输入的姓名存在 people 列表中,将会显示人员信息并通过 break 语句退出循环。此时不会执行 else 分支。
总结
- for…else 循环语句可以在循环正常完成后执行一段额外的代码。
以上是关于Python入门教程第55篇 循环进阶之for…else语句的主要内容,如果未能解决你的问题,请参考以下文章