"'int' object is not callable"
Bon voilà, j'apprends vraiment par moi-même en regardant des exemples, donc je n'ai pas vraiment la terminologie propre à python et regarder la FAQ me donne une impression de rien y connaître.
Donc, je pose directement ma question, espérant qu'elle ne soit pas dans la FAQ.
À nouveau, j'ai une erreur de syntaxe/compilation en faisant un problème du projet Euler. Je suis parvenu à ce code:
Code:
1 2 3 4 5 6 7 8
| def factorial(n): ...
facts = [factorial(x) for x in range(10)]
sum = 0
for n in range(10, 50000):
if n == sum(facts[int(d)] for d in str(n)):
sum += n
print(sum) |
Mais j'obtiens une erreur "TypeError: 'int' object is not callable" avec Python 3.1. En regardant les solutions proposées par les précédents, je suis tombé sur une qui est parfaitement identique à la mienne (hormis le nom des variables) et je suppose qu'elle a été développée avec Python 2.x. Donc mon code devrait compiler avec cette version.
Comment puis-je corriger mon code pour python 3 et de manière plus générale, où puis-je trouver une liste des différences entre python 2.x et 3.x qui soit compréhensible pour un débutant ?
D'avance merci,
Olivier