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 :

Best practice python


Sujet :

Python

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 8
    Par défaut Best practice python
    Bonjour,

    j'ai créé une fonction qui récupère une date de début, date de fin et calcule chaque date entre les deux sans les samedis.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        def date_range(date_from, date_to):
            DATETIME_FORMAT = "%Y-%m-%d"
            date_from = datetime.datetime.strptime(date_from, DATETIME_FORMAT)
            date_to = datetime.datetime.strptime(date_to, DATETIME_FORMAT)
            r = (date_to+datetime.timedelta(days=1)-date_from).days
            return [date_from+datetime.timedelta(days=i) for i in range(r) if (date_from+datetime.timedelta(days=i)).weekday() != 5]
    Deux questions :
    Mon écriture est-elle une bonne pratique pour python?
    Quel est le code le plus simple pour enlever les samedis et dimanches entre les deux dates?

    Merci d'avance
    Laurent

  2. #2
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Par défaut
    Salut,

    Dans les bonnes pratiques, c'est bien de poster un code minimal autonome. Sinon j'aime bien ton écriture. Je trouve juste que les comprehension lists nuisent à la lisibilité du code, mais c'est tout à fait personnel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    import datetime
     
    def date_range(date_from, date_to, excluded_days=[]):
        DATETIME_FORMAT = "%Y-%m-%d"
        date_from = datetime.datetime.strptime(date_from, DATETIME_FORMAT)
        date_to = datetime.datetime.strptime(date_to, DATETIME_FORMAT)
        r = (date_to+datetime.timedelta(days=1)-date_from).days    
        return [date_from+datetime.timedelta(days=i) for i in range(r) if not (date_from+datetime.timedelta(days=i)).weekday() in excluded_days]
     
    datelist = date_range("2011-01-01", "2011-01-31", [1])
    print len(datelist), datelist
    datelist = date_range("2011-01-01", "2011-01-31", [1, 2])
    print len(datelist), datelist

Discussions similaires

  1. Réponses: 11
    Dernier message: 16/06/2006, 13h46
  2. swing best practices.
    Par bbclone dans le forum AWT/Swing
    Réponses: 13
    Dernier message: 07/06/2006, 10h14
  3. Réponses: 4
    Dernier message: 23/05/2006, 14h22

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