[Tutor] trying to generate change in print output

Steven D'Aprano steve at pearwood.info
Sun Nov 7 23:26:34 CET 2010

Terry Green wrote:
> Am stumped, when I use this code:
> race=int(row[2])
>     raceChek=1

This causes IndentationError: unexpected indent.

>     if raceChek == race: print ('raceChek ', raceChek, 'race ', race)
>     else: print ('raceChek ', raceChek,' no match ', 'race ', race);
> raceChek = race

> I Get this:
> raceChek  1 race  1
> raceChek  1 race  1
> raceChek  1 race  1

I don't see how. The code you show fails completely, due to the 
inconsistent indentation. Even if we fix the indentation, it will only 
print something *once*, not eighteen times.

You don't show us what the variable "row" has, so we don't know what 
value "race" has. Presumably it equals 1, but then later on you get:

> raceChek  1  no match  race  2
[repeated many times]
> raceChek  1  no match  race  3
[repeated many times]

So mysteriously race is changing value.

Obviously you are not showing us the actual code you are running, but 
only part of the code. Would you like us to guess what code you are running?

> Seems my test between race and raceChek doesn't work!   What is wrong?

What makes you think that the problem is the test? It seems to me that 
the test

if raceChek == race:

is so simple that it couldn't possibly be broken. The problem is 
probably somewhere else. But since I don't know how you are getting 
eighteen lines of output, I don't know what you are doing and can't tell 
you what it is that is wrong.


More information about the Tutor mailing list