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
相关产品推荐
相关产品推荐

