On Sep 22, 2005, at 3:34 PM, Kirk Durston wrote:

After spending a couple hours trying to figure out what is going on, I’m asking for help.

Below is a short segment from a module I’ve written. Before the part shown below, temp and Cutoff are defined. then comes the following:

   
        blank='-'
            if temp>Cutoff:    
                print 'temp is', temp
                print 'cutoff is', Cutoff
                print 'symbol is', symbol
                InfoCollector.append(symbol)
            else:InfoCollector.append(blank)

the print out shows that temp=0.261 and Cutoff is 0.29498. Clearly temp is smaller than Cutoff, so it should have gone to ‘else:’ but it didn’t. In fact, no matter if temp is larger or smaller than Cutoff, it always goes through the ‘if’ segment.

Sounds like you're comparing a float and a string.  Don't do that, make sure that temp and cutoff are both float if you expect a meaningful comparison.

To convert a string to a float, use float(aString).

To see the "programmer representation" of a variable, use the %r format string, or the repr() function.  E.g.:

print 'temp is', repr(temp)

or 

print 'cutoff is %r' % (Cutoff,)

Using programmer repr[esentations] for debugging is essential, the string representations of types can be (intentionally) ambiguous.

One of the two is almost definitely a string, so you should do temp = float(temp) or similar.

-bob

_______________________________________________
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig

Reply via email to