作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在 C 中,有一个巧妙的技巧可以让您通过以下方式避免金字塔式代码:
if (check1())
if (check2())
if (check3())
do_something();
进入:
do {
if (!check1())
break;
if (!check2())
break;
if (!check3())
break;
do_something();
} while (0);
在没有 do-while 结构的 Python 中,对我来说最简洁的方法是什么?
注意:我不一定要寻求一种在 Python 中实现 do-while 循环的方法,而是一种避免上述金字塔式代码的技术。
更新:似乎有些困惑。我使用循环的唯一原因是能够在 body 的任何一点跳出,这应该只执行一次。
基本上我在 Python 中做的是这样的:
while True:
if not check1():
break
if not check2():
break
if not check3():
break
do_domething()
break
我只是想知道是否有更简洁的方法。
最佳答案
Pythonic 的写法是
if check1() and check2() and check3():
do_something()
在 Python 中,我们强调代码的清晰性和简单性,而不是使用巧妙的编程技巧。
[编辑]如果您需要“创建一个变量并在第一次检查中使用它”,那么您可以使用金字塔样式:
if check1():
#variables and stuff here
if check2():
#variables and stuff here
if check3():
doSomething()
或者,正如@Blender 建议的那样,将其重构为一个单独的方法。与使用不打算循环的循环相比,这些都是传达您的意图的更简单、更清晰的方法。
关于python - 我如何在 Python 中编写 C 的 do-while(0)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17753029/
我是一名优秀的程序员,十分优秀!