Le Wed, 16 May 2012 14:37:53 -0600, Modulok <modu...@gmail.com> a écrit :
> On 5/16/12, Greg Christian <glchrist...@comcast.net> wrote: > > Can anyone tell me what I am doing wrong here. When trying to call > > the factors function from main with x = factors(Tn), getting the > > error message: “TypeError: 'int' object is not callable”? Any help > > would be appreciated. Thanks. > > > > > > def factors(n): > > L = [] > > for i in range(1, int(n ** 0.5) + 1): > > if (n % i == 0): > > L.append(i) > > return L > > > > def main(): > > factors = 0 > > counter = 0 > > L = [] > > while len(L) < 50: > > counter += 1 > > L.append(counter) > > Tn = sum(L) > > x = factors(Tn) > > #print x > > print(sum(L)) > > > > > > if __name__ == '__main__': > > main() > > You declared 'factors' as a variable on line 1 in main:: > > factors = 0 > > This masks the call to the function 'factors'. You get the error > because you assigned factors an integer and you cannot 'call' an > integer. The easiest solution is to use another name for the variable > 'factors' instead. > > -Modulok- If you use 'pylint', a syntax checker, you get this: C: 1,0: Missing docstring C: 1,0:factors: Missing docstring W: 9,4:main: Redefining name 'factors' from outer scope (line 1) C: 8,0:main: Missing docstring E: 16,12:main: factors is not callable W: 16,8:main: Unused variable 'x' > _______________________________________________ > Tutor maillist - Tutor@python.org > To unsubscribe or change subscription options: > http://mail.python.org/mailman/listinfo/tutor > -- René Bastian www.pythoneon.org _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor