python避免深度嵌套的if-else_Python:流程避免嵌套的IF语句

本文介绍了如何使用Python实现自动化任务的步骤序列,包括将步骤组织为列表和逐个执行的方法。方法一是将步骤封装为函数并按顺序检查,若遇到错误则记录并终止。另一种方式是直接在函数中处理多个步骤,便于简化流程。示例数据展示了公交时间差计算及其排名算法。
摘要由CSDN通过智能技术生成

3 个答案:

答案 0 :(得分:10)

您可以将步骤放在列表中:

my_plan = (step1, step2, step3, ..., stepN)

然后在循环中执行它们:

for step in my_plan:

if not step():

print 'Error in %s' % step.__name__

status = False

break

else:

status = True

答案 1 :(得分:0)

如果您没有太多的步骤,或者您不想将步骤函数放在一个序列中,这是一种替代方法。

def run(self):

status = step_1():

if status:

status = step_2():

if status:

status = step_3():

etc... [several IFs]

if status is False:

self.logger.error('Error')

return status

答案 2 :(得分:-2)

将其视为未能返回False而不是传递返回True。

+----+---------------------+---+---------------------+----+-------------+

|user|user_time |bus|bus_time |stop|bus_time_diff|

+----+---------------------+---+---------------------+----+-------------+

|A |2016-07-18 12:00:00.0|1 |2016-07-18 11:59:40.0|sA |20 |

|A |2016-07-18 12:00:00.0|1 |2016-07-18 11:59:50.0|sB |10 |

|A |2016-07-18 12:00:00.0|1 |2016-07-18 12:00:05.0|sC |5 |

|B |2016-07-19 12:00:00.0|2 |2016-07-19 11:59:40.0|sB |20 |

|B |2016-07-19 12:00:00.0|2 |2016-07-19 12:00:10.0|sC |10 |

|C |2016-07-20 12:00:00.0|3 |2016-07-20 11:59:55.0|sD |5 |

|C |2016-07-20 12:00:00.0|3 |2016-07-20 12:00:10.0|sE |10 |

+----+---------------------+---+---------------------+----+-------------+

+----+---------------------+---+---------------------+----+-------------+----+

|user|user_time |bus|bus_time |stop|bus_time_diff|rank|

+----+---------------------+---+---------------------+----+-------------+----+

|A |2016-07-18 12:00:00.0|1 |2016-07-18 12:00:05.0|sC |5 |1 |

|B |2016-07-19 12:00:00.0|2 |2016-07-19 12:00:10.0|sC |10 |1 |

|C |2016-07-20 12:00:00.0|3 |2016-07-20 11:59:55.0|sD |5 |1 |

+----+---------------------+---+---------------------+----+-------------+----+

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值