2018-2019 : Langage Evolé 1 - L3 STID
Corrigé 3 : Exo2 - TP4
"""
Exercice 2 : On vous demande d'écrire un programme qui lit une phrase à
partir du clavier et qui renvoi les résultats suivants:
nombre de mots saisis
la liste des mots les plus longs
la longueur des mots les plus longs
la liste des mots les plus courts
la longueur du mot le plus court
"""
import os
while True:
#Effacement de l'écran
os.system("clear")
# lecvture des données
print(30*"*"+"\nlecture des données\n"+30*"*")
#phrase = input("Donnez une phrase")
phrase = "Ici une phrase, avec; des : caractères? spaciaux! Algerienne"
# Traitement
print(30*"*"+"\ntraitements\n"+30*"*")
# Définition des structures de données
separateurs = ".,?;:/*$£%'+-=!"+'"'
phrasePurifiée = ""
listeMots = []
# Remplcer tous les caractères spéciaux par des espaces
for lettre in phrase:
if lettre in separateurs:
phrasePurifiée = phrasePurifiée + " "
else:
phrasePurifiée = phrasePurifiée + lettre
listeMots = phrasePurifiée.split()
listeMotsPlusLongs = list()
listeMotsPlusCourts = list()
longueurDe=dict()
for mot in listeMots:
longueurDe[mot] = len(mot)
longMotPlusLong = max(longueurDe.values())
longMotPlusCourt = min(longueurDe.values())
# je construit les liste des mots courts et longs
for mot, longueur in longueurDe.items():
if longueur == longMotPlusLong:
listeMotsPlusLongs.append(mot)
if longueur == longMotPlusCourt:
listeMotsPlusCourts.append(mot)
# affichage des résultats
print(30*"*"+"\nAffichage des résultats\n"+30*"*")
print("\nla phrase brute :", phrase )
print("\nla liste des mots :", listeMots )
print("\nle nombre de mot :", len(listeMots) )
print("\nla liste des mots les plus courts :", listeMotsPlusCourts )
print("\nla liste des mots les plus longs :", listeMotsPlusLongs )
print("\nla longueur du mot le plus long :", longMotPlusLong )
print("\nla longueur du mot le plus court :", longMotPlusCourt )
# contrôle du bouclage
quitter = False
while True:
recommnencer = input("Voulez-vours recommencer (O/N)?")
if recommnencer.lower() == 'o':
break
elif recommnencer.lower() == 'n':
print("\n\nAu plaisir de vous revoir plus tard...\n\n")
quitter = True
break
else :
print("Vous devez asaisir 'O' ou 'N'...")
if quitter == True:
break