Vous êtes ici : Accueil / Forums & ML / Forums Python / Forum général Python / Problème extension de liste

Problème extension de liste

Remonter à Forum général Python
  • Problème extension de liste

    Envoyé par Mizugola le 19 Juin 2012 à 20:23
    Voilà, j'essaie de programmer un petit programme permettant de pouvoir retourner un mot entré.
    Voilà mon code :

    ----------------------------------------------------------------

    #!/usr/bin/env python

    def main():
    pass

    if __name__ == '__main__':
    main()
    print("Retourneur de mots")
    texteUtilisateur = "a"
    texteUtilisateur = input("Rentrez un mot")
    longueurTexteUtilisateur = len(texteUtilisateur)
    print("Longueur du mot = ", longueurTexteUtilisateur)
    letter = []
    nb = 0
    incrementCreateList = 0
    bn = longueurTexteUtilisateur
    decrement = longueurTexteUtilisateur
    while decrement != 0:
    letter[incrementCreateList] = 0
    incrementCreateList = incrementCreateList + 1
    decrement = decrement - 1
    while longueurTexteUtilisateur != 0:
    letter[nb] = texteUtilisateur[nb:nb+1]
    nb = nb + 1
    longueurTexteUtilisateur = longueurTexteUtilisateur - 1
    while nb != -1:
    print(letter[bn])
    bn = bn - 1
    nb = nb - 1

    --------------------------------------------------------------

    Seulement voilà la boucle qui est censée étendre la liste ne fonctionne pas, enfin je l'ai mal programmée...
    Je recherche donc une fonction me permettant d'étendre la liste car faire letter = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] fait très brouillon et de plus on est jamais sûr de la longueur du texte de l'utilisateur (peut-être voudrait-il inverser un roman entier ?)
    De plus en voulant tester le résultat quand même (avec la fonction letter = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]) il m'affiche les lettres en sautant une ligne
    j'aimerais aussi les aligner, comment faire ?
    Merci d'avance !
    • Re: Problème extension de liste

      Envoyé par Mizugola le 19 Juin 2012 à 20:32
      Pour le problème de l'extension de liste, je l'ai résolu avec la fonction : letter.append(0)
      Il me reste le problème de l'alignement des lettres, merci :)
    • Re: Problème extension de liste

      Envoyé par glickind le 7 Juillet 2012 à 13:54
      pour inverser un mot, tu peux utiliser la notation s[ i:j:k]

      voir
      -théorie: http://docs.python.org/library/stdtypes.html#sequence-types-str-unicode-list-tuple-bytearray-buffer-xrange
      -exemple pratique: http://docs.python.org/whatsnew/2.3.html#extended-slices


      >>> mot='bonjour'
      >>> mot[::-1]
      ruojnob


      Autre méthode
      en utilisant le générateur "reversed" si tu as besoin de faire un traitement sur les lettres,
      "join" permet de joindre les éléments d'une liste

      >>> mot='bonjour'

      >>> for lettre in reversed(mot):
      ... print lettre
      ...
      r
      u
      o
      j
      n
      o
      b

      >>> ''.join([ lettre for lettre in reversed(mot)])
      'ruojnob'
Rendu par Ploneboard