Je ne comprends pas pourquoi quand j’exécute le code et que j'entre un mot ou une phrase a la fin il me met none ...
je sais pas si c'est très compréhensible '^^
chaine = input("votre chaine de charactère a crypter : ")
def cryptage(chaine):
for i, c in enumerate(chaine):
print(c, end='')
return
print(cryptage(chaine))
Merci d'avance de votre aide et si vous ne comprenez pas ma question j'essaierais de reformuler
Bonjour ! Il a l'air de dire que la fonction retourne rien (none = rien). Justement, à ton avis, elle retourne quoi ? Si tu regardes bien la ligne 6...
Bonjour ! Il a l'air de dire que la fonction retourne rien (none = rien). Justement, à ton avis, elle retourne quoi ? Si tu regardes bien la ligne 6...
je sais pas c'est ma prof qui me demande de mettre le return mais je sais même pas a quoi il sert ici ...
Donc si je ne veut pas ce problème j’enlève juste le return ?
Effectivement, la fonction retourne rien, c'est une fonction d'affichage. Par défaut, si on ne mets pas de return ou si on ne met rien derrière un return, python fait en sorte que la fonction renvoie None.
En revanche, quand tu appelles ta fonction comme ça:
print(cryptage(chaine))
L'appel à cryptage fait l'affichage en premier lieu, puis, tu demandes explicitement d'afficher ce que retourne la fonction avec print... Comme la fonction retourne None, le print te l'affiche tel quel.
Si tu ne veux pas que ça s'affiche, enlève juste le print
Note : si tu enlevais le return, cela ne changerait rien puisque python ajouterait lui-même return None
Bonne soirée
- Edité par WexyR 16 septembre 2020 à 17:58:43
Si je suis tête en l'air, c'est par habitude de viser le sommet
je sais pas c'est ma prof qui me demande de mettre le return mais je sais même pas a quoi il sert ici ...
Je pense que ton prof veut que tu remplaces le print dans la fonction par un return.
En gros tu gardes le print en dehors de la fonction (ligne 8), et dans la fonction au lieu d'avoir une boucle avec print, tu construis une chaîne de caractères et tu la renvoies avec return.
Effectivement, la fonction retourne rien, c'est une fonction d'affichage. Par défaut, si on ne mets pas de return ou si on ne met rien derrière un return, python fait en sorte que la fonction renvoie None.
En revanche, quand tu appelles ta fonction comme ça:
print(cryptage(chaine))
L'appel à cryptage fait l'affichage en premier lieu, puis, tu demandes explicitement d'afficher ce que retourne la fonction avec print... Comme la fonction retourne None, le print te l'affiche tel quel.
Si tu ne veux pas que ça s'affiche, enlève juste le print
Note : si tu enlevais le return, cela ne changerait rien puisque python ajouterait lui-même return None
Voyons voyons, soyez plus constructifs ! Alors alors...
01- Pourquoi utiliser enumerate alors que i n'est pas utilisé ?
02- Pourquoi ne pas remplacer tous ces elif par un dict ?
03- À quoi sert la variable globale lettre ?
04- À quoi sert le paramètre lettre ?
05- À quoi ça sert d'incrémenter lettre ?
06- Pourquoi rajouter un espace à la fin de chaque chaîne plutôt que de mettre end=" " ?
07- Pourquoi c = "" ?
08- Pourquoi mettre des parenthèses au return ?
09- Pourquoi retourner c ?
10- Si c'est pour éviter d'afficher None, pourquoi print le résultat de la fonction alors que c'est le fonction elle même qui print ?
11- D'ailleurs, pourquoi ne pas retourner une chaîne plutôt que de le print dans la fonction ?
12- Pourquoi la fonction s'appelle cryptage alors qu'elle ne crypte rien ?
13- Pourquoi les noms de variables sont en français ?
14- Pourquoi il n'y a pas de majuscule à "Votre" ?
15- Pourquoi il y a un h dans "caractère" ?
17- Pourquoi il n'y a pas d'accent à "à" ?
Je t'en supplie, dis moi que ce n'est pas vraiment ton code final
- Edité par thelinekioubeur 17 septembre 2020 à 9:40:58
alors je vais répondre a ton com. Je me souviens plus trop de ce que j'avais fait mais je vais répondre au plus de points possible.
( c'etait un exercice que je devais faire pour les cour)
01: franchement je sais pas mais je crois que c'est ma prof qui m'avait dit ca ...
02: je ne sais pas ce que c'est que dict ^^'
03,04,05 : je sais plus mais je crois pas grand chose, j'ai du la mettre quand j'avais teste une autre méthode et je ne l'ai pas retiré
06: le end=' ' sert a ne ce que ca ne saute pas de ligne entre chaque print
07: comme le 03 je pense je me souviens plus
08: j'ai appris comme ça
09:par ce que ma prof me clc a vouloir mettre un return mais je savait pas quoi mettre dedans
10: je savais pas que je pouvais juste le mettre sans le print pour appeler la fonction
11: je sais pas j'ai choisie de faire comme ça et ça marche
12: c'etait le nom de l'exo donné par la prof
13: par ce que je suis francais
14:par ce que je m'en fous un peu pour un exo que la prof va peut etre meme pas regarder et qui vas disparaitre 1 jour apres
15: par ce que je sais pas écrire
17: pareil que le 15
voila j'ai répondue a toute tes question. Maintenant pourquoi il n'y a pas de 16?
Et oui c'est mon code finale et si il te plait pas au lieu de mettre un commentaire juste pour critiquer tu peux aider
Aller bonne fin de journé
Bonsoir
En vrai les questions sont constructives, y'a plein de choses dont on peut se dispenser dans le code... et l'utilisation de dict faciliterait complètement le code.
Pour faire avec les dict, cela te permet d'avoir une structure de données où tu peux faire correspondre une clé à une valeur. Ici la clé serait ce que tu veux remplacer, et la valeur par ce qui remplace. Ensuite il suffit de faire une boucle sur le dictionnaire, et faire un appel à la methode replace des chaîne de caractère pour remplacer chacune des correspondances, pour enfin retourner la chaîne et l'afficher...
De toute manière quand tu programmes, si à un moment donné, tu vois que dois copier-coller 20 fois, pour changer que 2 trucs, c'est que c'est mal conçu et passer par des boucles et conteneurs, c'est plus efficace... Imagine si tu voulais remplacer non pas des lettres mais des mots, tu t'amuserais pas à faire un elif pour chaque mot de la langue française...
Bref, je pense, sans méchanceté aucune, que si tu approfondissais un peu en suivant un cours de python, tu comprendrais à quel point il est très simple de faire tenir ce code en 3-4 lignes
Bonne soirée
- Edité par WexyR 6 novembre 2020 à 1:45:36
Si je suis tête en l'air, c'est par habitude de viser le sommet
Non, ça passe, t'inquiètes pas. Je croyais que 3.9 était encore en bêta.
C'est sympa ton message, celui que j'ai +1, mais, vu le je-m'en-foutisme d'Albert, je doute qu'il revienne te remercier et ça ne va pas lui changer son point de vue en prog : si ce n'était pas obligatoire dans son cursus, il s'en passerait volontiers. Après, vu le coeff faible de la matière, je comprends que beaucoup font l'impasse.
Amusant comme sujet ... Alors, je suis obsolete avec mon 3.8.3? Petite remarque supplémentaire: garder du code inutile est le meilleur moyen de ne pas réussir.t
Le Tout est souvent plus grand que la somme de ses parties.
Amusant comme sujet ... Alors, je suis obsolete avec mon 3.8.3? Petite remarque supplémentaire: garder du code inutile est le meilleur moyen de ne pas réussir.t
J'ai pas dit que la 3.8 était obsolète, j'ai juste dit qu'il y a une version plus récente
@LeCobriste128 a dit que la version python2 était obsolète et il a raison puisqu'il n'est plus supporté.
Si je suis tête en l'air, c'est par habitude de viser le sommet
Voyons voyons, soyez plus constructifs ! Alors alors...
01- Pourquoi utiliser enumerate alors que i n'est pas utilisé ?
02- Pourquoi ne pas remplacer tous ces elif par un dict ?
03- À quoi sert la variable globale lettre ?
04- À quoi sert le paramètre lettre ?
05- À quoi ça sert d'incrémenter lettre ?
06- Pourquoi rajouter un espace à la fin de chaque chaîne plutôt que de mettre end=" " ?
07- Pourquoi c = "" ?
08- Pourquoi mettre des parenthèses au return ?
09- Pourquoi retourner c ?
10- Si c'est pour éviter d'afficher None, pourquoi print le résultat de la fonction alors que c'est le fonction elle même qui print ?
11- D'ailleurs, pourquoi ne pas retourner une chaîne plutôt que de le print dans la fonction ?
12- Pourquoi la fonction s'appelle cryptage alors qu'elle ne crypte rien ?
13- Pourquoi les noms de variables sont en français ?
14- Pourquoi il n'y a pas de majuscule à "Votre" ?
15- Pourquoi il y a un h dans "caractère" ?
17- Pourquoi il n'y a pas d'accent à "à" ?
Je t'en supplie, dis moi que ce n'est pas vraiment ton code final
- Edité par thelinekioubeur 17 septembre 2020 à 9:40:58
alors je vais répondre a ton com. Je me souviens plus trop de ce que j'avais fait mais je vais répondre au plus de points possible.
( c'etait un exercice que je devais faire pour les cour)
01: franchement je sais pas mais je crois que c'est ma prof qui m'avait dit ca ...
02: je ne sais pas ce que c'est que dict ^^'
03,04,05 : je sais plus mais je crois pas grand chose, j'ai du la mettre quand j'avais teste une autre méthode et je ne l'ai pas retiré
06: le end=' ' sert a ne ce que ca ne saute pas de ligne entre chaque print
07: comme le 03 je pense je me souviens plus
08: j'ai appris comme ça
09:par ce que ma prof me clc a vouloir mettre un return mais je savait pas quoi mettre dedans
10: je savais pas que je pouvais juste le mettre sans le print pour appeler la fonction
11: je sais pas j'ai choisie de faire comme ça et ça marche
12: c'etait le nom de l'exo donné par la prof
13: par ce que je suis francais
14:par ce que je m'en fous un peu pour un exo que la prof va peut etre meme pas regarder et qui vas disparaitre 1 jour apres
15: par ce que je sais pas écrire
17: pareil que le 15
voila j'ai répondue a toute tes question. Maintenant pourquoi il n'y a pas de 16?
Et oui c'est mon code finale et si il te plait pas au lieu de mettre un commentaire juste pour critiquer tu peux aider
Aller bonne fin de journé
Bonsoir
En vrai les questions sont constructives, y'a plein de choses dont on peut se dispenser dans le code... et l'utilisation de dict faciliterait complètement le code.
Pour faire avec les dict, cela te permet d'avoir une structure de données où tu peux faire correspondre une clé à une valeur. Ici la clé serait ce que tu veux remplacer, et la valeur par ce qui remplace. Ensuite il suffit de faire une boucle sur le dictionnaire, et faire un appel à la methode replace des chaîne de caractère pour remplacer chacune des correspondances, pour enfin retourner la chaîne et l'afficher...
De toute manière quand tu programmes, si à un moment donné, tu vois que dois copier-coller 20 fois, pour changer que 2 trucs, c'est que c'est mal conçu et passer par des boucles et conteneurs, c'est plus efficace... Imagine si tu voulais remplacer non pas des lettres mais des mots, tu t'amuserais pas à faire un elif pour chaque mot de la langue française...
Bref, je pense, sans méchanceté aucune, que si tu approfondissais un peu en suivant un cours de python, tu comprendrais à quel point il est très simple de faire tenir ce code en 3-4 lignes
Bonne soirée
- Edité par WexyR 6 novembre 2020 à 1:45:36
ouais le problème c'est que je suis sensé avoir de cours au lycée mais j'ai la pire prof ... je lui ai redu ce code et depuis pas de nouvelle et on est passer par autre chose. Donc ca a du lui plaire même si moi aussi je trouve ce bizarre d'avoir autant de ligne pour si peu ^^'
Alors, j'ai une question. Es-tu intéressé à apprendre le Python, ou si c'est parce que tu es obligé? Si tu es intéressé, je t'assure que e cours d'OpenClassrooms est nettement meilleur que ta prof. (et même si on critique les cours d'OpenClassrooms) Ensuite, tu pourras trouver facilement la documentation officielle de Python sur le web. Et il y a une foule de sites qui donnent des explications ou des exercices intéressants.
Le Tout est souvent plus grand que la somme de ses parties.
pour aller dans le sens de PierrotLeFou et des réponses précédentes, tu peux essayer de retravailler ton code avec un dictionnaire (regarder dans la doc à quoi ça correspond, et comment tu pourrais l'utiliser dans ton cas)
Retour de "none"
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Blond, bouclé, toujours le sourire aux lèvres...
Blond, bouclé, toujours le sourire aux lèvres...
Blond, bouclé, toujours le sourire aux lèvres...
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.