Podcast
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?
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.
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
?
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?
Comment les dates et les heures sont-elles généralement représentées en programmation, notamment pour les événements et les journaux?
En Python, pour manipuler une information de type « date et heure », on utilise un objet ______.
En Python, pour manipuler une information de type « date et heure », on utilise un objet ______.
Quelles informations sont obligatoires lors de la construction d'un objet datetime
en spécifiant les informations séparément?
Quelles informations sont obligatoires lors de la construction d'un objet datetime
en spécifiant les informations séparément?
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).
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).
Associez les directives strftime
avec leur signification:
Associez les directives strftime
avec leur signification:
Quelle méthode d'instance permet de modifier un objet datetime
ou timedelta
en renvoyant une copie modifiée sans changer l'objet original?
Quelle méthode d'instance permet de modifier un objet datetime
ou timedelta
en renvoyant une copie modifiée sans changer l'objet original?
Pour formater un objet datetime
en une chaîne de caractères, on utilise la méthode ______.
Pour formater un objet datetime
en une chaîne de caractères, on utilise la méthode ______.
Soustraire deux objets datetime
résulte en un objet du type date
.
Soustraire deux objets datetime
résulte en un objet du type date
.
Lorsque vous ajoutez ou soustrayez un objet timedelta
à un objet datetime
, quel est le type de l'objet résultant?
Lorsque vous ajoutez ou soustrayez un objet timedelta
à un objet datetime
, quel est le type de l'objet résultant?
Comment les jours de la semaine sont-ils comptés lors de l'utilisation de la méthode weekday()?
Comment les jours de la semaine sont-ils comptés lors de l'utilisation de la méthode weekday()?
Pour obtenir le timestamp correspondant à un objet datetime
(nombre de secondes), on utilise la méthode ______().
Pour obtenir le timestamp correspondant à un objet datetime
(nombre de secondes), on utilise la méthode ______().
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.
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.
Associez les séquences d'échappement avec leur signification:
Associez les séquences d'échappement avec leur signification:
Quelle est la fonction principale des f-strings en Python?
Quelle est la fonction principale des f-strings en Python?
Dans une f-string, les expressions sont insérées entre ______.
Dans une f-string, les expressions sont insérées entre ______.
Dans une f-string, l'option de conversion '!s' est utilisée pour représenter l'expression comme un entier.
Dans une f-string, l'option de conversion '!s' est utilisée pour représenter l'expression comme un entier.
Comment spécifie-t-on les options de formatage dans une f-string après avoir inséré une expression et une conversion?
Comment spécifie-t-on les options de formatage dans une f-string après avoir inséré une expression et une conversion?
Quel patron de conception assure qu'une classe ne peut avoir qu'une seule instance?
Quel patron de conception assure qu'une classe ne peut avoir qu'une seule instance?
Dans le patron Observable, la méthode notify_all()
doit être ré-implémentée dans chaque classe qui étend la classe observable.
Dans le patron Observable, la méthode notify_all()
doit être ré-implémentée dans chaque classe qui étend la classe observable.
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__
?
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__
?
Comment appelle-t-on le nombre de secondes écoulées depuis l'époque (01/01/1970 UTC)?
Comment appelle-t-on le nombre de secondes écoulées depuis l'époque (01/01/1970 UTC)?
Quelle méthode de la classe datetime
est utilisée pour obtenir l'heure actuelle?
Quelle méthode de la classe datetime
est utilisée pour obtenir l'heure actuelle?
La méthode datetime.strptime()
permet de créer un objet datetime à partir d'une ______ de caractères.
La méthode datetime.strptime()
permet de créer un objet datetime à partir d'une ______ de caractères.
Il est possible de comparer directement un objet datetime
'aware' avec un objet datetime
'naïf'.
Il est possible de comparer directement un objet datetime
'aware' avec un objet datetime
'naïf'.
Quel module Python est recommandé pour manipuler facilement les fuseaux horaires?
Quel module Python est recommandé pour manipuler facilement les fuseaux horaires?
Dans la fonction strptime(date_str, format)
, que représente l'argument format
?
Dans la fonction strptime(date_str, format)
, que représente l'argument format
?
Associez chaque directive de formatage strptime
à sa signification:
Associez chaque directive de formatage strptime
à sa signification:
Quelle méthode permet de modifier un objet datetime
en retournant une copie modifiée sans altérer l'objet original?
Quelle méthode permet de modifier un objet datetime
en retournant une copie modifiée sans altérer l'objet original?
L'opération de soustraction de deux objets datetime
résulte en un objet de type timedelta
.
L'opération de soustraction de deux objets datetime
résulte en un objet de type timedelta
.
Sachant que les jours de la semaine sont comptés de 0 à 6, à quel jour correspond le numéro 0?
Sachant que les jours de la semaine sont comptés de 0 à 6, à quel jour correspond le numéro 0?
Quel est le rôle des directives dans une chaîne de formatage de date et heure, comme %d/%m/%Y
?
Quel est le rôle des directives dans une chaîne de formatage de date et heure, comme %d/%m/%Y
?
Dans une f-string, on peut uniquement insérer des expressions simples et non des f-strings imbriquées.
Dans une f-string, on peut uniquement insérer des expressions simples et non des f-strings imbriquées.
Quelle est la fonction de l'option de conversion !s
dans une f-string?
Quelle est la fonction de l'option de conversion !s
dans une f-string?
Dans les f-strings, les expressions à évaluer sont placées entre ______.
Dans les f-strings, les expressions à évaluer sont placées entre ______.
Quelle est la signification de la séquence d'échappement \n
?
Quelle est la signification de la séquence d'échappement \n
?
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 %
.
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 %
.
Flashcards
Singleton (Patron de conception)
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
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 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ésentation des dates et heures
Signup and view all the flashcards
Module datetime
Module datetime
Signup and view all the flashcards
datetime.now()
datetime.now()
Signup and view all the flashcards
datetime.fromtimestamp()
datetime.fromtimestamp()
Signup and view all the flashcards
datetime.strptime()
datetime.strptime()
Signup and view all the flashcards
Obtenir des informations avancées
Obtenir des informations avancées
Signup and view all the flashcards
Méthode date() / time()
Méthode date() / time()
Signup and view all the flashcards
Méthode timestamp()
Méthode timestamp()
Signup and view all the flashcards
Méthode d'instance replace()
Méthode d'instance replace()
Signup and view all the flashcards
strftime()
strftime()
Signup and view all the flashcards
Objet ‘timedelta’
Objet ‘timedelta’
Signup and view all the flashcards
f-strings
f-strings
Signup and view all the flashcards
Directives de formatage
Directives de formatage
Signup and view all the flashcards
Informations avancées (datetime)
Informations avancées (datetime)
Signup and view all the flashcards
date() / time()
date() / time()
Signup and view all the flashcards
timestamp()
timestamp()
Signup and view all the flashcards
Méthode .replace()
Méthode .replace()
Signup and view all the flashcards
Fonction strftime()
Fonction strftime()
Signup and view all the flashcards
Objet timedelta
Objet timedelta
Signup and view all the flashcards
Singleton
Singleton
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.