Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > fr.comp.lang.python > #3635

Re: Python, angles et heures. Datetime ?

Path csiph.com!newsfeed.xs4all.nl!newsfeed7.news.xs4all.nl!news.uzoreto.com!aioe.org!NmhHF3GLbzxJR67/r10DhQ.user.46.165.242.75.POSTED!not-for-mail
From Alain Ketterlin <alain@universite-de-strasbourg.fr.invalid>
Newsgroups fr.comp.lang.python
Subject Re: Python, angles et heures. Datetime ?
Date Mon, 15 Nov 2021 17:52:52 +0100
Organization Université de Strasbourg
Message-ID <87a6i5icnv.fsf@universite-de-strasbourg.fr.invalid> (permalink)
References <smr8cc$78l$1@gioia.aioe.org> <87ee7iilg8.fsf@universite-de-strasbourg.fr.invalid> <smsu5t$k3i$1@gioia.aioe.org>
Mime-Version 1.0
Content-Type text/plain; charset=utf-8
Content-Transfer-Encoding quoted-printable
Injection-Info gioia.aioe.org; logging-data="36107"; posting-host="NmhHF3GLbzxJR67/r10DhQ.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)
X-Notice Filtered by postfilter v. 0.9.2
Cancel-Lock sha1:dC/BZSfAoYjr3KFqjB6vI2J5pno=
Xref csiph.com fr.comp.lang.python:3635

Show key headers only | View raw


Dominique <zzz@aol.com.invalid> writes:

[...]
> Je pensais renforcer mon script avec tes lignes :
>
> if d < 360 and m < 60 and s < 60:
>               return d,m,s
> else:
>               return None
>
> mais il me faudrait distinguer les heures (maxi 24) des angles...
> Placer un modulo derrière demanderait de distinguer l'un de l'autre...
> Le modulo interviendra dans le travail au-delà.

Je pense que cela mérite deux fonctions différentes (et aussi deux
regexp différentes). Je ne pense pas qu'il y ait quelque chose à gagner
à combiner les deux en une.

> Ce que j'ignore, c'est le comportement de re.compile... À quoi sert-il ?

La raison est un peu théorique. En fait, l'analyse d'un texte par
rapport à une expression régulière se fait en deux étapes :

1) l'expression régulière est transformée en un automate fini équivalent
(d'abord non-déterministe, puis déterministe)

2) l'automate est utilisé pour dire si le texte fourni correspond ou pas
à l'expression régulière/automate

La première étape prend en général beaucoup plus de temps que la seconde
(qui est aussi rapide que possible puisqu'elle examine chaque caractère
une seule fois). Donc, si ton code fait beaucoup d'appels à
match()/matchfull()/etc. avec la même expression régulière, il est
possible de faire une seule fois la première étape, puisqu'elle dépend
seulement de l'expression régulière. C'est ce que fait re.compile(). En
résumé :

- re.match (regex, texte) -> étapes 1 et 2
- dfa = re.compile (regex) -> étape 1
- dfa.match (texte) -> étape 2

Le gain de temps d'exécution en cas de réutilisation est en général
substantiel. D'ailleurs, c'est tellement vrai que le module re le fait
tout seul maintenant (il garde en mémoire les dernières expressions
régulières avec leur automate, pour éviter d'avoir à refaire la première
étape).

-- Alain.

Back to fr.comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Python, angles et heures. Datetime ? Dominique <zzz@aol.com.invalid> - 2021-11-14 16:01 +0100
  Re: Python, angles et heures. Datetime ? Alain Ketterlin <alain@universite-de-strasbourg.fr.invalid> - 2021-11-14 20:30 +0100
    Re: Python, angles et heures. Datetime ? Dominique <zzz@aol.com.invalid> - 2021-11-15 07:19 +0100
      Re: Python, angles et heures. Datetime ? Alain Ketterlin <alain@universite-de-strasbourg.fr.invalid> - 2021-11-15 17:52 +0100
        Re: Python, angles et heures. Datetime ? Olivier Miakinen <om+news@miakinen.net> - 2021-11-15 17:59 +0100
          Re: Python, angles et heures. Datetime ? Dominique <zzz@aol.com.invalid> - 2021-11-15 19:23 +0100
          Re: Python, angles et heures. Datetime ? Alain Ketterlin <alain@universite-de-strasbourg.fr.invalid> - 2021-11-15 20:59 +0100
  Re: Python, angles et heures. Datetime ? Damien Wyart <damien.wyart@free.fr> - 2021-11-15 16:22 +0100
    Re: Python, angles et heures. Datetime ? Dominique <zzz@aol.com.invalid> - 2021-11-16 06:28 +0100

csiph-web