How to let a loop run for a while before checking for break condition?

Discussion in 'Python' started by Sorin Schwimmer, Aug 28, 2006.

  1. I am thinking on something in the following form:

    <code>
    import time
    import thread

    delay=True

    def fn()
    global delay
    time.sleep(<your_amount_of_time_in_seconds>)
    delay=False

    thread.start_new_thread(fn,())

    while delay:
    <statement 1>
    <statement 2>
    ...

    while <other_condition>:
    <statement 1>
    <statement 2>
    ...
    </code>

    Or, if you need to use "break", the second loop may be
    something like:

    <code>
    while True:
    <statement 1>
    <statement 2>
    ...
    if <other_condition>: break
    <other_statements>
    ...
    </code>

    The two while loops have the same content, but the
    first is terminated after a pre-determined amount of
    time, while the second by another condition. Usually
    the content of the too loops, being the same, is a
    call to a function that does the actual work. In your
    case, as time seems to be critical, you don't want to
    spend it in function-call overheads, so you repeat
    (cut'n'paste) the relevant code.

    Of course, the price to be paid is in maintenance
    headache: you'll have to make all the changes in both
    loops, to keep consistency.

    I hope this helps.

    Sorin

    __________________________________________________
    Do You Yahoo!?
    Tired of spam? Yahoo! Mail has the best spam protection around
    http://mail.yahoo.com
     
    Sorin Schwimmer, Aug 28, 2006
    #1
    1. Advertisements

  2. It doesn't.

    Claudio
     
    Claudio Grondi, Aug 28, 2006
    #2
    1. Advertisements

  3. Sorin Schwimmer

    Steve Holden Guest

    Sometimes silence is preferable to a concrete response. It takes less
    time and occupies less bandwidth.

    regards
    Steve
    who should perhaps have followed his own advice
     
    Steve Holden, Aug 29, 2006
    #3
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.