什么是Python的方式“重复这个直到条件满足或达到最大值”?

2024-04-20 11:58:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我还在学习Python,我想知道是否有一种“更具Python风格”的方法来实现以下内容:

MAX_ATTEMPTS = 5
for i in range(MAX_ATTEMPTS):
    response = do_something()
    do_something_based_on(response)
    do_another_thing_based_on(response)
    if response == 0:
        do_something_if_success()
        break

编辑:抱歉,我可能把案子简化了。我需要在最后检查之前使用response,所以我必须将它捕获到一个变量中。你知道吗


Tags: 方法inforif风格onresponseanother
2条回答

我想这样会比你节省更多的内存:

#!/usr/bin/env python
#-*- coding:utf-8 -*-

MAX_ATTEMPTS = 5
for i in xrange(MAX_ATTEMPTS):
    if 0 == do_something():
        do_something_if_success()
        break

编辑:

根据最新问题更新。你知道吗

MAX_ATTEMPTS = 5
for i in xrange(MAX_ATTEMPTS):
    response = do_something()
    do_something_based_on(response)
    do_another_thing_based_on(response)
    if 0 == response:
        do_something_if_success()
        break

这似乎是一个完全有效的方法来实现你想要的。你知道吗

可能可以用各种更像函数的方法来实现这一点,包括使用双递归生成器的方法,但我怀疑没有一种方法像这样简单。你知道吗

相关问题 更多 >