It works fine for me.  You must be having an indentation problem.

Also, get rid of the comma at the end of that last print statement.

Brian Blais wrote:
> Hello,
> 
> I have an odd kind of Heisenbug in what looks like a pretty simple 
> program.  The program is a progress bar code I got at the Python Cookbook:
> 
> http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/168639
> 
> (including the code below)
> 
> 
> If you uncomment the one print statement I added in the progressBar 
> class, you get the error:
> 
>   File "test_progress2.py", line 19
>     diffFromMin = float(self.amount - self.min)
>     ^
> SyntaxError: invalid syntax
> 
> 
> yet, without the print statement, it works fine.  what am I overlooking 
> here?
> 
> 
>             thanks,
> 
> 
>                     bb
> 
> #------------------------------------------------------------------------
> 
> class progressBar:
>     def __init__(self, minValue = 0, maxValue = 10, totalWidth=12):
>         self.progBar = "[]"   # This holds the progress bar string
>         self.min = minValue
>         self.max = maxValue
>         self.span = maxValue - minValue
>         self.width = totalWidth
>         self.amount = 0       # When amount == max, we are 100% done
>         self.updateAmount(0)  # Build progress bar string
> 
>     def updateAmount(self, newAmount = 0):
>         if newAmount < self.min: newAmount = self.min
>         if newAmount > self.max: newAmount = self.max
>         self.amount = newAmount
> 
> #        print "hello"   #<--------------  uncomment line to break
> 
>         # Figure out the new percent done, round to an integer
>         diffFromMin = float(self.amount - self.min)
>         percentDone = (diffFromMin / float(self.span)) * 100.0
>         percentDone = round(percentDone)
>         percentDone = int(percentDone)
> 
>         # Figure out how many hash bars the percentage should be
>         allFull = self.width - 2
>         numHashes = (percentDone / 100.0) * allFull
>         numHashes = int(round(numHashes))
> 
>         # build a progress bar with hashes and spaces
>         self.progBar = "[" + '#'*numHashes + ' '*(allFull-numHashes) + "]"
> 
>         # figure out where to put the percentage, roughly centered
>         percentPlace = (len(self.progBar) / 2) - len(str(percentDone))
>         percentString = str(percentDone) + "%"
> 
>         # slice the percentage into the bar
>         self.progBar = self.progBar[0:percentPlace] + percentString + 
> self.progBar[percentPlace+len(percentString):]
> 
>     def __str__(self):
>         return str(self.progBar)
> 
> 
> if __name__ == "__main__":
> 
>     import time
>     prog = progressBar(0, 100, 77)
>     for i in xrange(101):
>         prog.updateAmount(i)
>         print prog, "\r",
>         time.sleep(.05)
> 
> 
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to