You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python带条件if语句实现:提取失败前最后一次Pass对应行

没问题,我来帮你实现这个需求!核心思路就是跟踪最后一次遇到的Pass行,一旦碰到Fail就停止更新这个记录,之后不管遇到什么都保留这个最后的Pass值。

实现代码示例

先给你一个可直接运行的代码,你可以根据自己的实际数据集调整行序列:

# 替换成你自己的行号-状态序列,要保持实际的行执行顺序哦
status_sequence = [
    (1, 'Pass'),
    (2, 'Pass'),
    (3, 'Pass'),
    (4, 'Fail'),
    (5, 'Fail'),
    (0, 'Fail')
]

last_pass_row = None
has_seen_fail = False

# 按实际行顺序遍历数据
for row_num, status in status_sequence:
    if not has_seen_fail:
        if status == 'Pass':
            # 每次遇到Pass就更新最后一次Pass的行号
            last_pass_row = row_num
        elif status == 'Fail':
            # 碰到第一个Fail后,不再更新Pass记录
            has_seen_fail = True

# 处理用户输入
user_input = int(input("请输入行号值: "))

# 匹配输入并输出结果
for num, stat in status_sequence:
    if num == user_input:
        if stat == 'Fail':
            print(last_pass_row)
        else:
            # 如果输入的是Pass行,直接返回该行号(可根据需求调整逻辑)
            print(num)
        break
else:
    print("输入的行号不存在于数据集中")
逻辑说明
  • 初始化两个变量:last_pass_row用来存储最后一次遇到的Pass行号,has_seen_fail标记是否已经碰到过Fail。
  • 遍历行序列时,只有在还没碰到Fail的阶段,才会更新last_pass_row;一旦遇到第一个Fail,就切换标记状态,后续所有行都不会再修改Pass记录。
  • 处理用户输入时:
    • 如果输入的行对应状态是Fail,直接输出之前记录的最后一次Pass行号;
    • 如果输入的行是Pass,就返回该行号本身(你可以根据实际需求调整这部分逻辑)。

测试你的示例场景:输入5或0(都是Fail行),都会输出3,完全符合要求~

内容的提问来源于stack exchange,提问作者user9238790

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 10:04:37