Algorithme, nombres narcissiques
Bonsoir !
Je dois écrire en python un algorithme qui, étant donné un nombre N en entrée, renvoie ce nombre s'il est narcissique ou 0 si il ne l'est pas.
Quelqu'un peut-il m'aider et me dire si cet algorithme est juste et pourquoi c'est faux à la ligne 11 ?
Je dois écrire en python un algorithme qui, étant donné un nombre N en entrée, renvoie ce nombre s'il est narcissique ou 0 si il ne l'est pas.
Quelqu'un peut-il m'aider et me dire si cet algorithme est juste et pourquoi c'est faux à la ligne 11 ?
def narcisse(): l=input('Donnez une limite dans la recherche des nombres narcissiques \n') for k in range(l): somme=0 n=str(k) for lettre in n: puissance=len(n) chiffre=int(lettre) somme=somme+pow(chiffre,puissance) if(somme==k): print k," est un nombre narcissique" (C'est la que le logiciel me met "invalid syntax") print narcisse()
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Un code Python non indenté est illisible, utilise la balise code (5ième à partir de la droite).
Cordialement,
Rescassol
La syntaxe de print n'est pas la même en Python 3 qu'en Python 2 (qui est périmé).
Cordialement,
Rescassol
Remarques :
- "print narcisse()" est avantageusement remplacé par "narcisse()" ; en effet, comme la fonction narcisse ne renvoie rien, ça ne sert à rien d'afficher ce rien ;
- il est sans doute préférable de remplacer la dernière ligne par :
Pour Python 3, il faut adapter un peu la syntaxe :1) J'aurais préféré que ce soit chemicalK qui se charge de l'indentation correcte.
2) "python" n'a pas de préférence pour 2 ou 3. Il invoque ce qu'on lui a dit d'invoquer quand on l'a installé.
3) Python 2 n'est plus maintenu depuis un certain temps et ne subira plus aucune mise à jour ou évolution.
Bien sûr, il y a toujours des amateurs de voitures anciennes et j'ai moi même d'assez vieux bouquins.
4) On peut remplacer somme=somme+pow(chiffre,puissance) par somme +=chiffre**puissance
Cordialement,
Rescassol