[Tutor] Need help with dates in Python

Steven D'Aprano steve at pearwood.info
Wed Mar 9 21:02:30 CET 2011

nookasree ponamala wrote:
> Hi,
> I'm new to Python programming. I've changed the code to below, but still it is not working, Could you pls. make the corrections in my code.

If you are to be a programmer, you need to learn how to read the error 
messages you get. You probably would have seen an error something like this:

 >>> if True:
... pass
   File "<stdin>", line 2
IndentationError: expected an indented block

or like this:

 >>> while True:
...     pass
...             if True:
   File "<stdin>", line 3
     if True:
IndentationError: unexpected indent

This will tell you *exactly* what is wrong: you haven't indented the if 
block (see below), or possibly indented the wrong part. I'm not sure 
which, because you seem to have mixed spaces and tabs, or possibly my 
mail client Thunderbird is messing about with the indentation.

In general, never ever mix spaces and tabs for indentation! Even when 
Python allows it, it becomes hard to maintain and harder to email it.

If this is not your error, then please COPY and PASTE the FULL error you 
receive, do not retype it or summarize it in any way.

> import datetime
> t = ()
> tot = []
> min = datetime.date(2008, 1, 1)
> max = datetime.date(2012, 12, 31)
> for line in open ('test2.txt','r'):
> 	data = line.rstrip().split()
> 	a = data[9]
> 	b = data[4]
> 	(year, month, day) = b.split('-')
> 	year = int(year)
> 	month = int(month)
> 	day = int(day)
> 	t = (year,month,day)
> 		if t < max:

This is wrong. The if statement should be indented equally to the line 
above it. Only the if *block* should be indented further:

if condition:  # do not indent
     # indent this block
elif another_condition:  # outdent
     # indent this block
else:  # outdent
     # and indent the block again

> 		maxyr = max
> 		if t > min:
> 		minyr = min

And again here: at *least* one line must be indented after the if statement.

> 		t = (a,b,maxyr,minyr)
> 		tot.append(t)
> 		print t


More information about the Tutor mailing list