2018-2019 : Langage Evolé 1 - L3 STID
Corrigé 2 : Exo2 - TP4
""" Ce programme lit une phrase à partir du clavier
et renvoi les résultats suivants:
-> nombre de mots saisis
-> le mot le plus long
-> la longueur du mot le plus long
-> le mot le plus court
-> la longueur du mot le plus court
On suppose que les mots sont nécessairement séparés
par au moins un espace.
les caractères spéciaux ou de ponctuation ne sont pas
prins en compte
"""
while True:
phrase = input("\nDonnez une phrase SVP : ")
mots = phrase.split()
caractèresSpéciaux = "'.\"/-,?;:(){}%$&~#=!§<>"
# je filtre la phrase en ne gardant que les mots composés
# de lettre alphabétique et ou de chiffres
for i in range(len(mots)):
lm = []
m = mots[i]
for e in m:
if e not in caractèresSpéciaux:
lm.append(e)
if m !='':
mots[i] = "".join(lm)
# Je supprime les chaines vides
for e in mots:
if e=='':
mots.remove(e)
# je construit une nouvelle liste qui va contenir
# les logueurs de chaque mots
longueurs = list()
for e in mots:
longueurs.append(len(e))
logueurMotPlusLong = max(longueurs)
indiceMotPlusLong = longueurs.index(logueurMotPlusLong)
motPlusLong = mots[indiceMotPlusLong]
logueurMotPlusCourt = min(longueurs)
indiceMotPlusCourt = longueurs.index(logueurMotPlusCourt)
motPlusCourt = mots[indiceMotPlusCourt]
print("\n"+30*"=")
print("Voici la liste des mots : \n", mots)
print("\nLe nombre de mots : ", len(mots))
print("Le mot le plus long : ", motPlusLong)
print("La longueur du mot le plus long : ", logueurMotPlusLong)
print("Le mot le plus court : ", motPlusCourt )
print("La longueur du mot le plus court : ",logueurMotPlusCourt)
print("\n"+30*"="+"\n")
rep = input("\nVoulez tester un autre mot de passe (O/N)? ")
if rep.lower() == "n": break