python - 嵌套if条件和break
问题描述
全部,
我有一个看起来像这样的代码:
if condition
if condition:
do something
elif condition:
do something
else:
break
else:
do something
我有一个嵌套的if condition
,我在内部“”中引入了一个中断,目的是在不满足条件时if condition
从该内部中断并继续到外部的“” 。if condition
else
if condition
在您看来,这样做有意义吗?有没有写问题的简单方法。
解决方案
最简单的方法是重复你的第一个条件。然后没有嵌套,else
内部的 the 与外部if
的相同。else
if
if conditionA and conditionB:
do X
elif conditionA and conditionC:
do Y
else:
do Z
如果conditionA
代价高昂,则将结果存储在某个临时变量中。
另一种选择,您可以将您的内部移动到一个函数(包括在 and 之间执行的任何计算和if
准备)并将其放在案例中,然后在外部检查两者以及该函数的结果。但是,恕我直言,这种变体可能更难理解。conditionA
conditionB
return False
else
conditionA
if
def inner():
preparation stuff
if conditionB:
do X
elif conditionC:
do Y
else:
return False
return True
if not (conditionA and inner()):
do Z
或者,当然,您可以重复该do Z
部分,或者将其放入一个函数并在两个地方调用该函数:
if conditionA:
preparation stuff
if conditionB:
do X
elif conditionC:
do Y
else:
do Z # should be a function call
else:
do Z # same here
推荐阅读
- powershell - 如何在powershell中编码检查imap帐户上是否有未读邮件?
- android - 如何在 android.support.design.widget.TabLayout 中将可绘制对象设置为 tabIndicator
- c# - 通过在单元格中键入动态将项目添加到 DataGridView 组合框列
- type-conversion - spsolve重载和rowvec类型转换一致性
- apache-spark - 为什么在 S3 存储桶中加载 CSV 文件的任务很多?
- python - 如何提高效率 - 应用熊猫(从行值中查询相同的数据框)
- nativescript - 如何使用 htmltopdf nativescript 插件将页眉和页脚添加到 pdf 文档上的每个呈现页面
- ios - 必须将 AirGoogleMaps 目录添加到您的 xCode 项目以支持 iOS React Native 上的 GoogleMaps
- r - 如果时间跨度与小时重叠,则创建 24 列和一个虚拟列
- php - 来自 2 列的日期差异