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 :

besoin d'aide pour Tp a rendre


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2022
    Messages : 4
    Points : 0
    Points
    0
    Par défaut besoin d'aide pour Tp a rendre
    bonjour a tous ,

    j'aurai besoin d'aide pour mon script en python .

    je dois convertir 2 décimal en binaire puis additionner les 2 en binaire ( je dois pas utliser bin() etc

    les 2 parties de manière distincte fonctionne

    mon problème et que j'arrive pas à récupérer le résultat des fonctions nbrtodecimal(nbrx) dans des tableaux respectifs qui sera utiliser pour la 2 ieme partie j'ai essayer nbr1.append() en vain

    je vous remercie infiniment de votre aide d'avance

    [CODE]

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 985
    Points
    30 985
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par wfire Voir le message
    je dois convertir 2 décimal en binaire puis additionner les 2 en binaire ( je dois pas utliser bin() etc
    Explique-moi pourquoi tu crées deux fonctions def nbr1ToBinaire(nbr1) et def nbr2ToBinaire(nbr2) faisant toutes deux exactement la même chose? Si demain tu dois convertir 5000 nombres tu créeras 5000 fonctions? Tu n'as pas compris le principe des paramètres qu'on transmet aux fonctions leur permettant de faire un même travail sur différents éléments ???
    Donc déjà un code ça se réfléchit

    Citation Envoyé par wfire Voir le message
    mon problème et que j'arrive pas à récupérer le résultat des fonctions nbrtodecimal(nbrx) dans des tableaux respectifs qui sera utiliser pour la 2 ieme partie j'ai essayer nbr1.append() en vain
    append() est une méthode de liste donc elle ne s'applique que pour des listes (si nbr1 n'en est pas une ça ne peut pas fonctionner). Toutefois ton code ne montre pas la fonction "nbrtodecimal()". Mais si elle est écrite comme les fonctions nbrToBinaire() c'est à dire sans renvoyer de résultat, tu ne peux donc pas récupérer un résultat qui n'existe pas...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par wfire Voir le message
    mon problème et que j'arrive pas à récupérer le résultat des fonctions nbrtodecimal(nbrx)
    Pour qu'une fonction retourne quelque chose, il faut qu'elle exécute l'instruction return quelquechose...
    Et pour avoir quelque chance d'exécuter cette instruction, il faut l'écrire et ne pas oublier d'appeler la fonction.

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

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 985
    Points
    30 985
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par wfire Voir le message
    il y a pas de return etc car à chaque fois j'ai 40 erreur
    On ne supprime pas les erreurs en supprimant l'instruction qui les a causées. Si on écrit une instruction c'est qu'on en a besoin et si cette instruction renvoie des erreurs, alors on regarde le pourquoi et on corrige.
    Ta fonction nbrToBinaire() ne retourne rien, elle ne fait qu'afficher les éléments qu'elle calcule. Tu remplacerais print(nbrToBinaire(nbr1)) par nbrToBinaire(nbr1) ça donnerait le même résultat à l'écran car les valeurs affichées ne le sont pas à cet endroit. Pour t'en assurer, t'as qu'à écrire print("résultat :", nbrToBinaire(nbr1)) et tu verras ce que ça affiche (d'abord le binaire puis "résultat :None")

    Donc travaille ta fonction pour qu'elle retourne la valeur binaire du nombre qu'elle reçoit et tous tes soucis disparaitront par ricochet.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2022
    Messages : 4
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    On ne supprime pas les erreurs en supprimant l'instruction qui les a causées. Si on écrit une instruction c'est qu'on en a besoin et si cette instruction renvoie des erreurs, alors on regarde le pourquoi et on corrige.
    Ta fonction nbrToBinaire() ne retourne rien, elle ne fait qu'afficher les éléments qu'elle calcule. Tu remplacerais print(nbrToBinaire(nbr1)) par nbrToBinaire(nbr1) ça donnerait le même résultat à l'écran car les valeurs affichées ne le sont pas à cet endroit. Pour t'en assurer, t'as qu'à écrire print("résultat :", nbrToBinaire(nbr1)) et tu verras ce que ça affiche (d'abord le binaire puis "résultat :None")

    Donc travaille ta fonction pour qu'elle retourne la valeur binaire du nombre qu'elle reçoit et tous tes soucis disparaitront par ricochet.
    oui je sais je l'ai enlevé à l'instant, et oui elle return rien car comme je l'ai dit malgré des return, if len() <8, append() etc j'ai tj des trucs bizarre donc je ne comprend pas

  6. #6
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 985
    Points
    30 985
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par wfire Voir le message
    malgré des return, if len() <8, append() etc j'ai tj des trucs bizarre donc je ne comprend pas
    Nom : alb7-1-400x415.jpg
Affichages : 147
Taille : 62,2 Ko

    Python (comme tous les langages de prog) ce n'est pas une marmite dans laquelle on jette des instructions en vrac en espérant que ça se mélangera comme il faut.
    Créer un algorithme (convertir un décimal en binaire) c'est décomposer le travail en sous-actions de plus en plus simples afin de pouvoir au final avoir des actions tellement simples qu'elles sont alors traduisibles en Python.
    Déjà je me demande bien pourquoi tu as voulu l'écrire en récursif. La récursivité ça demande pas mal d'esprit d'abstraction pour pouvoir se mettre dans l'esprit de chaque sous-appel (ce qu'il reçoit, ce qu'il doit renvoyer et comment ce qu'il renvoie s'intègrera dans le sous-appel précédent).
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2022
    Messages : 4
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Pièce jointe 625953
    Python (comme tous les langages de prog) ce n'est pas une marmite dans laquelle on jette des instructions en vrac en espérant que ça se mélangera comme il faut.
    Créer un algorithme (convertir un décimal en binaire) c'est décomposer le travail en sous-actions de plus en plus simples afin de pouvoir au final avoir des actions tellement simples qu'elles sont alors traduisibles en Python.
    Déjà je me demande bien pourquoi tu as voulu l'écrire en récursif. La récursivité ça demande pas mal d'esprit d'abstraction pour pouvoir se mettre dans l'esprit de chaque sous-appel (ce qu'il reçoit, ce qu'il doit renvoyer et comment ce qu'il renvoie s'intègrera dans le sous-appel précédent).
    car c 'est pas moi qui choisie la manière mais le prof j'ai réussi à bien avancé , il me manque une fonction qui dit si len(lst) inférieur à 8 rajouter des 0 à gauche dans ma liste et tout fonctionnera je suis usée heuresement que c'est coef 1. je lache le code pour ceux qui souhaiterai aidé sans critiquer car bon mise à part 2 com constructif le reste c 'est malheuresement que de la critique gratuitos

  8. #8
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 985
    Points
    30 985
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par wfire Voir le message
    car c 'est pas moi qui choisit la manière mais le prof
    Je ne t'ai pas demandé pourquoi tu l'écris en Python mais pourquoi tu l'écris en récursif. La récursivité n'est pas une matière, c'est une méthode et dans ce cas précis ce n'est pas la plus simple à mettre en oeuvre.

    Citation Envoyé par wfire Voir le message
    il me manque une fonction qui dit si len(lst) inférieur à 8 rajouter des 0 à gauche dans ma liste et tout fonctionnera
    Ah bon, s'il ne manque "que ça" pour que "tout fonctionne"...
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >>> def fillZero(l, *, n=8): return [0,] * (n - len(l)) + l
    ...
    >>> fillZero([1, 2, 3])
    [0, 0, 0, 0, 0, 1, 2, 3]
    >>> fillZero([1, 2, 3, 4])
    [0, 0, 0, 0, 1, 2, 3, 4]
    >>> fillZero([1, 2, 3, 4], n=12)
    [0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4]

    Citation Envoyé par wfire Voir le message
    je lache le code pour ceux qui souhaiteraient aider sans critiquer car bon mise à part 2 com constructif le reste c 'est malheuresement que de la critique gratuitos
    Tu n'as pas compris le sens du verbe "aider" et c'est bien dommage car en réalité tu ne veux pas de l'aide (sous-entendu "aide à le réaliser toi-même"), tu veux juste qu'on te le fasse.
    Ce qui
    • est une tricherie vis à vis de ceux qui le font eux-même
    • fait perdre de sens le but d'un TP qui n'est pas d'avoir un programme totalement inutile et dont tout le monde se bat le steak (ton prof le premier) mais d'arriver à le réaliser
    • ne t'apprendra rien (enfin rien de plus de ce qu'on peut apprendre dans les cours et tutos) et te donnera la fausse illusion que les forums c'est l'équivalent de "allopizzaforum, j'ai un travail pour lequel je suis payé, pouvez-vous me le faire gratuitos pendant que je vais à la plage"
    • même si éventuellement avoir la solution du TP t'aiderait à progresser en Python, tu auras alors pour ça le corrigé du TP donné par le prof. Tu pourras même venir le poster ici pour qu'on te l'explique si tu ne le comprends pas. Et en attendant tu pourras trouver ici des exercices avec corrigés
    • est contraire aux règles

    Les critiques étaient destinées à te faire prendre conscience de ce qui n'allait pas afin de le changer. L'autre solution eût été de ne rien dire du tout, ce qui effectivement aurait fait gagner du temps à tout le monde. N'oublie pas que c'est toi qui veut faire de l'informatique. En tout cas, nous on ne l'oublie pas.

    Mais bon, pour que tu ne partes pas sur une mauvaise impression, je vais quand-même te donner un coup de pouce: (a and not(b) and not(c)) or (not(a) and b and not(c)) or (not(a) and not(b) and c) or (a and b and c) s'écrira tout simplement a^b^c. Bon ben ça ce sont des maths, ça sert parfois...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  9. #9
    Membre expérimenté
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    870
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 870
    Points : 1 522
    Points
    1 522
    Billets dans le blog
    4
    Par défaut
    Bonjour,
    @Sve@r: Tu as oublié celles-ci:
    je lâche le code pour ceux qui souhaiteraient aider sans critiquer car bon mise à part 2 com constructives le reste c 'est malheureusement que de la critique gratuitos
    #Rien de nouveau sous le soleil, tout est vanité comme courir après le vent!
    Developpement pour Android avec Python3/Kivy/Buildozer

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2022
    Messages : 4
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Je ne t'ai pas demandé pourquoi tu l'écris en Python mais pourquoi tu l'écris en récursif. La récursivité n'est pas une matière, c'est une méthode et dans ce cas précis ce n'est pas la plus simple à mettre en oeuvre.


    Ah bon, s'il ne manque "que ça" pour que "tout fonctionne"...
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >>> def fillZero(l, *, n=8): return [0,] * (n - len(l)) + l
    ...
    >>> fillZero([1, 2, 3])
    [0, 0, 0, 0, 0, 1, 2, 3]
    >>> fillZero([1, 2, 3, 4])
    [0, 0, 0, 0, 1, 2, 3, 4]
    >>> fillZero([1, 2, 3, 4], n=12)
    [0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4]


    Tu n'as pas compris le sens du verbe "aider" et c'est bien dommage car en réalité tu ne veux pas de l'aide (sous-entendu "aide à le réaliser toi-même"), tu veux juste qu'on te le fasse.
    Ce qui
    • est une tricherie vis à vis de ceux qui le font eux-même
    • fait perdre de sens le but d'un TP qui n'est pas d'avoir un programme totalement inutile et dont tout le monde se bat le steak (ton prof le premier) mais d'arriver à le réaliser
    • ne t'apprendra rien (enfin rien de plus de ce qu'on peut apprendre dans les cours et tutos) et te donnera la fausse illusion que les forums c'est l'équivalent de "allopizzaforum, j'ai un travail pour lequel je suis payé, pouvez-vous me le faire gratuitos pendant que je vais à la plage"
    • même si éventuellement avoir la solution du TP t'aiderait à progresser en Python, tu auras alors pour ça le corrigé du TP donné par le prof. Tu pourras même venir le poster ici pour qu'on te l'explique si tu ne le comprends pas. Et en attendant tu pourras trouver ici des exercices avec corrigés
    • est contraire aux règles

    Les critiques étaient destinées à te faire prendre conscience de ce qui n'allait pas afin de le changer. L'autre solution eût été de ne rien dire du tout, ce qui effectivement aurait fait gagner du temps à tout le monde. N'oublie pas que c'est toi qui veut faire de l'informatique. En tout cas, nous on ne l'oublie pas.

    Mais bon, pour que tu ne partes pas sur une mauvaise impression, je vais quand-même te donner un coup de pouce: (a and not(b) and not(c)) or (not(a) and b and not(c)) or (not(a) and not(b) and c) or (a and b and c) s'écrira tout simplement a^b^c. Bon ben ça ce sont des maths, ça sert parfois...

    alors oui il me manquait que ça pour que cela fonctionne avec while fait se matin , et non en aucun cas je voulais qu'on le fasse à ma place, aider à mes yeux = avoir un fonctionnement litéraire pour comprendre la logique puisque ayant eu seulement 6 h de cours en tout pas évidement. en tt cas je vous remercie pour votre non médisance je laisse au pro de l'ortho de corriger. je me rencontre que ce forum et digne des années 2000
    concernant les maths sont application dans un langage inconnu et loin d'être evidente.
    sur ce je vous dit tchao

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

Discussions similaires

  1. besoin d'aide pour une requête
    Par Damien69 dans le forum Langage SQL
    Réponses: 11
    Dernier message: 31/03/2004, 15h38
  2. besoin d'aide pour le composant DBComboBox
    Par jane2002 dans le forum Bases de données
    Réponses: 8
    Dernier message: 28/02/2004, 19h01
  3. [Kylix] besoin d'aide pour installer kylix3
    Par Sph@x dans le forum EDI
    Réponses: 3
    Dernier message: 11/02/2004, 13h53
  4. [TP]besoin d'aide pour commandes inconnues
    Par Upal dans le forum Turbo Pascal
    Réponses: 15
    Dernier message: 03/10/2002, 10h48
  5. Besoin d'aide pour l'I.A. d'un puissance 4
    Par Anonymous dans le forum C
    Réponses: 2
    Dernier message: 25/04/2002, 17h05

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