dynamic names

Val Bykoski val at vtek.com
Mon Mar 8 01:20:25 CET 2004


val at vtek.com (Val Bykoski) wrote in message news:<a312aab6.0403071126.45582cea at posting.google.com>...
> I'm currently in a familiar to many business of filing my tax
> return.  Being a big fan of Python and to make the process less painful, 
> i started by writing my favored schedules A,B,C, and the most favored 
> form 1040 in Python.  Everything was a real fun until i got to the
> very famous motif "add lined Lx to Ly".
> This is my naive (master)piece:
> 
> def sumL(L1,L2):
>    # sum up a range of Ls
>    tot=0.
>    for L in range(L1,L2+1): 
>       #nL=exec("L%s" % L)
>       tot=tot + ("L%s" % L)
>    return tot
> 
> pythonw -u "sumL.py"
> Traceback (most recent call last):
>   File "sumL.py", line 11, in ?
>     sumL(1,4)
>   File "sumL.py", line 7, in sumL
>     tot=tot + ("L%s" % L)
> TypeError: unsupported operand type(s) for +: 'float' and 'str'
> >Exit code: 1
> 
> Any help would be life-saving.
> 
> let's-make-python-a-tax-pain-killer-ly y'rs
> val

It took me 'just' one hour to get 'a' working code: 

def sumL(fromLine=1,toLine=4, dir=[]):
    #
    tot=0.
    
    for name in dir:
        if name.startswith ("L") and int(name[1:]) in range(fromLine,toLine):
            tot=tot+float(eval(name)) 
            print tot
    return tot        

L1=1.; L2=2.; L3=3.
print dir()
print sumL(dir=dir())

The point is that in the tax forms the number of lines to be added is variable,
and i it's a pain to put them in a list. 

Robert, thanks for your help, appreciate very much.
relieving-ly y'rs



More information about the Python-list mailing list