Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #95952

Re: continue vs. pass in this IO reading and writing

From Terry Reedy <tjreedy@udel.edu>
Subject Re: continue vs. pass in this IO reading and writing
Date 2015-09-03 12:05 -0400
References <19ca6361-95fe-4a5d-84d6-c72d7941745c@googlegroups.com>
Newsgroups comp.lang.python
Message-ID <mailman.79.1441296357.8327.python-list@python.org> (permalink)

Show all headers | View raw


On 9/3/2015 11:05 AM, kbtyo wrote:

> I am experimenting with many exception handling and utilizing continue vs pass.

'pass' is a do-nothing place holder.  'continue' and 'break' are jump 
statements

[snip]

> However, I am uncertain as to how this executes in a context like this:
>
> import glob
> import csv
> from collections import OrderedDict
>
> interesting_files = glob.glob("*.csv")
>
> header_saved = False
> with open('merged_output_mod.csv','w') as fout:
>
>      for filename in interesting_files:
>          print("execution here again")
>          with open(filename) as fin:
>              try:
>                  header = next(fin)
>                  print("Entering Try and Except")
>              except:
>                  StopIteration
>                  continue
>              else:
>                  if not header_saved:
>                      fout.write(header)
>                      header_saved = True
>                      print("We got here")
>                  for line in fin:
>                      fout.write(line)
>
> My questions are (for some reason my interpreter does not print out any readout):
>
> 1. after the exception is raised does the continue return back up to the beginning of the for loop (and the "else" conditional is not even encountered)?
>
> 2. How would a pass behave in this situation?

Try it for yourself.  Copy the following into a python shell or editor 
(and run) see what you get.

for i in [-1, 0, 1]:
     try:
         j = 2//i
     except ZeroDivisionError:
         print('infinity')
         continue
     else:
         print(j)

Change 'continue' to 'pass' and run again.

-- 
Terry Jan Reedy

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

continue vs. pass in this IO reading and writing kbtyo <ahlusar.ahluwalia@gmail.com> - 2015-09-03 08:05 -0700
  Re: continue vs. pass in this IO reading and writing Chris Angelico <rosuav@gmail.com> - 2015-09-04 01:27 +1000
    Re: continue vs. pass in this IO reading and writing kbtyo <ahlusar.ahluwalia@gmail.com> - 2015-09-03 08:38 -0700
      Re: continue vs. pass in this IO reading and writing Chris Angelico <rosuav@gmail.com> - 2015-09-04 01:51 +1000
        Re: continue vs. pass in this IO reading and writing kbtyo <ahlusar.ahluwalia@gmail.com> - 2015-09-03 08:57 -0700
          Re: continue vs. pass in this IO reading and writing Chris Angelico <rosuav@gmail.com> - 2015-09-04 02:11 +1000
            Re: continue vs. pass in this IO reading and writing kbtyo <ahlusar.ahluwalia@gmail.com> - 2015-09-03 09:35 -0700
    Re: continue vs. pass in this IO reading and writing kbtyo <ahlusar.ahluwalia@gmail.com> - 2015-09-03 08:49 -0700
  Re: continue vs. pass in this IO reading and writing Terry Reedy <tjreedy@udel.edu> - 2015-09-03 12:05 -0400
  Re: continue vs. pass in this IO reading and writing Luca Menegotto <otlucaDELETE@DELETEyahoo.it> - 2015-09-03 18:37 +0200

csiph-web