Exercice sur les fonctions
Résolu/Fermé
Theo_0055
Messages postés
275
Date d'inscription
mardi 21 juillet 2020
Statut
Membre
Dernière intervention
19 janvier 2023
-
Modifié le 1 janv. 2021 à 14:12
Theo_0055 Messages postés 275 Date d'inscription mardi 21 juillet 2020 Statut Membre Dernière intervention 19 janvier 2023 - 2 janv. 2021 à 19:03
Theo_0055 Messages postés 275 Date d'inscription mardi 21 juillet 2020 Statut Membre Dernière intervention 19 janvier 2023 - 2 janv. 2021 à 19:03
A voir également:
- Exercice sur les fonctions
- Exercice word avec corrigé - Forum Word
- Comment trouver la correction d'un exercice - Forum Programmation
- Triangle des textures exercice corrigé - Forum Loisirs / Divertissements
- Exercice informatique cm2 pdf ✓ - Forum Études / Formation High-Tech
- Youtube ne fonctionnera pas sans les services google play ✓ - Forum Téléphones & tablettes Android
9 réponses
jee pee
Messages postés
39582
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
17 avril 2024
9 224
Modifié le 1 janv. 2021 à 14:44
Modifié le 1 janv. 2021 à 14:44
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
275
Date d'inscription
mardi 21 juillet 2020
Statut
Membre
Dernière intervention
19 janvier 2023
1
1 janv. 2021 à 15:32
1 janv. 2021 à 15:32
Désolé j'ai pas trop compris ce que vous voulez dire
jee pee
Messages postés
39582
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
17 avril 2024
9 224
1 janv. 2021 à 15:39
1 janv. 2021 à 15:39
ton code ne va pas donner "papa+papa" mais "papa+papa+" ce qui n'est pas ce qui est demandé
Theo_0055
Messages postés
275
Date d'inscription
mardi 21 juillet 2020
Statut
Membre
Dernière intervention
19 janvier 2023
1
1 janv. 2021 à 15:46
1 janv. 2021 à 15:46
Oui c'est ça que je sais pas faire
jee pee
Messages postés
39582
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
17 avril 2024
9 224
1 janv. 2021 à 15:52
1 janv. 2021 à 15:52
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
275
Date d'inscription
mardi 21 juillet 2020
Statut
Membre
Dernière intervention
19 janvier 2023
1
1 janv. 2021 à 15:47
1 janv. 2021 à 15:47
Et aussi comment eviter d'avoir none a la fin
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Theo_0055
Messages postés
275
Date d'inscription
mardi 21 juillet 2020
Statut
Membre
Dernière intervention
19 janvier 2023
1
1 janv. 2021 à 17:02
1 janv. 2021 à 17:02
Bonjour maintenant j'ai reussi
jee pee
Messages postés
39582
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
17 avril 2024
9 224
1 janv. 2021 à 17:06
1 janv. 2021 à 17:06
Bien ! donnes nous ton code final.
Theo_0055
Messages postés
275
Date d'inscription
mardi 21 juillet 2020
Statut
Membre
Dernière intervention
19 janvier 2023
1
1 janv. 2021 à 17:51
1 janv. 2021 à 17:51
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
39582
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
17 avril 2024
9 224
1 janv. 2021 à 18:31
1 janv. 2021 à 18:31
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
275
Date d'inscription
mardi 21 juillet 2020
Statut
Membre
Dernière intervention
19 janvier 2023
1
2 janv. 2021 à 07:44
2 janv. 2021 à 07:44
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
39582
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
17 avril 2024
9 224
Modifié le 2 janv. 2021 à 12:04
Modifié le 2 janv. 2021 à 12:04
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
275
Date d'inscription
mardi 21 juillet 2020
Statut
Membre
Dernière intervention
19 janvier 2023
1
Modifié le 2 janv. 2021 à 16:59
Modifié le 2 janv. 2021 à 16:59
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)
jee pee
Messages postés
39582
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
17 avril 2024
9 224
2 janv. 2021 à 17:43
2 janv. 2021 à 17:43
Bravo, là cela fonctionne
Theo_0055
Messages postés
275
Date d'inscription
mardi 21 juillet 2020
Statut
Membre
Dernière intervention
19 janvier 2023
1
2 janv. 2021 à 19:03
2 janv. 2021 à 19:03
Merci c'est grâce a vous