Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Re: Understanding while...else...

Reply
Thread Tools

Re: Understanding while...else...

 
 
René Klačan
Guest
Posts: n/a
 
      01-23-2013
>
> # Version 1
> while condition:
> # stuff
> else:
> # other stuff
>
> # Version 2
> if condition:
> while condition:
> # stuff
> else:
> # other stuff
>


they wouldnt be equivalent if #staff in version did not cointain "break"
statement and this is common mistake

On Wed, Jan 23, 2013 at 12:03 PM, René Klačan <(E-Mail Removed)> wrote:

> they wouldnt be equivalent if #staff in version 1 did not cointain "break"
> statement and this is common mistake
>
>
> On Wed, Jan 23, 2013 at 1:39 AM, Oscar Benjamin <
> http://www.velocityreviews.com/forums/(E-Mail Removed)> wrote:
>
>> On 22 January 2013 23:41, Terry Reedy <(E-Mail Removed)> wrote:
>> > On 1/22/2013 3:09 PM, Ethan Furman wrote:
>> >>
>> >> On 01/22/2013 09:44 AM, Terry Reedy wrote:
>> >>>

>> [SNIP]
>> >>> The else clause is executed if and when the condition is false.
>> >>> Now use a real Python while statement to do the *same
>> >>> thing*.
>> >>>
>> >>> while n > 0:
>> >>> n -= 1
>> >>> else:
>> >>> n = None
>> >>
>> >>
>> >> I understand how it works (although it did take a while for it to sink
>> >> in); my gripe, and probably why it is misunderstood so often, is that
>> >> nine times out of ten when I /want/ to use a while-else or for-else I
>> >> only want the true/false check /once/, at the beginning of the loop.
>> >
>> >
>> > I do not understand what you are saying. There already is only one
>> > true/false check, at the beginning of the loop. If you only want the

>> check
>> > *performed* once, you would use if-else. But I presume you know this.

>>
>> I think he meant that he would use the else clause more often if it
>> had the semantics so that the two blocks below were equivalent:
>>
>> # Version 1
>> while condition:
>> # stuff
>> else:
>> # other stuff
>>
>> # Version 2
>> if condition:
>> while condition:
>> # stuff
>> else:
>> # other stuff
>>
>> So he wants a convenient way to execute code only if the loop
>> performed zero iterations. I think that often when people are confused
>> about the else clause on while loops it is because they expect this
>> behaviour (which would also be useful). The same confusion arises with
>> for loops where people expect the else clause to execute if the
>> iterable was empty so that these would be equivalent:
>>
>> # Version 1
>> for x in iterable:
>> # stuff
>> else:
>> # other stuff
>>
>> # Version 2
>> iterated = False
>> for x in iterable:
>> iterated = True
>> # stuff
>> if not iterated:
>> # other stuff
>>
>>
>> Oscar
>> --
>> http://mail.python.org/mailman/listinfo/python-list
>>

>
>


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Understanding your BIOS TYCOON Hardware 6 06-29-2005 09:54 AM
Confirm my wireless understanding please? Evil Uncle Chris Wireless Networking 1 05-01-2005 03:19 PM
Understanding voice AIMs Ghazan Haider Cisco 1 11-28-2004 03:15 PM
Re: understanding an error Alvin Andries VHDL 0 09-12-2003 11:38 AM
Why does Microsoft have such a hard time understanding what they say? George Hester ASP .Net 3 08-11-2003 09:16 PM



Advertisments