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 : Sélectionner tout - Visualiser dans une fenêtre à part
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