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
 
 

Modifié le: Friday 27 January 2017, 18:26