繁体   English   中英

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

[英]What's the Pythonic way to “repeat this until condition met -or- maximum achieved”?

我还在学习Python,我想知道以下是否有“更多Pythonic”方式:

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 ,所以我必须在变量中捕获它。

我认为这样可以节省比你更多的内存:

#!/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

这似乎是实现您想要的完美有效的方式。

它可能以各种更类似函数的方式执行此操作,包括一个具有双递归生成器的方式,但我怀疑没有一个像这样直接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM