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 :

Y a t'il une autre façon d'ecrire ce code ? [Python 3.X]


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 25
    Points : 24
    Points
    24
    Par défaut Y a t'il une autre façon d'ecrire ce code ?
    Bonjour,

    Comme le titre le dit, je voudrai savoir s'il y a une autre façon d'écrire le code ci-dessous par exemple en utilisant la fonction f.readlines implementer dans un sys.argv ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    def afficherTitre(texte,largeur) :
    	for elt in texte :
    		if len(elt)>largeur :
    			largeur=len(elt)
    	print("*"*(largeur+4))
    	for elt in texte :
    		print("*", elt.center(largeur), "*")
    	print("*"*(largeur+4))
     
     
     
    if __name__ == "__main__" :
    	afficherTitre([ "texte", "texte2", "texte3" ], largeur)
    Merci d'avance !

  2. #2
    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,

    Pour trouver le mot de plus grande longueur, tu peux simplifier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    >>> l = ['gtrf', 'hrg', 'lokijuyhgt', 'nh']
    >>> max(l, key=len)
    'lokijuyhgt'
    Pour les print, ça me semble déjà simple comme ça.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 25
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par VinsS Voir le message
    Salut,

    Pour trouver le mot de plus grande longueur, tu peux simplifier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    >>> l = ['gtrf', 'hrg', 'lokijuyhgt', 'nh']
    >>> max(l, key=len)
    'lokijuyhgt'
    Pour les print, ça me semble déjà simple comme ça.
    Bonjour VinsS,

    En fait ce n'est pas pour trouver la longueur du plus grand mot, c'est un exercice d'affichage qui doit me retourner le texte border par "*".

    Mais sinon merci !

    Bonne journée

  4. #4
    Membre averti Avatar de cervo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2012
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 220
    Points : 388
    Points
    388
    Par défaut

    je comprends pas l'utilité de la fonction... tu peux expliquer le fonctionnement que tu attends ?
    Toute chose dépend de la valeur qu'on lui attribue !

  5. #5
    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
    Citation Envoyé par Nyctophile Voir le message

    En fait ce n'est pas pour trouver la longueur du plus grand mot
    Ben si.

    Que pense-tu faire avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                for elt in texte :
    		if len(elt)>largeur :
    			largeur=len(elt)
    sinon chercher le mot de plus grande longueur ?

    Bien sur mon exemple donne le mot, et tu veux le chiffre, mais je me suis dis que cette étape te serait triviale.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 25
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par VinsS Voir le message
    Ben si.

    Que pense-tu faire avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                for elt in texte :
    		if len(elt)>largeur :
    			largeur=len(elt)
    sinon chercher le mot de plus grande longueur ?

    Bien sur mon exemple donne le mot, et tu veux le chiffre, mais je me suis dis que cette étape te serait triviale.

    Je m'attend a quelque chose de ce genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    afficherTitre([ "texte1", "texte2", "texte3" ], 3)
    produit l’affichage de
    ************
    *  texte1  *
    *  texte2  *
    *  texte3  *
    ************

  7. #7
    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
    Nous sommes d'accord là-dessus.

    Ta fonction se divise en deux blocs:
    1. Connaître la longueur du mot le plus long
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    def afficherTitre(texte,largeur) :
    	for elt in texte :
    		if len(elt)>largeur :
    			largeur=len(elt)
    pour ça, je t'ai montré comment l'écrire en une ligne.

    2. Afficher le texte dans un cartouche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    	print("*"*(largeur+4))
    	for elt in texte :
    		print("*", elt.center(largeur), "*")
    	print("*"*(largeur+4))
    là, je ne vois pas ce que tu peux faire de plus simple.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 25
    Points : 24
    Points
    24
    Par défaut
    Super merci VinsS !

    Bonne journée!

  9. #9
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Bonsoir,
    J'ajoute mon grain de sel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    def afficherTitre(texte,largeur) :
        largeur = max(map(len, texte))
     
        aff = ["*"*(largeur+4)]
        aff = aff + ["* " + elt.center(largeur) + " *" for elt in texte] + aff
        print(*aff, sep="\n")
    Clodion

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

Discussions similaires

  1. Une autre façon d'écrire ma requête
    Par cmako dans le forum Développement
    Réponses: 7
    Dernier message: 26/02/2009, 16h16
  2. Ecrire une méthode d'une autre façon
    Par Sabact dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 06/05/2008, 08h17
  3. Une autre façon de compter les pages d'un document word
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/05/2007, 12h53
  4. [JavaScript] [FAQ] une autre façon de faire des tableaux à coins arrondis
    Par SpaceFrog dans le forum Contribuez
    Réponses: 6
    Dernier message: 10/01/2007, 09h35
  5. Imbriquer une méthode dans une autre façon php
    Par titpuce dans le forum Langage
    Réponses: 6
    Dernier message: 09/10/2006, 10h56

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