9 réponses
jee pee
- Messages postés
- 30595
- Date d'inscription
- mercredi 2 mai 2007
- Statut
- Modérateur
- Dernière intervention
- 16 janvier 2021
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 ?
Theo_0055
- Messages postés
- 50
- Date d'inscription
- mardi 21 juillet 2020
- Statut
- Membre
- Dernière intervention
- 3 janvier 2021
Désolé j'ai pas trop compris ce que vous voulez dire
Theo_0055
- Messages postés
- 50
- Date d'inscription
- mardi 21 juillet 2020
- Statut
- Membre
- Dernière intervention
- 3 janvier 2021
Oui c'est ça que je sais pas faire
jee pee
- Messages postés
- 30595
- Date d'inscription
- mercredi 2 mai 2007
- Statut
- Modérateur
- Dernière intervention
- 16 janvier 2021
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 ?
Theo_0055
- Messages postés
- 50
- Date d'inscription
- mardi 21 juillet 2020
- Statut
- Membre
- Dernière intervention
- 3 janvier 2021
Et aussi comment eviter d'avoir none a la fin
Theo_0055
- Messages postés
- 50
- Date d'inscription
- mardi 21 juillet 2020
- Statut
- Membre
- Dernière intervention
- 3 janvier 2021
Bonjour maintenant j'ai reussi
Theo_0055
- Messages postés
- 50
- Date d'inscription
- mardi 21 juillet 2020
- Statut
- Membre
- Dernière intervention
- 3 janvier 2021
import 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)
jee pee
- Messages postés
- 30595
- Date d'inscription
- mercredi 2 mai 2007
- Statut
- Modérateur
- Dernière intervention
- 16 janvier 2021
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
Theo_0055
- Messages postés
- 50
- Date d'inscription
- mardi 21 juillet 2020
- Statut
- Membre
- Dernière intervention
- 3 janvier 2021
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
jee pee
- Messages postés
- 30595
- Date d'inscription
- mercredi 2 mai 2007
- Statut
- Modérateur
- Dernière intervention
- 16 janvier 2021
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.
Theo_0055
- Messages postés
- 50
- Date d'inscription
- mardi 21 juillet 2020
- Statut
- Membre
- Dernière intervention
- 3 janvier 2021
Merci de votre aide,je l'ai fait
import random def repeter(mot): n=random.randint(2,7) motsplus="" for i in range(n-1): motsplus+=mot+"+" motsplus+=mot return(motsplus) x=repeter("salut") print(x)