Inscription / Connexion Nouveau Sujet
Niveau seconde
Partager :

python chaînes de caractères

Posté par
Nelcar
13-03-19 à 15:32

Bonjour
j'ai un exercice toujours sur PYTHON qui est :
on veut programmer en langage Python une fonction qui a pour argument un mot ou une phrase et qui renvoie en sortie le nombre de fois où la lettre "e" se trouve dans ce mot ou cette phrase.
Dans la fonction ci-contre, len(ph) calcule la longueur de la chaîne de caractères ph.
1) compléter le programme ci-contre.
2) Modifier cette fonction afin qu'elle renvoie la fréquence de la lettre "a" dans la phrase ou le mot.
def edansphrase(ph):
   s=len(ph)
   n=0
   for i in range(......):
       if ph(i)=="e":
             ...........
   return(n)


pour le 1) j'ai mis for i in range(n,n+1):  et en-dessous de if j'ai mis e=e+1
pour le 2) je remplace dans le if "e" par "a" et en dessous a=a+1

Merci de votre réponse

Posté par
mathafou Moderateur
re : python chaînes de caractères 13-03-19 à 15:42

bonjour,

ton n n'est pas défini du tout
de toute façon "in range (n,n+1)" c'est exactement la même chose que pas de for du tout et i identique à n !

e n'est pas une variable ! "e" est le code de la lettre e (entre " " c'est du texte pas des variables !)

Citation :
une fonction qui a pour argument un mot ou une phrase et qui renvoie en sortie le nombre de fois où...

quelle est la sortie de cet algorithme ? (sur le texte de l'algorithme lui-même, déja écrit)
comment s'appelle la variable utilisée dans cette sortie ?
et donc c'est dans cette variable que l'on va compter le nombre de fois où "e" apparait dans le texte
pas dans une autre qu'il faudrait créer...

toutes les variables nécessaires sont déja mentionnées dans l'algo, aucune nouvelle variable à créer.

Posté par
alb12
re : python chaînes de caractères 13-03-19 à 15:56

salut,
enfin un enseignant qui respecte le programme

Posté par
Nelcar
re : python chaînes de caractères 13-03-19 à 16:23

Re,
alors là je patauge carrément
donc sur la ligne for i in range (1,ph+1):
pour la sortie je dirai return(n)
et en dessous de for i in range je pense qu'il faudrait mettre print("e)
merci de votre réponse mais je galère
Alb12 : oui c'est bien de respecter le programme mais il faudrait savoir expliquer aux élèves et non recopier le corrigé au tableau (et sans manipulation)
Merci pour votre aide

Posté par
alb12
re : python chaînes de caractères 13-03-19 à 16:35

citation, chaîne de caractere ?
"et non recopier le corrigé au tableau (et sans manipulation)"
aberrant en effet !

Posté par
mathafou Moderateur
re : python chaînes de caractères 13-03-19 à 16:46

ph est une chaine
ce n'est pas la longueur de cette chaine !
où est cette longueur de la chaine ph ? dans quelle variable ?

pour la sortie je dirai return(n)
oui mais tu n'en a pas tiré la signification

cela veut dire que le résultat du programme c'est le contenu de la variable n
or l'énoncé dit que ...

donc maintenant répond correctement à ma question
que doit contenir cette variable n à la fin ?
que faut il donc faire dans le "..." du if pour obtenir ça ?

ton "print" n'a rigoureusement rien à faire là et n'a aucun rapport avec quoi que ce soit (en plus sa syntaxe est fausse)
ce qu'il faut faire dans la boucle c'est un calcul
pour compter le nombre de "e"
chaque fois qu'on passe dans le "..." du "if" on a trouvé un nouveau "e"
donc que doit on faire du nombre de "e" qu'on trouvé pour le mettre à jour ?
dans quelle variable ? (voir tout en haut de ce message)

Citation :
(et sans manipulation)

un élève sérieux s'installera sans qu'on le lui demande Python sur son propre ordi pour refaire des manips ... (ainsi que Geogebra, Xcas, Excel ou Open Office etc)
c'est gratuit.
voire cherchera des sites proposant de l'utiliser "en ligne" sans rien installer s'il n'a pas d'ordi

La prise de ce genre d'initiative est importante dans le processus d'enseignement si on ne veut pas rester des "assistés" à vie.

Posté par
Nelcar
re : python chaînes de caractères 13-03-19 à 17:11

Re,
je suis désolée mais je suis perdue (pour ce qui est de la Citation, ma mamy a installé Python chez elle et je regarde quand j'y suis, ce n'est pas évident quand on n'a pas d'explications)
Je reviens au sujet :
-la longueur de la chaîne c'est "len(ph)" dans la variable "s"
-pour la sortie return(n) : pour moi la signification c'est lorsque la boucle a fini elle revient au début
-pour après if je ne sais pas, je dirai que c'est la variable s donc s=s+1 (là je suis perdue)
Merci de ta réponse mais c'est dommage que l'on a pas une personne qui nous explique car là de nous même c'est dur

Posté par
flight
re : python chaînes de caractères 13-03-19 à 17:16

salut

un exemple sur excel sur excel vba pour t'inspirer
mot = inputbox("saisir un mot ou une chaine de caracteres)
     for i =1 to len(mot)
        if  mid(mot,i,1)="e" then
          n=n+1
        end if
     next
msgbox n     ( retourne ne nombre de "e")

Posté par
mathafou Moderateur
re : python chaînes de caractères 13-03-19 à 18:11

return veut dire qu'on quitte la fonction et que le résultat de cette fonction est n

return se traduit par "renvoyer la valeur n comme résultat"
la mauvaise compréhension de la signification du "return" est la source de ton incompréhension de la suite.

donc la variable qui doit contenir à la fin le nombre de "e" trouvés c'est n

c'est dans cette variable n là que l'on compte

modifier s ne rime à rien : cela voudrait dire qu'on change la longueur de la chaine en cours de route ?????



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1719 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !