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 :

Souci de print


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2020
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Souci de print
    Bonjour,
    Je dois réaliser un projet de groupe en python et je suis confronté à un souci de type pratique
    J'ai un programme, celui nommé arc qui doit me renvoyer la longueur d'un arc de cercle en fonction de 2 variables. Cela ce fait sans souci.
    Cependant je dois ensuite créer un programme , celui nommé pdv qui me renvoie un graphe en faisant varier la variable r et en fixant la variable n du programme arc.
    Mon souci est que dans mon programme arc j'ai un print et que celui ci ressort dans ma console pour chaque calcul dans le programme pdv ( c'est à dire 500 fois) alors qu'il ne me servent à rien étant donné que je veux juste sortir un graphe.

    Est ce qu'il y a un moyen de faire en sorte que les prints s'affichent dans la console pour le programme arc mais pas pour le programme pdv ?
    (Par exemple une commande permettant d'annuler les prints d'un programme )

    Vous trouverez en pièces jointes une capture du programme et une capture de la console après calcul de pdv ( je voudrais que toutes ces lignes n'apparaissent pas )

    Merci d'avance pour vos retours
    Images attachées Images attachées   

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2020
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    voici les pièces jointes
    Images attachées Images attachées   

  3. #3
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Ton code ne semble pas cohérent, dans ta boucle for i in range(nb_ang): tu as un return(x) qui s'exécutera à la première itération.

    On ne voit pas où la fonction pdv est appelée.

  4. #4
    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 jtesson Voir le message
    Est ce qu'il y a un moyen de faire en sorte que les prints s'affichent dans la console pour le programme arc mais pas pour le programme pdv ?
    (Par exemple une commande permettant d'annuler les prints d'un programme )
    Une fonction n'est pas un "programme" et apprendre à bien nommer les choses est important.

    Si je pars de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def f():
          print('123')
    et que je veuille rendre le print optionnel, on peut le passer en paramètre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def f(print=print):
          print('123')
    et l'appeler avec une fonction qui ne fait rien de ce qu'on lui donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    def g(*args, **kwds):
          pass
     
    f(print=g)
    Vous voyez qu'on se fout pas mal d'arc et de pdv (pourquoi vous faites ce code) on parle juste de fonctions et de paramètres.

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

  5. #5
    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 984
    Points
    30 984
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par jtesson Voir le message
    Mon souci est que dans mon programme arc j'ai un print et que celui ci ressort dans ma console pour chaque calcul dans le programme pdv ( c'est à dire 500 fois) alors qu'il ne me servent à rien étant donné que je veux juste sortir un graphe.

    Est ce qu'il y a un moyen de faire en sorte que les prints s'affichent dans la console pour le programme arc mais pas pour le programme pdv ?
    Non. Si tu as un print() dans une fonction, celui-ci s'affichera à l'écran chaque fois que la fonction est appelée et ça c'est incontournable. Après bien entendu tu as les outils de l'OS. Sous Linux par exemple tu peux rediriger les flux écran du programme appelé dans /dev/null (l'équivalent d'un flux sortie mais poubellisé) mais ce n'est plus du Python.
    Ta grosse erreur a été de mélanger "traitement" et "affichage" et maintenant tu ne peux plus dissocier l'un de l'autre.

    Il existe une technique de développement qui permet d'éviter ce genre de désagrément bien connu: la programmation MVC. Elle consiste à dissocier les grands domaines d'un programme. Et c'est quoi ces grands domaines, ce sont
    • le modèle, c'est à dire les outils de stockage de l'information (fichier, bdd, cloud,...)
    • la vue, c'est à dire la façon dont les données entrent (clavier, réseau, ...) et sortent (écran, imprimante, mail, ...)
    • le controleur, c'est à dire la façon dont les données sont utilisées et calculées pour générer le résultat

    En séparant les fonctions dédiées à chacun de ces domaines, il est alors généralement pas trop difficile quand l'un deux évolue (un fichier devient bdd) de ne modifier que la fonction concernée.
    Tu aurais dédié ta fonction arc() au seul calcul de l'arc (controleur), tu n'aurais pas eu ce souci devenu ici impossible à résoudre.

    Dans la même optique, si une fonction doit retourner une info signifiant "ça n'a pas pu se faire", il est plus usuel de lui faire retourner False, None, -1 (enfin ça dépend de la nature de la valeur attendue) et c'est l'appelant qui utilise cette info pour afficher un résultat, plutôt que ce return "Il n'y aucun point de vue, choisissez autre chose" qui n'a de sens que pour un humain et qui ne pourra jamais être utilisé dans un traitement automatisé.
    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]

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/02/2003, 12h16
  2. Print et Preview d'un rapport Rave
    Par joebarthib dans le forum Rave
    Réponses: 4
    Dernier message: 19/12/2002, 14h46
  3. Réponses: 2
    Dernier message: 03/10/2002, 17h24
  4. [CR] Print Engine error text
    Par afaraji dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 03/09/2002, 15h44
  5. Probleme d'impression avec la méthode TForm->Print()
    Par Kid Icarus dans le forum C++Builder
    Réponses: 13
    Dernier message: 31/07/2002, 14h26

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