Justification de texte avec Python

- - Dernière réponse : hbouia
Messages postés
107
Date d'inscription
mardi 30 juillet 2013
Statut
Membre
Dernière intervention
17 avril 2019
- 25 mars 2019 à 19:47
Bonjour,
Je suis étudiant en première année de la licence en Data Science. J'ai un souci en ce qui concerne la justification de texte en Python et je suis un débutant en Python. J'ai besoin d'utiliser la classe justify et dans cette classe il y a des fonctions comme: fonction déterminant le nombre de mots, fonction déterminant le nombre de lignes, fonction calculant le nombre d'espaces... Mais je n'arrive pas à écrire ces fonctions. Jusqu'alors j'ai juste écrit la fonction qui calcule le nombre de mots...
Alors, votre aide m'aidera à comprendre cette notion de classe et de justification de texte.
Afficher la suite 

Votre réponse

2 réponses

Messages postés
107
Date d'inscription
mardi 30 juillet 2013
Statut
Membre
Dernière intervention
17 avril 2019
5
0
Merci
Bonsoir,

utiliser la fonction "count".
Exemple :

texte="a b c"
texte.count(" ") donne le nombre d'espaces de la variable "texte" : il y'en a 2.

Voici un exemple :

texte=u"Je suis la ligne numéro un\nJe suis la ligne numéro deux"
nb_espaces=texte.count(" ")
nb_lignes=texte.count("\n")+1
nb_mots=nb_espaces+nb_lignes
texte1=texte.replace("\n"," ")
liste_mots=texte1.split(" ")
print("Nombre d'espaces : ",nb_espaces)
print("Nombre de lignes : ",nb_lignes)
print("Nombre de mots   : ",nb_mots)
print("Liste des mots  : ")
for i,mot in enumerate(liste_mots):
    print 'Mot %2d :' % (i+1),mot

## Résultats affichés :
#    ("Nombre d'espaces : ", 10)
#    ('Nombre de lignes : ', 2)
#    ('Nombre de mots   : ', 12)
#    Liste des mots  : 
#    Mot  1 : Je
#    Mot  2 : suis
#    Mot  3 : la
#    Mot  4 : ligne
#    Mot  5 : numéro
#    Mot  6 : un
#    Mot  7 : Je
#    Mot  8 : suis
#    Mot  9 : la
#    Mot 10 : ligne
#    Mot 11 : numéro
#    Mot 12 : deux


"\n" désigne un saut de ligne.
Cet exemple est simple mais attention, pour le comptage des mots, quand il y a dans le texte des apostrophes, des guillemets et de la ponctuation … ;)

Bon courage

hbouia
Commenter la réponse de hbouia
Messages postés
13123
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
19 avril 2019
354
0
Merci
Bonsoir.

Il est plus simple d'utiliser les regex. Il y a une syntaxe pour trouver les délimiteurs de mots (quels qu'ils soient: espaces, ponctuation etc...) "\b", et du coup des lettres entre 2 délimiteurs sont des mots.
\b[a-z]+\b


Voir un exemple ici
http://regexstorm.net/tester?p=%5cb%5ba-z%5d%2b%5cb&i=tu+es+press%c3%a9+d%27%c3%a9crire%0d%0acomme+si+tu+%c3%a9tais+en+retard+sur+la+vie%0d%0as%27il+en+est+ainsi+fais+cort%c3%a8ge+%c3%a0+tes+sources%0d%0ah%c3%a2te-toi%0d%0ah%c3%a2te-toi+de+transmettre%0d%0ata+part+de+merveilleux+de+r%c3%a9bellion+de+bienfaisance%0d%0aeffectivement+tu+es+en+retard+sur+la+vie%0d%0ala+vie+inexprimable%0d%0a-----------------------------------%0d%0aren%c3%a9+char%2c+extrait+de+%22commune+pr%c3%a9sence%22%2c+in+Le+Marteau+sans+ma%c3%aetre+%281934-1935%29&o=i
il y a 49 mots sans diacritiques (accents, cédilles, etc)



A adapter, pour inclure les diacritiques, les chiffres (si besoin) etc.
Whismeril
Messages postés
13123
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
19 avril 2019
354 -
Oui, c'est vrai, mais à ce compte là faut pas lui donner un code tout fait.
Pierjos30
Messages postés
1
Date d'inscription
dimanche 24 mars 2019
Statut
Membre
Dernière intervention
25 mars 2019
-
Donnez lui un code python tout fait car il est débutant et ne comprend parfois pas. Peut-être un code sera plus clair pour lui
Whismeril
Messages postés
13123
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
19 avril 2019
354 -
Et bien non, c'est contraire à la charte que tu viens d'accepter de respecter en t'inscrivant
http://www.commentcamarche.net/faq/10925-demander-de-l-aide-pour-vos-exercices-sur-ccm
hbouia
Messages postés
107
Date d'inscription
mardi 30 juillet 2013
Statut
Membre
Dernière intervention
17 avril 2019
5 -
Effectivement vous avez raison et je suis complètement d'accord,
L'idée était de lui montrer un peu mais pas tout pour l'aider à aller plus loin.
Bonne soirée
hbouia
Messages postés
107
Date d'inscription
mardi 30 juillet 2013
Statut
Membre
Dernière intervention
17 avril 2019
5 -
J'ai été enseignant et je comprends bien (je l'espère) juste l'aide qu'il faut donner mais pas tout donner pour laisser s'épanouir par soi même !
Commenter la réponse de Whismeril

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.