gpt4 book ai didi

python - 我如何在 Python 中编写 C 的 do-while(0)?

转载 作者:太空狗 更新时间:2023-10-29 21:26:52 29 4
gpt4 key购买 nike

在 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/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com