Justification de texte avec Python

Vins - 24 mars 2019 à 12:40
hbouia
Messages postés
111
Date d'inscription
mardi 30 juillet 2013
Statut
Membre
Dernière intervention
4 décembre 2021
- 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.
A voir également:

2 réponses

hbouia
Messages postés
111
Date d'inscription
mardi 30 juillet 2013
Statut
Membre
Dernière intervention
4 décembre 2021
12
24 mars 2019 à 20:39
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
0
Merci beaucoup !
0
Whismeril
Messages postés
17326
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
15 mai 2022
596
24 mars 2019 à 23:13
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.
0
hbouia
Messages postés
111
Date d'inscription
mardi 30 juillet 2013
Statut
Membre
Dernière intervention
4 décembre 2021
12
25 mars 2019 à 17:07
Bonjour,
Certes Regex est un module puissant mais pour un débutant, ce n'est pas mal de savoir utiliser les commandes de base.
Bonne soirée
hb
0
Whismeril
Messages postés
17326
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
15 mai 2022
596
25 mars 2019 à 18:06
Oui, c'est vrai, mais à ce compte là faut pas lui donner un code tout fait.
0
Pierjos30
Messages postés
1
Date d'inscription
dimanche 24 mars 2019
Statut
Membre
Dernière intervention
25 mars 2019

25 mars 2019 à 18:11
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
0
Whismeril
Messages postés
17326
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
15 mai 2022
596
25 mars 2019 à 18:49
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
0
hbouia
Messages postés
111
Date d'inscription
mardi 30 juillet 2013
Statut
Membre
Dernière intervention
4 décembre 2021
12
25 mars 2019 à 19:44
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
0