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 :

Problème avec une fonction, une liste et un "tant que"


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2017
    Messages : 3
    Par défaut Problème avec une fonction, une liste et un "tant que"
    Bonsoir tous le monde,
    alors je suis lycéen en terminale S et mon prof d'ISN (l'option informatique) nous a donné un dm et j'ai un problème sur lequel je bloque depuis plusieurs heures en vain.

    Je dois créer un programme à partir de fonction pour convertir un décimal en binaire, stocké dans une liste, et à partir d'une autre fonction sortir le binaire de la liste pour en faire un "vrai" nombre.
    Mon problème est que ma liste affiche "None" une fois que le while s'arrête.

    Si vous pouviez me dire où se trouve mon erreur je vous remercierai énormément.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    liste = list() 															
     
    def conversion_dec_bin(ndec): 											
        quotient = -1  														
        while quotient != 0: 												
            quotient = ndec // 2 
            reste = ndec % 2
            liste.append(reste)
            ndec = quotient
        print(liste)
        affichage_binaire
     
    def affichage_binaire(nbin):
    	for i in range(len(liste)):
    		nbin = nbin, +str, liste[i]
    	print(nbin)
     
    print conversion_dec_bin(input("Inserez le nombre a convertir : "))

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 677
    Par défaut
    Salut,

    Citation Envoyé par SevenBeats Voir le message
    Mon problème est que ma liste affiche "Non" une fois que le while s'arrête.
    La liste n'affiche rien, c'est l'instruction "print" qui affiche.
    Dans votre code, il y en a 2.
    Le premier qui affiche la liste et le second qui affiche le retour de la fonction "conversion_dec_bin".
    Et comme cette fonction ne retourne rien, Python lui fait retourner None par défaut.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2017
    Messages : 3
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Et comme cette fonction ne retourne rien, Python lui fait retourner None par défaut.

    - W
    Merci pour ta réponse, mais le problème est que quand je veux utiliser ma liste, elle semble être vide, je souhaiterai la transférer dans une autre variable contenant une chaîne de caractères, d'où mon for, mais je n'y parvenais pas

  4. #4
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 970
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 970
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nbin = nbin, +str, liste[i]
    Bizarre cette synthaxe, pas certain que ça passe avec les ",".

    Tu peux serialiser une liste comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    my_list = [ "salut", " ceci ", " est un exemple" ]
    my_str = "".join(str(i) for i in my_list)
    print(my_list)
    print(my_str)

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 677
    Par défaut
    Citation Envoyé par SevenBeats Voir le message
    Merci pour ta réponse, mais le problème est que quand je veux utiliser ma liste, elle semble être vide, je souhaiterai la transférer dans une autre variable contenant une chaîne de caractères, d'où mon for, mais je n'y parvenais pas
    "elle semble être vide": le premier "print" doit vous montrer qu'elle ne l'est pas.
    Et je ne comprends pas ce que vous voulez dire par: "la transférer dans une autre variable contenant une chaîne de caractères"
    N'oubliez pas que vous avez de bons tutos pour apprendre, ils vous donnent non seulement les bases mais aussi un ensemble de termes techniques qui permettent d'être plus précis.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2017
    Messages : 3
    Par défaut
    Citation Envoyé par hotcryx Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nbin = nbin, +str, liste[i]
    Bizarre cette synthaxe, pas certain que ça passe avec les ",".

    Tu peux serialiser une liste comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    my_list = [ "salut", " ceci ", " est un exemple" ]
    my_str = "".join(str(i) for i in my_list)
    print(my_list)
    print(my_str)
    Merci pour ta réponse, visiblement ma première fonction n'appelle pas ma seconde et ma liste semble rester vide je ne comprend pas :/





    Citation Envoyé par wiztricks Voir le message
    "elle semble être vide": le premier "print" doit vous montrer qu'elle ne l'est pas.
    Et je ne comprends pas ce que vous voulez dire par: "la transférer dans une autre variable contenant une chaîne de caractères"
    N'oubliez pas que vous avez de bons tutos pour apprendre, ils vous donnent non seulement les bases mais aussi un ensemble de termes techniques qui permettent d'être plus précis.

    - W
    Oui désolé si je n'utilise pas les bons termes, en fait mon professeur me demande ceci :
    "-une fonction conversion_dec_bin(ndec) qui renvoit dans une liste le résultat de la conversion du nombre entier ndec
    -une fonction affichage_binaire(nbin) qui affiche correctement le nombre binaire nbin contenu dans une liste"

  7. #7
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 677
    Par défaut
    Citation Envoyé par SevenBeats Voir le message
    Oui désolé si je n'utilise pas les bons termes, en fait mon professeur me demande ceci :
    "-une fonction conversion_dec_bin(ndec) qui renvoit dans une liste le résultat de la conversion du nombre entier ndec
    -une fonction affichage_binaire(nbin) qui affiche correctement le nombre binaire nbin contenu dans une liste"
    Pour l'instant, votre première fonction ne renvoie/retourne rien du tout.
    Quand à la seconde, il n'y a même pas de "print" dedans alors pour afficher quelque chose c'est pas gagné.
    Ces trucs là sont des trucs de base racontés dans les tutos.
    Prenez le temps de regarder ce qu'ils contiennent, dans la suite, çà vous aidera de pouvoir relire le chapitre qui parle de... lorsque vous aurez des soucis.
    Pour le reste, l'intérêt des exercices, c'est de vous forcer à apprendre à coder i.e. essayer de vous poser de bonnes questions lorsque le code que vous avez écrit ne fonctionne pas. Si on vous donne la solution çà n'a aucun intérêt et pour l'instant, je ne vois pas de "bonne question".

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Problème avec paramètre d'une fonction (classe)
    Par clement.analogue dans le forum Langage
    Réponses: 8
    Dernier message: 23/03/2010, 08h13
  2. [XL-2003] Problème avec utilisation d'une fonction dans les formules
    Par damsmut dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/05/2009, 10h43
  3. Problème avec structure dans une fonction
    Par Saliman dans le forum C
    Réponses: 2
    Dernier message: 22/11/2007, 11h45
  4. Réponses: 12
    Dernier message: 02/04/2007, 16h17
  5. [PL SQL] Problème avec 'case' dans une fonction
    Par divail dans le forum Oracle
    Réponses: 14
    Dernier message: 13/03/2006, 15h50

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