Justification de texte avec Python

Vins - 24 mars 2019 à 12:40
hbouia Messages postés 112 Date d'inscription mardi 30 juillet 2013 Statut Membre Dernière intervention 22 novembre 2022 - 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.

2 réponses

hbouia Messages postés 112 Date d'inscription mardi 30 juillet 2013 Statut Membre Dernière intervention 22 novembre 2022 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 18425 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 9 juin 2023 624
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 112 Date d'inscription mardi 30 juillet 2013 Statut Membre Dernière intervention 22 novembre 2022 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 18425 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 9 juin 2023 624
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 18425 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 9 juin 2023 624
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 112 Date d'inscription mardi 30 juillet 2013 Statut Membre Dernière intervention 22 novembre 2022 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