Accessing variable from a function within a function
James Stroud
jstroud at mbi.ucla.edu
Sun Jun 24 15:29:16 EDT 2007
Nathan Harmston wrote:
> Hi,
>
> I m playing around with extended euclids algorithm from Knuth. I m
> trying to build a function with a function inside it.
>
> def exteuclid(m,n):
> a,a1,b,b1,c,d = 0,1,1,0,m,n
> def euclid(c,d):
> q = c /d
> r = c % d
> if r == 0:
> print a,b
> return d
> else:
> print a1,a,b1,b,c,d,q,r
> t = b1
> b = t - q * b
> a = t - q * a
> c,d,a1,b1 = d,r,a,b
> return euclid(c,d)
> return euclid(c,d)
>
> Unfortunately this doesnt work since a,a1,b,b1 arent declared in the
> function. Is there a way to make these variables accessible to the
> euclid function. Or is there a better way to design this function?
>
> Many Thanks in advance,
>
> Nathan
That last return statement does not match indentation of another block.
But this is probably what you mean:
def exteuclid(m,n):
x = 0,1,1,0,m,n
def euclid(c,d,x=x):
a,a1,b,b1,c,d = x
q = c /d
r = c % d
if r == 0:
print a,b
return d
else:
print a1,a,b1,b,c,d,q,r
t = b1
b = t - q * b
a = t - q * a
c,d,a1,b1 = d,r,a,b
return euclid(c,d)
return euclid(c,d)
James
More information about the Python-list
mailing list