Looping [was Re: Python and the need for speed]

Ben Bacarisse ben.usenet at bsb.me.uk
Mon Apr 17 20:18:21 EDT 2017


Marko Rauhamaa <marko at pacujo.net> writes:

> Ben Bacarisse <ben.usenet at bsb.me.uk>:
>
>> Marko Rauhamaa <marko at pacujo.net> writes:
>>> What I notice in my numbers is that about one half of my while loops
>>> are "while True", and about a third of my loops are while loops.
>>
>> I fo[u]nd the proportion on while True: loops surprising. Is there
>> something about Python that encourages that kind of loop?

(Thanks for th type correction.  There is also s/of/on/.)

> Here's a typical example of such a loop in Python (ver 2):
>
>     while True:
>         try:
>             snippet = os.read(rdfd, 1000)
>         except OSError as e:
>             if e.errno == errno.EAGAIN:
>                 return
>             raise
>         if not snippet:
>             break
>         self.stdout_snippets.append(snippet)

Thanks (and to Grant).  IO seems to be the canonical example.  Where
some languages would force one to write

  c = sys.stdin.read(1)
  while c == ' ':
      c = sys.stdin.read(1)

and an Algol-68 style language would permit one to write

  while (c := read char; c) do skip od

Python opts for

  while True:
     c = sys.stdin.read(1)
     if c != ' ': break

(Forgive the atypical choice of input primitive -- it's for illustrating
the loop style only.)

<snip>
-- 
Ben.



More information about the Python-list mailing list