IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

programme python : conversion nombre en chaine de caracteres


Sujet :

Python

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 10
    Points : 5
    Points
    5
    Par défaut programme python : conversion nombre en chaine de caracteres
    Bonjour, voilà je dois écrire une fonction traduire(nombre,n) qui traduit le nombre en une chaîne de n caractères qui contiendra le nombre entier. Si n est supérieur au nombre de chiffres composant le nombre, elle sera complétée par des zéros.
    Par exemple :
    traduire(12,4) donne '0012'
    traduire(1234,4) donne '1234'

    Je vais tout d'abord vous montrer mon programme (qui fonctionne soit dit en passant en bidouillant) et vous exposer ensuite où se situe le problème car en réalité il ne fonctionne pas ... oui oui c'est paradoxal ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    def traduire(nombre,n):
    # traduit le nombre en une chaine de n caracteres qui contiendra le nombre entier
    	if n<=len(nombre): 
    		print nombre
    	if n>len(nombre):
    		d=n-len(nombre)
    		nombre=d*'0'+nombre
    		print nombre
     
    # Attention saisir le nombre avec des quotes
    nombre=input('Entrez le nombre a convertir :')
    n=input('Entrez le nombre de position sur lequel vous souhaitez ecrire le chiffre :')
    print traduire(nombre,n)

    En fait cette version ne marche que dans la mesure où quand je teste ce programme, les valeurs 12 ou 1234 de l'exemple, je les rentre directement en tant que chaines de caractères (ie avec des quotes) et non pas en tant que nombres. Du coup ca fonctionne correctement. Autrement il y a erreur, eh oui, la fonction len ne marche pas sur les entiers !! Quelqu'un voit-il une méthode de résoudre mon problème d'une meilleure manière ?

    PS : je ne suis pas informaticien, alors une méthode "soft" est la bienvenue merci

  2. #2
    Membre éclairé
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Points : 803
    Points
    803
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    >>> print '%04d' % 12
    0012
    >>> print '%04d' % 1234
    1234
    >>>

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 10
    Points : 5
    Points
    5
    Par défaut explication
    merci de m'avoir répondu GnuVince, je ne voudrais pas t'importuner plus, mais peux tu m'expliquer le fonctionnement de ce que tu as écrit ...
    De plus, pourrais tu me dire, comment faire pour faire ce que tu as fait dans un cas général ? car je teste avec un n (que j'ai initialisé) à la place du 4 mais ERREUR !! boou oui je sais je suis nul mais je suis debutant

  4. #4
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067

  5. #5
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    merci pour le lien, mais je suis pas sur que ca soit fort utile dans la mesure où ce que je rentre au clavier est du numérique, ce qui en ressort est une chaine de caractere. Comment appliquer des fonctions de chaines de caracteres sur un numerique ??? ... il n'y a donc pas d'interet sur ce lien ou alors je ne comprends vraiment vraiment rien ... mais merci quand meme pour la tentative d'aide

  6. #6
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    As-tu au moins essayé le bout de code donnée dans le lien, tu aurais vu que ca correspond exactement à ce que tu souhaites faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> str(12).zfill(4)
    '0012'
    >>> str(1234).zfill(4)
    '1234'

  7. #7
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Guigui_ Voir le message
    As-tu au moins essayé le bout de code donnée dans le lien, tu aurais vu que ca correspond exactement à ce que tu souhaites faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> str(12).zfill(4)
    '0012'
    >>> str(1234).zfill(4)
    '1234'
    OK autant pour moi, merci, mais j'avoue qu'en voyant le lien sur les chaines de caracteres, je n'avais pas tout regardé. merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Convertir un nomùbre en chaine de caractere
    Par Sam 069 dans le forum Access
    Réponses: 1
    Dernier message: 18/06/2007, 15h24
  2. conversion tableau vers chaine de caractere
    Par sneb5757 dans le forum Réseau
    Réponses: 6
    Dernier message: 12/11/2006, 23h31
  3. convertir un nombre en chaîne de caractères
    Par Calbane dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 19/04/2006, 21h12
  4. Conversion Date en chaine de caracteres et Inversement
    Par badara2 dans le forum Langage
    Réponses: 1
    Dernier message: 15/03/2006, 18h40
  5. convertir un nombre en chaine de caractere
    Par c_moi_c_moi dans le forum Oracle
    Réponses: 3
    Dernier message: 23/11/2005, 12h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo