Programmation python 7

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

Quel patron de conception est approprié lorsqu'une classe ne doit pas être instanciée plusieurs fois dans une bibliothèque graphique?

  • Observer/Observable
  • Composite
  • Aucune des réponses ci-dessus
  • Singleton (correct)

Dans le patron de conception Observable, la méthode notify_all() doit être ré-implémentée dans chaque classe qui étend la classe Observable.

False (B)

Lors de la composition d'objets ValueProvider avec CompositeValueProvider en utilisant l'opérateur +, où faut-il implémenter la méthode spécifique pour que v1 + v2 renvoie un objet CompositeValueProvider?

  • Dans la classe `object`
  • Dans la classe `CompositeValueProvider`
  • Dans la classe `ValueProvider` (correct)
  • Aucune des réponses précédentes
  • Dans toutes les classes qui héritent directement de `ValueProvider`

Comment les dates et les heures sont-elles généralement représentées en programmation, notamment pour les événements et les journaux?

<p>Nombres entiers (secondes depuis epoch : timestamp)</p> Signup and view all the answers

En Python, pour manipuler une information de type « date et heure », on utilise un objet ______.

<p>datetime</p> Signup and view all the answers

Quelles informations sont obligatoires lors de la construction d'un objet datetime en spécifiant les informations séparément?

<p>Année, mois, jour (A)</p> Signup and view all the answers

Il est possible de mélanger et de comparer des objets datetime contenant des informations de fuseau horaire (aware) avec des objets datetime sans information de fuseau horaire (naïve).

<p>False (B)</p> Signup and view all the answers

Associez les directives strftime avec leur signification:

<p>%d = Le numéro du jour du mois %m = Le numéro du mois de l'année %Y = L'année complète %H = L'heure du jour (format 24 heures)</p> Signup and view all the answers

Quelle méthode d'instance permet de modifier un objet datetime ou timedelta en renvoyant une copie modifiée sans changer l'objet original?

<p>replace() (B)</p> Signup and view all the answers

Pour formater un objet datetime en une chaîne de caractères, on utilise la méthode ______.

<p>strftime</p> Signup and view all the answers

Soustraire deux objets datetime résulte en un objet du type date.

<p>False (B)</p> Signup and view all the answers

Lorsque vous ajoutez ou soustrayez un objet timedelta à un objet datetime, quel est le type de l'objet résultant?

<p>datetime (B)</p> Signup and view all the answers

Comment les jours de la semaine sont-ils comptés lors de l'utilisation de la méthode weekday()?

<p>0 à 6</p> Signup and view all the answers

Pour obtenir le timestamp correspondant à un objet datetime (nombre de secondes), on utilise la méthode ______().

<p>timestamp</p> Signup and view all the answers

La conversion et la concaténation de chaînes de caractères avec des variables en Python sont considérées comme très lisibles et flexibles.

<p>False (B)</p> Signup and view all the answers

Associez les séquences d'échappement avec leur signification:

<p>\n = Saut de ligne ASCII (LF) \t = Tabulation horizontale ASCII (TAB) \ = Barre oblique inversée () &quot; = Guillemet double (&quot;)</p> Signup and view all the answers

Quelle est la fonction principale des f-strings en Python?

<p>Exécuter des expressions pour former une chaîne de caractères. (A)</p> Signup and view all the answers

Dans une f-string, les expressions sont insérées entre ______.

<p>accolades</p> Signup and view all the answers

Dans une f-string, l'option de conversion '!s' est utilisée pour représenter l'expression comme un entier.

<p>False (B)</p> Signup and view all the answers

Comment spécifie-t-on les options de formatage dans une f-string après avoir inséré une expression et une conversion?

<p>Avec <code>:</code></p> Signup and view all the answers

Quel patron de conception assure qu'une classe ne peut avoir qu'une seule instance?

<p>Singleton (D)</p> Signup and view all the answers

Dans le patron Observable, la méthode notify_all() doit être ré-implémentée dans chaque classe qui étend la classe observable.

<p>True (A)</p> Signup and view all the answers

Pour que l'opération v1 + v2 renvoie un objet CompositeValueProvider composé de v1 et v2, où faut-il implémenter la méthode __add__?

<p>Directement dans la classe <code>ValueProvider</code> (A)</p> Signup and view all the answers

Comment appelle-t-on le nombre de secondes écoulées depuis l'époque (01/01/1970 UTC)?

<p>Timestamp</p> Signup and view all the answers

Quelle méthode de la classe datetime est utilisée pour obtenir l'heure actuelle?

<p><code>datetime.now()</code> (D)</p> Signup and view all the answers

La méthode datetime.strptime() permet de créer un objet datetime à partir d'une ______ de caractères.

<p>chaîne</p> Signup and view all the answers

Il est possible de comparer directement un objet datetime 'aware' avec un objet datetime 'naïf'.

<p>False (B)</p> Signup and view all the answers

Quel module Python est recommandé pour manipuler facilement les fuseaux horaires?

<p>zoneinfo (D)</p> Signup and view all the answers

Dans la fonction strptime(date_str, format), que représente l'argument format?

<p>La chaîne de caractères décrivant le format de la date et l'heure dans date_str</p> Signup and view all the answers

Associez chaque directive de formatage strptime à sa signification:

<p>%d = Numéro du jour du mois %m = Numéro du mois de l'année %Y = Année complète %H = Heure du jour (format 24 heures)</p> Signup and view all the answers

Quelle méthode permet de modifier un objet datetime en retournant une copie modifiée sans altérer l'objet original?

<p><code>replace()</code> (D)</p> Signup and view all the answers

L'opération de soustraction de deux objets datetime résulte en un objet de type timedelta.

<p>True (A)</p> Signup and view all the answers

Sachant que les jours de la semaine sont comptés de 0 à 6, à quel jour correspond le numéro 0?

<p>Lundi (B)</p> Signup and view all the answers

Quel est le rôle des directives dans une chaîne de formatage de date et heure, comme %d/%m/%Y?

<p>Indiquent comment représenter les différentes parties de la date (jour, mois, année, etc.)</p> Signup and view all the answers

Dans une f-string, on peut uniquement insérer des expressions simples et non des f-strings imbriquées.

<p>False (B)</p> Signup and view all the answers

Quelle est la fonction de l'option de conversion !s dans une f-string?

<p>Convertit l'expression en chaîne de caractères (str()). (B)</p> Signup and view all the answers

Dans les f-strings, les expressions à évaluer sont placées entre ______.

<p>accolades</p> Signup and view all the answers

Quelle est la signification de la séquence d'échappement \n?

<p>Saut de ligne (D)</p> Signup and view all the answers

Avec les f-strings, la conversion et la concaténation sont plus flexibles et lisibles qu'avec l'ancienne méthode utilisant l'opérateur %.

<p>True (A)</p> Signup and view all the answers

Flashcards

Singleton (Patron de conception)

Assure qu'une classe n'a qu'une seule instance et fournit un point d'accès global à cette instance.

notify_all() dans Observable

Dans le patron Observable, cette méthode notifie tous les objets Observer qui observent l'objet Observable.

Méthode add(self, other)

Méthode spéciale à implémenter pour définir le comportement de l'addition (+) entre deux objets d'une classe donnée.

Représentation des dates et heures

Représenter les dates et heures comme des nombres entiers (secondes depuis l'époque) ou des nombres à virgule flottante (granularité plus fine).

Signup and view all the flashcards

Module datetime

Module Python fournissant des classes pour manipuler les dates et heures (date, time, timedelta, datetime).

Signup and view all the flashcards

datetime.now()

Retourne la date et l'heure actuelles.

Signup and view all the flashcards

datetime.fromtimestamp()

Crée un objet datetime à partir d'un timestamp (nombre de secondes depuis l'époque).

Signup and view all the flashcards

datetime.strptime()

Crée un objet datetime à partir d'une chaîne de caractères en utilisant un format spécifié.

Signup and view all the flashcards

Obtenir des informations avancées

Les opérations sur les objets ‘datetime’ permettent d'obtenir des informations avancées comme le jour de la semaine.

Signup and view all the flashcards

Méthode date() / time()

Méthode permettant d'extraire une simple date ou heure à partir d'un objet datetime.

Signup and view all the flashcards

Méthode timestamp()

Renvoie le timestamp correspondant (nombre de secondes depuis l'époque) d'un objet datetime.

Signup and view all the flashcards

Méthode d'instance replace()

Modifier des objets ‘datetime’ ou ‘timedelta’ se fait via la méthode replace().

Signup and view all the flashcards

strftime()

Fonction pour formater un objet ‘datetime’ en chaîne de caractères selon un format spécifié.

Signup and view all the flashcards

Objet ‘timedelta’

La soustraction de deux objets ‘datetime’ retourne un objet ‘timedelta’.

Signup and view all the flashcards

f-strings

f-strings permettent d'insérer des expressions directement dans une chaîne de caractères. On précède la chaîne par 'f'.

Signup and view all the flashcards

Directives de formatage

Caractères spéciaux utilisés dans les chaînes de formatage pour représenter différents composants d'une date ou d'une heure.

Signup and view all the flashcards

Informations avancées (datetime)

Pour obtenir le jour de la semaine, etc.

Signup and view all the flashcards

date() / time()

Méthode pour extraire la date ou l'heure d'un objet datetime.

Signup and view all the flashcards

timestamp()

Retourne le nombre de secondes depuis l'epoch pour un objet datetime.

Signup and view all the flashcards

Méthode .replace()

Pour modifier des objets ‘datetime’ ou ‘timedelta’.

Signup and view all the flashcards

Fonction strftime()

Formater un objet datetime en chaîne de caractères.

Signup and view all the flashcards

Objet timedelta

Représente la différence entre deux objets datetime.

Signup and view all the flashcards

Singleton

Un patron de conception qui assure qu'une classe n'a qu'une seule instance.

Signup and view all the flashcards

Study Notes

Instruction : Date et heure

  • La gestion des dates, des heures et du temps pose souvent problème, en particulier pour les événements et les journaux.
  • Les dates et heures sont généralement représentées par :
    • Nombres entiers (int, secondes depuis l’époque : horodatage)
    • Nombres à virgule flottante (float, idem mais avec une granularité plus fine au-delà de la seconde)
    • Chaînes de caractères (str, lisibles par l’humain)
  • Python utilise en natif des objets structurés qui offrent des fonctionnalités de base (conversion, comparaison, arithmétique). – date, time, timedelta et datetime, définis dans le module datetime (la classe s’appelle datetime.datetime).

Bases et création

  • Pour manipuler les données de type « date et heure », on utilise un objet datetime.
  • Il existe plusieurs façons de construire un tel objet :
    • datetime.now() [méthode de classe/statique] renvoie la date et l’heure actuelles.
    • datetime.datetime(year, month, day, hour=0, minute=0, second=0,...) [constructeur] crée un objet en précisant les informations de date et heure séparément. Année, mois et jour sont obligatoires. Heures, minutes et secondes sont facultatives et ont une valeur par défaut de 0.
    • datetime.fromtimestamp(timestamp: float ou INT) [méthode de classe/statique] crée un datetime à partir d’un timestamp (nombre de secondes depuis l’époque ; 01/01/1970 UTC).
    • datetime.strptime(date_str : str, format : str) (p pour parse) [méthode de classe/statique] : crée un objet à partir d’une chaîne de caractères en spécifiant le format de la chaîne. Cela nous permet de créer un objet à partir de 2 chaînes de caractères différentes.

Objets datetime

  • Les objets datetime peuvent contenir des informations de fuseau horaire (aware) ou non (naïf).
  • Il est possible de comparer ces 2 types d’informations mais on ne devrait jamais les mélanger.
  • Pour gérer facilement les fuseaux horaires, utilisez un module supplémentaire (zoneinfo + tzdata, dateutil ou pytz).
  • Pour manipuler uniquement les informations de « date » ou d’« heure », utilisez un objet date ou time.
  • La référence temporelle est 00h00.

Création avancée

  • Détails sur strptime(date_str, format) [méthode de classe].
  • date_str est la chaîne de caractères représentant la date, par exemple « 08/04/2024 à 9:12:18 ».
  • format est une chaîne de caractères qui décrit le format dans lequel la date et l’heure sont représentées dans date_str.
  • Par exemple, « %d/%m/%Y à %H:%M:%S » contient des directives.

Utilisation

  • La modification des objets datetime/timedelta s’effectue à l’aide de la méthode d’instance : replace().
  • Cette méthode renvoie une copie modifiée (self reste inchangé).
  • Cela signifie que l’on effectue une nouvelle copie d’un objet.
  • d.replace(year=self.year, month=self.month, day=self.day, hour=self.hour, minute=self.minute, second=self.second, microsecond=self.microsecond, tzinfo=self.tzinfo, ...)
  • Il existe différentes opérations qui peuvent être appliquées aux objets datetime/timedelta.
    • Formatage d’un datetime : strftime (même syntaxe que strptime).
    • Par exemple : s = d.strftime("%d/%m/%Y à %H:%M:%S") : renvoie une chaîne de caractères.
    • Il s’agit d’une méthode d’instance.
  • La soustraction de deux objets datetime renvoie un objet timedelta (opérateur arithmétique classique « - »).
  • Cela donne une durée/un intervalle de temps.
  • Un objet timedelta peut également être créé manuellement en spécifiant différentes valeurs.
    • Par exemple : dt = timedelta(days=1, hours=2, minutes=3).
    • Attention, pas de mois ou d’années. Car, en fonction des années, on a des jours en plus et des jours en moins.
  • L’ajout/la soustraction d’un objet timedelta à un objet datetime renvoie un objet datetime (opérateur « + » ou « - »).
  • Attention, aux priorités des opérations.
  • Comparaison de deux objets datetime ou objet timedelta entre eux (opérateurs de comparaison classiques : ==, , etc.).
  • Attention, fuseaux horaires
  • Les opérations sur les objets datetime permettent d’obtenir des informations « avancées », comme le jour de la semaine avec la méthode weekday(), d’extraire un simple objet date ou time avec la méthode date()/time() et d’obtenir l’horodatage correspondant (nombre de secondes : float) avec la méthode timestamp().
  • Cela permet de stocker et nous donne un nombre à virgule.
  • On peut se poser la question suivante pour savoir à quel jour de la semaine cela correspond.
  • Les jours de la semaine sont comptés entre 0 et 6.

Formatage des chaînes

  • La conversion et la concaténation se présentent sous la forme : "nom : " + str(nom) + ", age : " + str(age) + "\n".
  • C’est difficile à lire et cela offre peu de flexibilité pour la conversion/le formatage des types de base en chaînes de caractères.
  • Il est possible de construire une « interpolation » à partir de différentes expressions.
  • Il y aura donc une séparation entre la forme et le contenu !
  • C’est une option de formatage avancée pour différents types d’expressions (p. ex. le nombre de décimales à afficher pour un nombre à virgule).

Directive

  • Chaînes de caractères avec des directives qui doivent être remplacées par les valeurs d’expressions données en paramètres.
    • %s : chaîne de caractères
    • %d : nombre entier ; %0.2d pour afficher au moins 2 chiffres (compléter avec des zéros)
    • %f : nombre décimal ; %.3f pour n’afficher que 3 chiffres après la virgule

F-Strings

  • Les chaînes f contiennent des expressions qui sont exécutées pour former la chaîne de caractères résultante.
  • La chaîne de caractères est précédée d’un « f ».
  • Des expressions entre accolades {} sont insérées directement dans la chaîne f.
  • Il est possible d’utiliser les mêmes parenthèses à l’intérieur des accolades, et donc de mettre des chaînes f dans des chaînes f : f"{f"{len(ma_liste)}"} : {",".join(ma_liste)}".
  • Les options de conversion sont spécifiées après « ! »: « !s » pour str() (utilisé par défaut), « !r » pour repr(), « !a » pour ascii().
  • Les options de formatage sont spécifiées comme précédemment après « : » : f"{[expression][!conversion][:formatage]}".
  • f"{c!s} a une aire de {c.get_aire():.1}" >>> Carré 0.5 x 0.5 a une aire de 0.2

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

ED10
5 questions

ED10

PlentifulMonkey avatar
PlentifulMonkey
[05/Bosna/03]
27 questions

[05/Bosna/03]

InestimableRhodolite avatar
InestimableRhodolite
Use Quizgecko on...
Browser
Browser