Python for循环里如何加判断语句

引言

在编程中,经常需要在for循环中添加一些判断语句,以根据特定条件执行相应的操作。Python的for循环提供了一种简洁而有效的方式来解决这个问题。本文将介绍如何在Python的for循环中使用判断语句,并通过一个实际问题来展示其应用。

判断语句

在Python中,判断语句通过if和else关键字来实现。if语句用于判断一个条件是否为真,如果为真,则执行其中的代码块;否则,跳过该代码块继续执行后续的代码。else语句用于在if条件为假时执行另一段代码块。

示例代码如下所示:

for item in iterable:
    if condition:
        # do something
    else:
        # do something else

在这个示例中,iterable是一个可迭代对象,例如列表、元组或字符串。我们遍历该可迭代对象,对每个元素进行判断。如果满足条件,执行其中的代码块;否则,执行else语句中的代码块。

实际问题:统计学生成绩

为了更好地理解在for循环中使用判断语句的应用,我们将解决一个实际问题:统计学生成绩。

假设我们有一个班级的学生成绩列表,如下所示:

学生姓名 数学成绩 英语成绩 物理成绩
张三 90 85 95
李四 80 92 88
王五 95 88 92
赵六 85 90 80

我们想要统计每个学生的总成绩,并计算他们的平均分。同时,我们还想找出平均分高于80分的学生。

现在,我们就可以使用for循环和判断语句来解决这个问题。

示例代码如下所示:

# 定义学生成绩列表
grades = [
    {'name': '张三', 'math': 90, 'english': 85, 'physics': 95},
    {'name': '李四', 'math': 80, 'english': 92, 'physics': 88},
    {'name': '王五', 'math': 95, 'english': 88, 'physics': 92},
    {'name': '赵六', 'math': 85, 'english': 90, 'physics': 80}
]

# 统计每个学生的总成绩和平均分
for student in grades:
    total = student['math'] + student['english'] + student['physics']
    average = total / 3
    student['total'] = total
    student['average'] = average

    # 判断是否平均分高于80分
    if average > 80:
        student['above_average'] = True
    else:
        student['above_average'] = False

在这个示例中,我们使用一个列表来存储学生成绩信息,每个学生的成绩信息都以字典的形式表示。我们遍历这个列表,对每个学生进行计算总成绩和平均分的操作,并将结果保存在对应的字典中。

在计算平均分时,我们使用了一个判断语句来判断平均分是否高于80分。如果是,将对应的键值设置为True;否则,设置为False。

状态图

为了更清晰地展示上述示例中的流程,我们可以使用状态图来表示。

stateDiagram
    [*] --> Start
    Start --> ForLoop
    ForLoop --> IfStatement
    IfStatement --> TrueResult
    IfStatement --> FalseResult
    TrueResult --> ForLoop
    FalseResult --> ForLoop
    ForLoop --> End
    End --> [*]

在这个状态图中,我们有以下几个状态:

  • Start:开始状态,表示代码的起点。
  • ForLoop:表示for循环中的操作。
  • IfStatement:表示判断语句