Exercice sur les fonctions
Résolu
Theo_0055
Messages postés
273
Date d'inscription
Statut
Membre
Dernière intervention
-
Theo_0055 Messages postés 273 Date d'inscription Statut Membre Dernière intervention -
Theo_0055 Messages postés 273 Date d'inscription Statut Membre Dernière intervention -
Bonjour,pouvez vous m'aider svp a faire les quelques questions indépendantes de cette exercice
1)Ecrire la fonction repeter qui prend en argument un mot,choisit un entier n au hasard être 2 et 7,et renvoie le mot répété fois,séparés par des +
Le résultat attendu est "papa+papa" par exemple si n=2
J'ai essayé de le faire mais j'obtiens toujours a la fin +None,comment faire pour m'en debarasser
1)Ecrire la fonction repeter qui prend en argument un mot,choisit un entier n au hasard être 2 et 7,et renvoie le mot répété fois,séparés par des +
Le résultat attendu est "papa+papa" par exemple si n=2
import random def lundi(mot): n=random.randint(2,7) for i in range(n): print(mot,end="") print("+",end="")
J'ai essayé de le faire mais j'obtiens toujours a la fin +None,comment faire pour m'en debarasser
A voir également:
- Exercice sur les fonctions
- Codes secrets Android : accéder aux fonctions cachées - Guide
- Fonction remplacer sur word - Guide
- Les fonctions excel en anglais - Guide
- Comment faire fonctionner chromecast sur la tv ? - Guide
- Fonction miroir sur portable - Guide
9 réponses
Bonjour,
Après le dernier mot il ne faut pas de +, donc peut être rajouter un test pour imprimer "+" ou un saut de ligne quand c'est le dernier mot.
La fonction doit "renvoyer" le mot répété. Est-ce bien pareil que imprimer ? Ou ne serait-ce pas plutôt un return avec une variable qu'il faudrait faire ?
Après le dernier mot il ne faut pas de +, donc peut être rajouter un test pour imprimer "+" ou un saut de ligne quand c'est le dernier mot.
La fonction doit "renvoyer" le mot répété. Est-ce bien pareil que imprimer ? Ou ne serait-ce pas plutôt un return avec une variable qu'il faudrait faire ?
Oui c'est ça que je sais pas faire
il peut y avoir plusieurs façon de faire,
bis : La fonction doit "renvoyer" le mot répété. Est-ce bien pareil que imprimer ? Ou ne serait-ce pas plutôt un return avec une variable qu'il faudrait faire ?
- dans la boucle, faire un test pour savoir si c'est la dernière occurence et ne pas rajouter le "+"
- faire une boucle n -1 fois et en sortie imprimer une nouvelle fois mot.
bis : La fonction doit "renvoyer" le mot répété. Est-ce bien pareil que imprimer ? Ou ne serait-ce pas plutôt un return avec une variable qu'il faudrait faire ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionimport random def lundi(mot): n=random.randint(2,7) for i in range(n): print(mot,end="") print("+",end="") return(mot) x=lundi('salut') print(x)
Je comprends ton None !!! Un print de x sans return dans la fonction = None
Comme je l'ai indiqué, rappelles toi ma remarque initiale, la fonction doit "renvoyer" le mot répété.
Donc ta solution avec des print dans la fonction ne répond pas à l'exercice. Il faut que la chaine retournée par le return contienne, non pas la valeur de départ, cela ne sert à rien, mais une chaine avec la concaténation.
Tu devrais voir les opérateurs de chaines
Comme je l'ai indiqué, rappelles toi ma remarque initiale, la fonction doit "renvoyer" le mot répété.
Donc ta solution avec des print dans la fonction ne répond pas à l'exercice. Il faut que la chaine retournée par le return contienne, non pas la valeur de départ, cela ne sert à rien, mais une chaine avec la concaténation.
Tu devrais voir les opérateurs de chaines
Donc,pour cette question je dois pas utiliser print?
Plus tard j'essaierais encore d'y réfléchir
Plus tard j'essaierais encore d'y réfléchir
De toute façon tu dois te replonger dans l'exercice. Car quand n=2, ton code n'affiche pas salut+salut mais salut+salut+salut ! Tu as caché le défaut du + en fin de chaine.
Moi quand je lis l'énoncé je comprends que la fonction doit retourner une chaine "salut+salut". Et pourquoi appeler ta fonction lundi, ce n'est pas non plus ce qui est demandé. Je me souviens de professeurs qui auraient testé
Le squelette de ton code devrait être.
et dans le corps utiliser des fonctions de concaténation de chaines de caractères. cf lien plus haut.
Moi quand je lis l'énoncé je comprends que la fonction doit retourner une chaine "salut+salut". Et pourquoi appeler ta fonction lundi, ce n'est pas non plus ce qui est demandé. Je me souviens de professeurs qui auraient testé
repeter("papa")==> note 0/20 la fonction ne se lance même pas.
Le squelette de ton code devrait être.
import random def repeter(mot): n=random.randint(2,7) motsplus="" for i in range(n): ...... return(motsplus) x=repeter("salut") print(x)
et dans le corps utiliser des fonctions de concaténation de chaines de caractères. cf lien plus haut.