Initial commit

This commit is contained in:
2025-07-04 19:26:39 +02:00
commit c8682d4801
248 changed files with 12519 additions and 0 deletions

View File

@ -0,0 +1,32 @@
= Exercices sur la fonction `print()`
== Exercice 1
Affichez dans la console le texte suivant :
- La rue Rostand,
- `3 espaces` se trouve au
- Feu à droite
== Exercice 2
La fonction `print()` accepte plusieurs arguments, dont les valeurs sont affichées sur la même ligne, et par défaut séparés par un espace.
*La syntaxe est la suivante* : `print("a", "b", "c", 19)`
Affichez, en imitant cette syntaxe, le texte suivant :
* Hauts les cœurs !
(sous Linux, le e dans l'o s'obtient avec la combinaison de touches `Alt Gr + O`. Sous Windows, `Alt + 339` devrait donner le même résultat)
== Exercice A1
La fonction `print()` accepte des arguments avec des noms spécifiques, dont `sep` et `end`. `sep` permet de désigner quelle chaîne sépare les arguments à afficher, et `end` permet de préciser par quelle chaîne terminer le `print`.
Par défaut, `sep=" "` et `end="\n"`. La fonction s'utiliserait ainsi :
```python
# Ne sépare pas les éléments via un espace et passe deux fois
# à la ligne à la fin du print.
print("1", "2", "3", sep="", end="\n\n")
```

View File

@ -0,0 +1,70 @@
= Variables
---
== Exercice 1
- Déclarez trois variables, avec des noms corrects, contenant :
* Le nom d'une personne, ex. "Paul"
* La température courante en °C, ex. 25.3
* L'âge d'une personne, ex. 30
- Affichez dans la console les valeurs de ces trois variables.
---
== Exercice 2
- Demandez à l'utilisateur de saisir du texte, et mettez-le dans une variable
- Affichez le contenu de la variable.
*Fonctions nécessaires* : `variable = input("Texte d'invite:")`, `print()`
---
== Exercice 3 : Expressions
- Déclarez plusieurs variables, contenant le résultats de :
* Une opération arithmétique entre nombres
* Une comparaison entre nombres
* Une opération d'addition entre deux chaînes
* L'expression `(59 * 62 + 13) / 6.5`
- Affichez leur contenu dans la console.
---
== Exercice A1 : Conversion en ordres de grandeur
- Déclarez une variable contenant une distance en mètres (au moins 1001, ex 4210)
- Affichez le nombre de kilomètres dans cette valeur (nombre entier, ex. 4)
- Afficher le nombre de mètres restants dans cette valeur (ex. 210)
*Outils nécessaires* : opérateurs `//` (division entière), `%` (modulo)
Vous pouvez afficher tout cela sur une ligne avec un seul appel à la fonction `print()`, par exemple :
```python
kilometers = 5
meters = 450
print(kilometers, "kilomètres et", meters, "mètres.")
```
---
== Exercice A2 : Deux ordres de grandeur
- Déclarez une variable contenant une masse en grammes (au moins 1 000 000)
- Affichez le nombre de tonnes, de kilogrammes et de grammes dans cette masse.
Vous devrez utiliser les mêmes outils que dans l'exercice précédent, mais il
y a deux ordres de grandeur à prendre en compte !
---
== Exercice A3 : Saisie de nombres
- Demandez à l'utilisateur de saisir deux nombres (en deux fois).
- Indiquez quel est le nombre le plus grand qui a été saisi.
Sachant que la saisie récupérée est toujours une chaîne de caractères vous devez récupérer une version de la saisie qui est un nombre pour pouvoir faire des comparaisons intéressantes.
*Rappel* : pour récupérer un entier depuis une chaîne, utilisez `int(valeur)`

View File

@ -0,0 +1,72 @@
= Conditions
---
== Exercice 1 : `if` seul
- Déclarez une variable avec une valeur entière entre 1 et 6 (lancer de dé).
- Affichez `"Lancer réussi !"` si la valeur est supérieure strictement à 4
- Retestez votre code en changeant la valeur du lancer
---
== Exercice 2 : `if` seul, comparer du texte
- Déclarez une variable avec le texte `"Bonjour"`;
- Affichez `"Bien le bonjour"` si votre variable est égale à `"bonjouR"`.
(Les majuscules ne sont pas placées ici par hasard, conservez-les)
---
== Exercice 2B : `if…else`
- Assignez à une variable le texte `"Bonjour"`;
- Affichez `"Bien le bonjour"` si votre variable est égale à `"Bonjour"`;
- Sinon, (dans tous les autres cas) afficher `"Je ne comprends pas !"`.
---
== Exercice 3 : `if…elif…else`
- Assignez à une variable un entier arbitraire entre 0 et 10 inclus;
- Si cette valeur est d'au moins 9, afficher `"Élevé"`;
- Sinon, si cette valeur est d'au moins 7, afficher `"Haut"`;
- Sinon, si cette valeur est d'au moins 4, afficher `"Standard"`;
- Sinon, afficher `"Bas"`.
---
== Exercice A1 : Multiples conditions
- Assignez à deux variables `a1` et `a2` des nombres entiers entre 0 et 10
- Si `a1` est supérieur à 5 *et* `a2` est inférieur à 6, afficher `"OK"`
- Sinon, afficher `"Valeurs incorrectes"`
---
== Exercice A2 (conditions avec `and` et `or`)
- Assignez à deux variables `a1` *et* `a2` des nombres entre 0 et 10
- Si `a1` est supérieur à 5 *ou* `a2` est inférieur à 6, afficher `"Conditions suffisantes"`
- Sinon, afficher `"Valeurs incorrectes"`
---
== Exercice A3
- Déclarez une variable de statut `is_on` contenant un booléen (`True` ou `False`)
- Demandez à l'utilisateur de *saisir un texte*, et assignez-le à une variable `saisie`
- Si `saisie` vaut "Marche" :
* Si `is_on` est `False`, alors afficher "Allumage en cours..."
* Sinon, afficher "Déjà allumé !"
- Sinon, si `saisie` vaut "Arrêt" :
* Si `is_on` est `True`, afficher "Extinction..."
* Sinon, afficher "Déjà éteint !"
Exemple de rappel :
```python
# Demander de saisir un texte et récupérer le résultat dans une variable
saisie = input("Saisissez du texte :")
```

View File

@ -0,0 +1,6 @@
= Exercices sur les blocs vides
== Exercice 1
- Écrivez un bloc `if` dont le code, lorsqu'il est exécuté, ne fait rien.
- *Outils* : `pass`

View File

@ -0,0 +1,17 @@
= Exercices sur les boucles `for`
== Exercice 1
- Écrivez une boucle `for` sur les nombres de 0 à 9.
- Affichez la valeur du nombre parcouru.
== Exercice 2
- Écrivez une boucle `for` sur les nombres de 0 à 9.
- Affichez la valeur du nombre s'il est pair (`nombre % 2 == 0`)
== Exercice A1
- Écrivez une boucle `for` sur les nombres de 0 à 9 (variable nommée `item1`).
- Dans cette boucle, écrivez une autre boucle sur les nombres de 0 à `item1` (variable `item2`)
- Dans cette sous-boucle, affichez sur la même ligne `item1` et `item2`.

View File

@ -0,0 +1,22 @@
= Exercices sur les boucles `while`
== Exercice 1
- Déclarer une variable `number` égale à 10
- Écrivez une boucle `while` tournant tant que `number` est supérieur ou égal à 0.
- Dans la boucle, afficher `number`, et retirer `1` à `number`.
== Exercice 2
- Écrire une boucle `while` qui tourne indéfiniment (condition `True`, ou soyez créatif)
== Exercice 3
- Écrire une boucle `while` qui ne se lance jamais (condition `False`, ou soyez créatif)
- (il suffit que la condition soit fausse dès le départ)
== Exercice A1 : Fibonacci
- Écrire du code, affichant dans la console, les éléments successifs de la suite de Fibonacci jusqu'à 10 000 :
* Utiliser deux variables, `left` and `right` qui vont, au départ, contenir les deux premiers éléments de la suite.
* Dans la boucle, modifier `left` and `right` pour ne garder que les deux derniers éléments de la suite.

View File

@ -0,0 +1,60 @@
= Exercices sur les listes
== Exercice 1
- Écrivez une liste contenant les nombres entiers pairs de 0 à 10 inclus
- Assignez la longueur de la liste à une variable (`len()`)
- Affichez le dernier élément de la liste (en utilisant la longueur)
- Ajoutez un élément à la fin de la liste
- Affichez le nouveau contenu de la liste
== Exercice 2
- Écrivez une liste contenant les nombres 1, 2, 4, 8, 16, 32, 64
- Supprimez de la liste le nombre 8
- Ajoutez à la fin de la liste le nombre 128
- Affichez le contenu de la liste dans la console.
== Exercice 3 (indices négatifs)
- Écrivez une liste contenant 3 éléments
- Affichez le *dernier* élément en utilisant un indice négatif
- Affichez le *premier* élément en utilisant un indice négatif
== Pré-Exercice 4 (slicing)
[source,python]
----
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
b = a[0:5] # Index 0 à 5 non inclus. Marche aussi sur les chaînes.
c = a[5:0] # L'index de fin est inférieur au départ, renvoie une liste vide
f = a[:] # Renvoie toute la liste
d = a[::-1] # Tout parcourir à l'envers
e = a[::2] # Tout parcourir 2 par 2
----
== Exercice 4 (slicing)
- Écrivez une liste de 6 nombres
- Affichez la liste comprenant les 3 premiers éléments
- Affichez la liste comprenant tout sauf le premier élément
== Exercice 5 (slicing avancé)
- Réutilisez la liste de l'exercice 4
- Affichez toute la liste, mais à l'envers
- Affichez une liste comprenant les éléments aux indices pairs
== Exercice A1
- Écrivez une liste contenant les nombres multiples de 3 de 0 à 15.
- Faites une boucle `for` sur cette liste,
* et affichez uniquement les nombres pairs de cette liste (`valeur % 2 == 0`)
== Exercice A2
- Consultez la https://docs.python.org/3/tutorial/datastructures.html#more-on-lists[référence des fonctions de listes]
- Déclarez une liste de nombres flottants
- Utilisez la méthode qui sert à renvoyer le dernier élément et le supprimer de la liste
- Affichez cet élément, puis la liste

View File

@ -0,0 +1,42 @@
= Exercices sur les ensembles
== Exercice 1
- Écrivez un `set` contenant 5 valeurs
- Déclarez un second `set` contenant au moins 2 valeurs du premier set
- Essayez d'ajouter une valeur déjà existante à un set
- Affichez les valeurs communes aux deux sets (`intersection()`)
- Affichez un set contenant toutes les valeurs des 2 sets (`union()`)
== Exercice 2 (conversion)
- Écrivez une *liste* contenant des valeurs en doublons
- Affichez le contenu de la liste
- Assignez à une variable la conversion de la liste en set (`set(x)`)
- Affichez la valeur du set obtenu
== Exercice 3
Al et Kim sont inscrits sur un réseau social. Al a les amis suivants :
- Josephine
- Meghan
- Amy
- Bob
Kim a les amis suivants :
- Frank
- Amy
- Josephine
- Susan
Quels sont leurs amis en commun ? Écrivez un code qui représente et résout cet énoncé.
== Exercice 4
Partant du tuple suivant :
`(1, 4, 6, 9, 1, 3, 6, 12, 2, 5, 7, 10, 3, 5, 2, 6, 4, 6, 1, 8, 5, 2, 3, 6)`
- Affichez le nombre de valeurs différentes présentes dans le tuple.

View File

@ -0,0 +1,40 @@
= Exercices sur les dictionnaires
== Exercice 1
- Écrivez un simple dictionnaire associant des noms à des âges :
* Paul → 30
* Karim → 22
* Gina → 41
* Anna → 25
- Affichez l'âge de Gina
- Ajoutez les associations suivantes :
* Alina → 33
* Victor → 55
- Affichez le contenu du dictionnaire
== Exercice 2 (parcours)
- Réutilisez votre dictionnaire
- Utilisez une boucle `for` normale pour :
* Afficher les clés du dictionnaire
* Afficher la valeur associée à chaque clé
== Exercice 3 (parcours + `.items()`)
- Réutilisez votre dictionnaire
- Utilisez une boucle `for` sur `.items()` avec deux variables :
* Affichez clé et valeur associée
== Exercice A1 (compréhension)
- Déclarez un dictionnaire de conditions météo (°C, condition, pression)
* `meteo = {"Pau": (21.0, "Nuageux", 1015), "Gap": (20.3, "Dégagé", 1019), "Osny": (19.1, "Brouillard", 1015)}`
- À l'aide d'une compréhension de dictionnaire, récupérer un dictionnaire :
* Dont les clés sont les mêmes noms de villes
* Dont les valeurs sont uniquement la température associée
== Exercice A2 (compréhensions)
- Déclarez une liste via une compréhension, qui contient les nombres pairs de 0 à 98, sauf ceux divisibles par 5. (comprendre, uniquement ceux non divisibles par 5).
- Déclarez une liste de mots manuellement. Puis déclarez un générateur (compréhension de tuple) qui contient uniquement les mots de plus de 4 lettres. (`len()`).

View File

@ -0,0 +1,48 @@
= Exercices sur les manipulations de chaînes
== Exercice 1
- Consultez https://docs.python.org/3/library/stdtypes.html#string-methods[les méthodes disponibles sur les chaînes]
- Déclarez une chaîne de caractères avec plusieurs mots
- Affichez la version tout en majuscules (`upper`)
- Affichez la version tout en minuscules (`lower`)
- Découpez la autour des espaces (`split`)
== Exercice 2 (joindre les deux bouts)
- Partant de cette liste de mots :
[source,python]
----
word_list = ("mon", "vieux", "tonton", "m'a", "jeté", "sur", "une", "nouvelle", "planète")
----
Utiliser la méthode `join()` sur une chaîne de séparation pour reconstituer la phrase entière.
(N'utilisez pas de boucle `for`).
== Exercice 3 (slicing)
- Déclarez une chaîne de caractères quelconque
- En utilisant le _slicing_, affichez-la à l'envers
- De la même façon, affichez uniquement les 5 premiers caractères
- Affichez le texte, mais uniquement un caractère sur deux
== Exercice 4 (f-strings)
- Déclarez plusieurs variables :
* `number = 14`
* `base_list = [1, 2, 3]`
- Affichez une *f-string* incluant le contenu de `number` et `base_list` :
* Il est *14* heures. La liste est *[1, 2, 3]*.
== Exercice A1 (`join` + conversion)
Partant de cette liste :
[source, python]
----
items = ["Hello, it's", True, "that", 40, "people have", None]
----
- Confectionner une phrase avec `" ".join()`.
- La fonction `join` nécessitant une liste de chaînes pour fonctionner, utilisez une compréhension de liste pour convertir cette liste en liste de chaînes (utilisez `str(x)`).

View File

@ -0,0 +1,37 @@
= Exercices sur les exceptions
== Exercice 1
- Écrivez un bloc `try/except`
- Dans le bloc `try`, provoquez une division par zéro (`ZeroDivisionError`)
- Dans le bloc `except`, affichez "Division impossible !"
== Exercice A1
- Générez un nombre entier aléatoire entre 0 et 1 :
[source,python]
----
from random import randint
number = randint(0, 1)
----
- Écrivez un bloc `try/except`
- Dans le bloc `try` :
* Si `number` vaut `0`, afficher `[1, 2, 3][4]` (`IndexError`)
* Si `number` vaut `1`, afficher `{}[0]` (`KeyError`)
- Écrire un bloc `except` pour `IndexError`, qui affiche "Erreur d'index"
- Écrire un bloc `except` pour `KeyError`, qui affiche "Erreur de clé"
== Exercice A2 (variante)
- Reprenez une copie de l'exercice 1
- Mais cette fois, ayez un seul bloc `except` qui gère à la fois `IndexError` et `KeyError`, et qui affiche "Erreur d'accès".
== Exercice A3
- Écrivez un bloc `try/except`
- Provoquez une erreur dans le bloc `try` (pas une erreur de syntaxe !)
- Écrivez un bloc `except` qui ne gère pas la bonne erreur (ex. `IOError`)
- Écrivez un bloc `finally` qui affiche du texte
- Exécutez votre code et voyez que le bloc `finally` est bien honoré.

View File

@ -0,0 +1,37 @@
= Exercices sur les fonctions
== Exercice 1
- Écrivez une fonction nommée `show_something` qui ne prend pas d'argument
- Cette fonction doit afficher dans la console "Something"
- Appelez cette fonction
== Exercice 2
- Écrivez une fonction nommée `return_constant` qui ne prend pas d'argument
- Cette fonction affiche dans la console "99"
- Cette fonction renvoie à l'appelant la valeur `99`
- Appeler la fonction et assigner sa valeur de retour à une variable
- Afficher le contenu de la variable
== Exercice 3
- Écrivez une fonction nommée `product` qui prend deux arguments positionnels `x` et `y`
- Cette fonction renvoie le produit de `x` et `y`
- Affichez le résultat de cette fonction lorsque vous l'appelez avec les valeurs :
* `10, 10`
* `15, -15`
* `"hello ", 3`
* `[1, 2, 3], 2`
== Exercice 4
- Écrivez une fonction nommée `quotient` qui prend un argument positionnel `numerator` et un argument par défaut `denominator`, qui prend la valeur `1` par défaut.
- La fonction renvoie le quotient de `numerator` et `denominator`.
- La fonction gère l'exception de `ZeroDivisionError` en renvoyant la valeur `None`.
- Affichez le résultat de cette fonction lorsque vous l'appelez avec les valeurs :
* `10, 4`
* `10, -1`
* `1, 0`
* `10`
- Variez les appels en passant les arguments positionnellement, par nom, etc.

View File

@ -0,0 +1,19 @@
= Exercices sur les fonctions
== Exercice A1
- Écrivez une fonction `print_lines` qui prend un argument étoile `*lines`
- La fonction utilise une boucle `for` pour afficher les éléments de `lines` dans la console
- Appelez la fonction avec des arguments différents :
* `"ligne 1", "ligne 2", 13, 14, 15`
* _aucun argument_
* `"matin", "midi", "soir", "nuit"`
== Exercice A2
- Écrivez une fonction `mappings` qui prend un argument double-étoile `**prices`
- La fonction parcourt le dictionnaire dans `prices` et affiche pour chaque clé `key` :
* `f"Produit : {key:<16} - Prix : {value:.2f}€"`
- Testez l'appel de cette fonction avec des arguments suivants :
* `pomme=0.8, cassis=1.5, ananas=2.8, raisin=4.99`
* `perrier=1.2, badoit=0.95, san_pellegrino=1.1, vichy=40`

View File

@ -0,0 +1,30 @@
= Exercices sur les dates et heures
== Exercice 1
- Déclarez trois objets `datetime` :
* `now` : là, tout de suite
* `forty_ago` : le 12 février 1981 à 22h31
* `fifteen_ago` : le 3 mars 2006 à 16h10 et 14 secondes
- Affichez chacun de ces objets dans la console
- Affichez le mois de `forty_ago` (`.month`)
- Affichez les minutes et secondes de `fifteen_ago`
== Exercice 2
- Conservez les variables du dessus
- Assignez la différence entre `now` et `forty_ago` dans une variable `interval_40`
- Affichez le nombre de jours contenus dans `interval_40` (`.days`)
- Affichez la date qu'il sera dans `interval_40` (`now + interval_40`)
== Exercice 3 (conversion vers chaîne)
- Conservez les variables du dessus
- Affichez `fifteen_ago` sous la forme suivante :
* `"03 mars 2006, 16:10:14"`
- (utilisez `fifteen_ago.strftime(format 8563.3.3.)`)
== Exercice 4 (conversion depuis chaîne)
- Convertissez la chaîne `"31-01-2019 16:48"` vers un objet `datetime`
- (utilisez `datetime.strptime(chaine, format)`)

View File

@ -0,0 +1,57 @@
= Exercices sur les classes (basique)
== Exercice 1
(Thème *bibliothèque*)
- Déclarez une classe `Library`
- Avec un attribut `name` (défaut `None`)
- Avec un attribut `address` (défaut `None`)
- Instanciez deux nouveaux objets de cette classe (différenciez noms de variables et de classes)
- Affichez la valeur de l'attribut `name` de l'un des objets
== Exercice 2
- Déclarez une classe `Book`
- Avec des attributs `title` (`None`), `author` (`None`), `year` (`None`)
- Instanciez un nouvel objet de cette classe
- Modifiez les attributs `title` et `author`
- Affichez la valeur de ces attributs
== Exercice 3 (méthodes)
- Réutilisez la classe `Library`
- Ajoutez-y un attribut `is_open` (`True`)
- Ajoutez une méthode `open(value=True)` qui change l'attribut `is_open`
- Ajoutez une méthode `show_status()` qui affiche l'état de la bibliothèque :
* `"Bibliothèque <nom> :"`
* `"État : Ouverte"` (ou `"fermée"`)
== Exercice 4 (Redéfinition de l'instanciation)
- Réutilisez la classe `Library`
- Définissez la méthode `_ _ init _ _()`, qui accepte des arguments `name` et `address` :
* `name` est un argument à valeur par défaut, à `None`
* `address` possède une valeur par défaut à `None`
* La méthode utilise ces arguments pour initialiser les attributs de `self`.
- Instanciez deux nouveaux objets de cette classe
- Exécutez la méthode `show_status()` sur ces deux objets
== Exercice 5 (Héritage)
- Définissez une classe `ComicBook` héritant de `Book`
- Cette classe contient en plus un attribut `is_color` (`True`)
- Instanciez un objet de chacune des deux classes `Book` et `ComicBook`
- Vérifiez que l'objet de type `ComicBook` est bien un `Book` :
* en utilisant la fonction `isinstance(object, class)`
== Exercice 6 (Polymorphisme)
- Ajoutez un attribut `is_published` sur la classe `Book`
- Ajoutez une méthode `publish(value)` sur `Book`, qui change l'attribut `is_published`
- Redéfinissez la méthode `publish(value)` sur `ComicBook`, qui fait la même chose que dans `Book` (fonction `super()`), puis affiche `"Comic book mis à jour"`
- Testez les méthodes sur deux objets, de type `Book` et `ComicBook`.
== Exercice B1 (staticmethod)
- Écrivez une méthode statique dont la syntaxe est correcte.

View File

@ -0,0 +1,34 @@
= Exercices sur les fichiers texte
== Exercice 1
- Écrivez un fichier texte, dans lequel vous écrivez les lignes suivantes :
* `Il est un feu discret qui se cache en ton âme,`
* `Mais qui tremble et palpite à tous les coups du sort :`
* `C'est l'espoir ! Défends bien cette petite flamme ;`
* `Si la flamme s'éteint, ami, ton cœur est mort.`
- Pensez bien aux `"\n"` pour passer à la ligne !
== Exercice 2
- Ouvrez à nouveau votre fichier texte, mais en lecture
- Pour relire et afficher les lignes du fichier une à une
- Utilisez une boucle `while` :
* `line = <lire une ligne>`
* `while line != "":`
* `<afficher la ligne>`
* `<lire la ligne suivante>`
ou
- Variante de boucle avec la syntaxe de `Python 3.8`
* `while line := <lire une ligne>:`
* <afficher la ligne>
== Exercice 3 (ouverture avec `with`)
- Remplacez le code des deux exercices précédents pour utiliser un gestionnaire de contexte.

View File

@ -0,0 +1,39 @@
= Exercices sur les fichiers texte JSON, CSV etc.
== Exercice 1 (JSON)
- Convertissez le contenu du fichier JSON proposé sur le dépôt Git en structure Python
- La donnée lue depuis le fichier JSON contient un dictionnaire
* Quelle notation d'accès aux données du dictionnaire allez-vous utiliser pour récupérer la valeur suivante ?
* `"New York Bulls"`
- Indice : `data["quiz"]["sport"]...`
== Exercice 2 (JSON, écriture)
- Créez une structure Python étant une liste ou un dictionnaire
- Écrivez un fichier JSON valide depuis cette structure
- Le fichier doit être indenté (`json.dumps(data, indent=4)`)
== Exercice 3 (CSV)
- Ouvrez à nouveau votre fichier texte, mais en lecture
- Pour relire et afficher les lignes du fichier une à une
- Utilisez une boucle `while` :
* `line = <lire une ligne>`
* `while line != "":`
* `<afficher la ligne>`
* `<lire la ligne suivante>`
ou
- Variante de boucle avec la syntaxe de `Python 3.8`
* `while line := <lire une ligne>:`
* <afficher la ligne>
== Exercice 3 (ouverture avec `with`)
- Remplacez le code des deux exercices précédents pour utiliser un gestionnaire de contexte.

View File

@ -0,0 +1,100 @@
1,"Eldon Base for stackable storage shelf, platinum",Muhammed MacIntyre,3,-213.25,38.94,35,Nunavut,Storage & Organization,0.8
2,"1.7 Cubic Foot Compact ""Cube"" Office Refrigerators",Barry French,293,457.81,208.16,68.02,Nunavut,Appliances,0.58
3,"Cardinal Slant-D<> Ring Binder, Heavy Gauge Vinyl",Barry French,293,46.71,8.69,2.99,Nunavut,Binders and Binder Accessories,0.39
4,R380,Clay Rozendal,483,1198.97,195.99,3.99,Nunavut,Telephones and Communication,0.58
5,Holmes HEPA Air Purifier,Carlos Soltero,515,30.94,21.78,5.94,Nunavut,Appliances,0.5
6,G.E. Longer-Life Indoor Recessed Floodlight Bulbs,Carlos Soltero,515,4.43,6.64,4.95,Nunavut,Office Furnishings,0.37
7,"Angle-D Binders with Locking Rings, Label Holders",Carl Jackson,613,-54.04,7.3,7.72,Nunavut,Binders and Binder Accessories,0.38
8,"SAFCO Mobile Desk Side File, Wire Frame",Carl Jackson,613,127.70,42.76,6.22,Nunavut,Storage & Organization,
9,"SAFCO Commercial Wire Shelving, Black",Monica Federle,643,-695.26,138.14,35,Nunavut,Storage & Organization,
10,Xerox 198,Dorothy Badders,678,-226.36,4.98,8.33,Nunavut,Paper,0.38
11,Xerox 1980,Neola Schneider,807,-166.85,4.28,6.18,Nunavut,Paper,0.4
12,Advantus Map Pennant Flags and Round Head Tacks,Neola Schneider,807,-14.33,3.95,2,Nunavut,Rubber Bands,0.53
13,Holmes HEPA Air Purifier,Carlos Daly,868,134.72,21.78,5.94,Nunavut,Appliances,0.5
14,"DS/HD IBM Formatted Diskettes, 200/Pack - Staples",Carlos Daly,868,114.46,47.98,3.61,Nunavut,Computer Peripherals,0.71
15,"Wilson Jones 1"" Hanging DublLock<63> Ring Binders",Claudia Miner,933,-4.72,5.28,2.99,Nunavut,Binders and Binder Accessories,0.37
16,Ultra Commercial Grade Dual Valve Door Closer,Neola Schneider,995,782.91,39.89,3.04,Nunavut,Office Furnishings,0.53
17,"#10-4 1/8"" x 9 1/2"" Premium Diagonal Seam Envelopes",Allen Rosenblatt,998,93.80,15.74,1.39,Nunavut,Envelopes,0.4
18,Hon 4-Shelf Metal Bookcases,Sylvia Foulston,1154,440.72,100.98,26.22,Nunavut,Bookcases,0.6
19,"Lesro Sheffield Collection Coffee Table, End Table, Center Table, Corner Table",Sylvia Foulston,1154,-481.04,71.37,69,Nunavut,Tables,0.68
20,g520,Jim Radford,1344,-11.68,65.99,5.26,Nunavut,Telephones and Communication,0.59
21,LX 788,Jim Radford,1344,313.58,155.99,8.99,Nunavut,Telephones and Communication,0.58
22,Avery 52,Carlos Soltero,1412,26.92,3.69,0.5,Nunavut,Labels,0.38
23,Plymouth Boxed Rubber Bands by Plymouth,Carlos Soltero,1412,-5.77,4.71,0.7,Nunavut,Rubber Bands,0.8
24,"GBC Pre-Punched Binding Paper, Plastic, White, 8-1/2"" x 11""",Carl Ludwig,1539,-172.88,15.99,13.18,Nunavut,Binders and Binder Accessories,0.37
25,"Maxell 3.5"" DS/HD IBM-Formatted Diskettes, 10/Pack",Carl Ludwig,1539,-144.55,4.89,4.93,Nunavut,Computer Peripherals,0.66
26,Newell 335,Don Miller,1540,5.76,2.88,0.7,Nunavut,Pens & Art Supplies,0.56
27,SANFORD Liquid Accent<6E> Tank-Style Highlighters,Annie Cyprus,1702,4.90,2.84,0.93,Nunavut,Pens & Art Supplies,0.54
28,Canon PC940 Copier,Carl Ludwig,1761,-547.61,449.99,49,Nunavut,Copiers and Fax,0.38
29,"Tenex Personal Project File with Scoop Front Design, Black",Carlos Soltero,1792,-5.45,13.48,4.51,Nunavut,Storage & Organization,0.59
30,Col-Erase<73> Pencils with Erasers,Grant Carroll,2275,41.67,6.08,1.17,Nunavut,Pens & Art Supplies,0.56
31,"Imation 3.5"" DS/HD IBM Formatted Diskettes, 10/Pack",Don Miller,2277,-46.03,5.98,4.38,Nunavut,Computer Peripherals,0.75
32,"White Dual Perf Computer Printout Paper, 2700 Sheets, 1 Part, Heavyweight, 20 lbs., 14 7/8 x 11",Don Miller,2277,33.67,40.99,19.99,Nunavut,Paper,0.36
33,Self-Adhesive Address Labels for Typewriters by Universal,Alan Barnes,2532,140.01,7.31,0.49,Nunavut,Labels,0.38
34,Accessory37,Alan Barnes,2532,-78.96,20.99,2.5,Nunavut,Telephones and Communication,0.81
35,Fuji 5.2GB DVD-RAM,Jack Garza,2631,252.66,40.96,1.99,Nunavut,Computer Peripherals,0.55
36,Bevis Steel Folding Chairs,Julia West,2757,-1766.01,95.95,74.35,Nunavut,Chairs & Chairmats,0.57
37,Avery Binder Labels,Eugene Barchas,2791,-236.27,3.89,7.01,Nunavut,Binders and Binder Accessories,0.37
38,Hon Every-Day<61> Chair Series Swivel Task Chairs,Eugene Barchas,2791,80.44,120.98,30,Nunavut,Chairs & Chairmats,0.64
39,"IBM Multi-Purpose Copy Paper, 8 1/2 x 11"", Case",Eugene Barchas,2791,118.94,30.98,5.76,Nunavut,Paper,0.4
40,Global Troy<6F> Executive Leather Low-Back Tilter,Edward Hooks,2976,3424.22,500.98,26,Nunavut,Chairs & Chairmats,0.6
41,XtraLife<EFBFBD> ClearVue<75> Slant-D<> Ring Binders by Cardinal,Brad Eason,3232,-11.83,7.84,4.71,Nunavut,Binders and Binder Accessories,0.35
42,Computer Printout Paper with Letter-Trim Perforations,Nicole Hansen,3524,52.35,18.97,9.03,Nunavut,Paper,0.37
43,6160,Dorothy Wardle,3908,-180.20,115.99,2.5,Nunavut,Telephones and Communication,0.57
44,Avery 49,Aaron Bergman,4132,1.32,2.88,0.5,Nunavut,Labels,0.36
45,Hoover Portapower<65> Portable Vacuum,Jim Radford,4612,-375.64,4.48,49,Nunavut,Appliances,0.6
46,Timeport L7089,Annie Cyprus,4676,-104.25,125.99,7.69,Nunavut,Telephones and Communication,0.58
47,Avery 510,Annie Cyprus,4676,85.96,3.75,0.5,Nunavut,Labels,0.37
48,Xerox 1881,Annie Cyprus,4676,-8.38,12.28,6.47,Nunavut,Paper,0.38
49,LX 788,Annie Cyprus,4676,1115.69,155.99,8.99,Nunavut,Telephones and Communication,0.58
50,"Cardinal Slant-D<> Ring Binder, Heavy Gauge Vinyl",Annie Cyprus,5284,-3.05,8.69,2.99,Nunavut,Binders and Binder Accessories,0.39
51,"Memorex 4.7GB DVD-RAM, 3/Pack",Clay Rozendal,5316,514.07,31.78,1.99,Nunavut,Computer Peripherals,0.42
52,Unpadded Memo Slips,Don Jones,5409,-7.04,3.98,2.97,Nunavut,Paper,0.35
53,"Adams Telephone Message Book W/Dividers/Space For Phone Numbers, 5 1/4""X8 1/2"", 300/Messages",Beth Thompson,5506,4.41,5.88,3.04,Nunavut,Paper,0.36
54,"Eldon Expressions<6E> Desk Accessory, Wood Pencil Holder, Oak",Frank Price,5569,-0.06,9.65,6.22,Nunavut,Office Furnishings,0.55
55,Bell Sonecor JB700 Caller ID,Michelle Lonsdale,5607,-50.33,7.99,5.03,Nunavut,Telephones and Communication,0.6
56,Avery Arch Ring Binders,Ann Chong,5894,87.68,58.1,1.49,Nunavut,Binders and Binder Accessories,0.38
57,APC 7 Outlet Network SurgeArrest Surge Protector,Ann Chong,5894,-68.22,80.48,4.5,Nunavut,Appliances,0.55
58,"Deflect-o RollaMat Studded, Beveled Mat for Medium Pile Carpeting",Joy Bell,5925,-354.90,92.23,39.61,Nunavut,Office Furnishings,0.67
59,Accessory4,Joy Bell,5925,-267.01,85.99,0.99,Nunavut,Telephones and Communication,0.85
60,Personal Creations<6E> Ink Jet Cards and Labels,Skye Norling,6016,3.63,11.48,5.43,Nunavut,Paper,0.36
61,High Speed Automatic Electric Letter Opener,Barry Weirich,6116,-1759.58,1637.53,24.49,Nunavut,"Scissors, Rulers and Trimmers",0.81
62,Xerox 1966,Grant Carroll,6182,-116.79,6.48,6.65,Nunavut,Paper,0.36
63,Xerox 213,Grant Carroll,6182,-67.28,6.48,7.86,Nunavut,Paper,0.37
64,"Boston Electric Pencil Sharpener, Model 1818, Charcoal Black",Adrian Hane,6535,-19.33,28.15,8.99,Nunavut,Pens & Art Supplies,0.57
65,Hammermill CopyPlus Copy Paper (20Lb. and 84 Bright),Skye Norling,6884,-61.21,4.98,4.75,Nunavut,Paper,0.36
66,"Telephone Message Books with Fax/Mobile Section, 5 1/2"" x 3 3/16""",Skye Norling,6884,119.09,6.35,1.02,Nunavut,Paper,0.39
67,Crate-A-Files<65>,Andrew Gjertsen,6916,-141.27,10.9,7.46,Nunavut,Storage & Organization,0.59
68,"Angle-D Binders with Locking Rings, Label Holders",Ralph Knight,6980,-77.28,7.3,7.72,Nunavut,Binders and Binder Accessories,0.38
69,"80 Minute CD-R Spindle, 100/Pack - Staples",Dorothy Wardle,6982,407.44,39.48,1.99,Nunavut,Computer Peripherals,0.54
70,"Bush Westfield Collection Bookcases, Dark Cherry Finish, Fully Assembled",Dorothy Wardle,6982,-338.27,100.98,57.38,Nunavut,Bookcases,0.78
71,12-1/2 Diameter Round Wall Clock,Dorothy Wardle,6982,52.56,19.98,10.49,Nunavut,Office Furnishings,0.49
72,SAFCO Arco Folding Chair,Grant Carroll,7110,1902.24,276.2,24.49,Nunavut,Chairs & Chairmats,
73,"#10 White Business Envelopes,4 1/8 x 9 1/2",Barry Weirich,7430,353.20,15.67,1.39,Nunavut,Envelopes,0.38
74,3M Office Air Cleaner,Beth Paige,7906,271.78,25.98,5.37,Nunavut,Appliances,0.5
75,"Global Leather and Oak Executive Chair, Black",Sylvia Foulston,8391,-268.36,300.98,64.73,Nunavut,Chairs & Chairmats,0.56
76,Xerox 1936,Nicole Hansen,8419,70.39,19.98,5.97,Nunavut,Paper,0.38
77,Xerox 214,Nicole Hansen,8419,-86.62,6.48,7.03,Nunavut,Paper,0.37
78,Carina Double Wide Media Storage Towers in Natural & Black,Nicole Hansen,8833,-846.73,80.98,35,Nunavut,Storage & Organization,0.81
79,Staples<EFBFBD> General Use 3-Ring Binders,Beth Paige,8995,8.05,1.88,1.49,Nunavut,Binders and Binder Accessories,0.37
80,Xerox 1904,Beth Paige,8995,-78.02,6.48,5.86,Northwest Territories,Paper,0.36
81,Luxo Professional Combination Clamp-On Lamps,Beth Paige,8995,737.94,102.3,21.26,Northwest Territories,Office Furnishings,0.59
82,Xerox 217,Beth Paige,8995,-191.28,6.48,8.19,Northwest Territories,Paper,0.37
83,Revere Boxed Rubber Bands by Revere,Beth Paige,8995,-21.49,1.89,0.76,Northwest Territories,Rubber Bands,0.83
84,"Acco Smartsocket<65> Table Surge Protector, 6 Color-Coded Adapter Outlets",Sylvia Foulston,9126,884.08,62.05,3.99,Northwest Territories,Appliances,0.55
85,"Tennsco Snap-Together Open Shelving Units, Starter Sets and Add-On Units",Bryan Davis,9127,-329.49,279.48,35,Northwest Territories,Storage & Organization,0.8
86,Hon 4070 Series Pagoda<64> Round Back Stacking Chairs,Joy Bell,9509,2825.15,320.98,58.95,Northwest Territories,Chairs & Chairmats,0.57
87,Xerox 1887,Joy Bell,9509,2.13,18.97,5.21,Northwest Territories,Paper,0.37
88,Xerox 1891,Joy Bell,9509,707.15,48.91,5.81,Northwest Territories,Paper,0.38
89,Avery 506,Alan Barnes,9763,75.13,4.13,0.5,Northwest Territories,Labels,0.39
90,"Bush Heritage Pine Collection 5-Shelf Bookcase, Albany Pine Finish, *Special Order",Grant Carroll,9927,-270.63,140.98,53.48,Northwest Territories,Bookcases,0.65
91,"Lifetime Advantage<67> Folding Chairs, 4/Carton",Grant Carroll,9927,3387.35,218.08,18.06,Northwest Territories,Chairs & Chairmats,0.57
92,Microsoft Natural Multimedia Keyboard,Grant Carroll,9927,-82.16,50.98,6.5,Northwest Territories,Computer Peripherals,0.73
93,"Staples Wirebound Steno Books, 6"" x 9"", 12/Pack",Delfina Latchford,10022,-3.88,10.14,2.27,Northwest Territories,Paper,0.36
94,"GBC Pre-Punched Binding Paper, Plastic, White, 8-1/2"" x 11""",Don Jones,10437,-191.22,15.99,13.18,Northwest Territories,Binders and Binder Accessories,0.37
95,Bevis Boat-Shaped Conference Table,Doug Bickford,10499,31.21,262.11,62.74,Northwest Territories,Tables,0.75
96,"Linden<EFBFBD> 12"" Wall Clock With Oak Frame",Doug Bickford,10535,-44.14,33.98,19.99,Northwest Territories,Office Furnishings,0.55
97,Newell 326,Doug Bickford,10535,-0.79,1.76,0.7,Northwest Territories,Pens & Art Supplies,0.56
98,Prismacolor Color Pencil Set,Jamie Kunitz,10789,76.42,19.84,4.1,Northwest Territories,Pens & Art Supplies,0.44
99,Xerox Blank Computer Paper,Anthony Johnson,10791,93.36,19.98,5.77,Northwest Territories,Paper,0.38
100,600 Series Flip,Ralph Knight,10945,4.22,95.99,8.99,Northwest Territories,Telephones and Communication,0.57
1 1 Eldon Base for stackable storage shelf, platinum Muhammed MacIntyre 3 -213.25 38.94 35 Nunavut Storage & Organization 0.8
2 2 1.7 Cubic Foot Compact "Cube" Office Refrigerators Barry French 293 457.81 208.16 68.02 Nunavut Appliances 0.58
3 3 Cardinal Slant-D® Ring Binder, Heavy Gauge Vinyl Barry French 293 46.71 8.69 2.99 Nunavut Binders and Binder Accessories 0.39
4 4 R380 Clay Rozendal 483 1198.97 195.99 3.99 Nunavut Telephones and Communication 0.58
5 5 Holmes HEPA Air Purifier Carlos Soltero 515 30.94 21.78 5.94 Nunavut Appliances 0.5
6 6 G.E. Longer-Life Indoor Recessed Floodlight Bulbs Carlos Soltero 515 4.43 6.64 4.95 Nunavut Office Furnishings 0.37
7 7 Angle-D Binders with Locking Rings, Label Holders Carl Jackson 613 -54.04 7.3 7.72 Nunavut Binders and Binder Accessories 0.38
8 8 SAFCO Mobile Desk Side File, Wire Frame Carl Jackson 613 127.70 42.76 6.22 Nunavut Storage & Organization
9 9 SAFCO Commercial Wire Shelving, Black Monica Federle 643 -695.26 138.14 35 Nunavut Storage & Organization
10 10 Xerox 198 Dorothy Badders 678 -226.36 4.98 8.33 Nunavut Paper 0.38
11 11 Xerox 1980 Neola Schneider 807 -166.85 4.28 6.18 Nunavut Paper 0.4
12 12 Advantus Map Pennant Flags and Round Head Tacks Neola Schneider 807 -14.33 3.95 2 Nunavut Rubber Bands 0.53
13 13 Holmes HEPA Air Purifier Carlos Daly 868 134.72 21.78 5.94 Nunavut Appliances 0.5
14 14 DS/HD IBM Formatted Diskettes, 200/Pack - Staples Carlos Daly 868 114.46 47.98 3.61 Nunavut Computer Peripherals 0.71
15 15 Wilson Jones 1" Hanging DublLock® Ring Binders Claudia Miner 933 -4.72 5.28 2.99 Nunavut Binders and Binder Accessories 0.37
16 16 Ultra Commercial Grade Dual Valve Door Closer Neola Schneider 995 782.91 39.89 3.04 Nunavut Office Furnishings 0.53
17 17 #10-4 1/8" x 9 1/2" Premium Diagonal Seam Envelopes Allen Rosenblatt 998 93.80 15.74 1.39 Nunavut Envelopes 0.4
18 18 Hon 4-Shelf Metal Bookcases Sylvia Foulston 1154 440.72 100.98 26.22 Nunavut Bookcases 0.6
19 19 Lesro Sheffield Collection Coffee Table, End Table, Center Table, Corner Table Sylvia Foulston 1154 -481.04 71.37 69 Nunavut Tables 0.68
20 20 g520 Jim Radford 1344 -11.68 65.99 5.26 Nunavut Telephones and Communication 0.59
21 21 LX 788 Jim Radford 1344 313.58 155.99 8.99 Nunavut Telephones and Communication 0.58
22 22 Avery 52 Carlos Soltero 1412 26.92 3.69 0.5 Nunavut Labels 0.38
23 23 Plymouth Boxed Rubber Bands by Plymouth Carlos Soltero 1412 -5.77 4.71 0.7 Nunavut Rubber Bands 0.8
24 24 GBC Pre-Punched Binding Paper, Plastic, White, 8-1/2" x 11" Carl Ludwig 1539 -172.88 15.99 13.18 Nunavut Binders and Binder Accessories 0.37
25 25 Maxell 3.5" DS/HD IBM-Formatted Diskettes, 10/Pack Carl Ludwig 1539 -144.55 4.89 4.93 Nunavut Computer Peripherals 0.66
26 26 Newell 335 Don Miller 1540 5.76 2.88 0.7 Nunavut Pens & Art Supplies 0.56
27 27 SANFORD Liquid Accent™ Tank-Style Highlighters Annie Cyprus 1702 4.90 2.84 0.93 Nunavut Pens & Art Supplies 0.54
28 28 Canon PC940 Copier Carl Ludwig 1761 -547.61 449.99 49 Nunavut Copiers and Fax 0.38
29 29 Tenex Personal Project File with Scoop Front Design, Black Carlos Soltero 1792 -5.45 13.48 4.51 Nunavut Storage & Organization 0.59
30 30 Col-Erase® Pencils with Erasers Grant Carroll 2275 41.67 6.08 1.17 Nunavut Pens & Art Supplies 0.56
31 31 Imation 3.5" DS/HD IBM Formatted Diskettes, 10/Pack Don Miller 2277 -46.03 5.98 4.38 Nunavut Computer Peripherals 0.75
32 32 White Dual Perf Computer Printout Paper, 2700 Sheets, 1 Part, Heavyweight, 20 lbs., 14 7/8 x 11 Don Miller 2277 33.67 40.99 19.99 Nunavut Paper 0.36
33 33 Self-Adhesive Address Labels for Typewriters by Universal Alan Barnes 2532 140.01 7.31 0.49 Nunavut Labels 0.38
34 34 Accessory37 Alan Barnes 2532 -78.96 20.99 2.5 Nunavut Telephones and Communication 0.81
35 35 Fuji 5.2GB DVD-RAM Jack Garza 2631 252.66 40.96 1.99 Nunavut Computer Peripherals 0.55
36 36 Bevis Steel Folding Chairs Julia West 2757 -1766.01 95.95 74.35 Nunavut Chairs & Chairmats 0.57
37 37 Avery Binder Labels Eugene Barchas 2791 -236.27 3.89 7.01 Nunavut Binders and Binder Accessories 0.37
38 38 Hon Every-Day® Chair Series Swivel Task Chairs Eugene Barchas 2791 80.44 120.98 30 Nunavut Chairs & Chairmats 0.64
39 39 IBM Multi-Purpose Copy Paper, 8 1/2 x 11", Case Eugene Barchas 2791 118.94 30.98 5.76 Nunavut Paper 0.4
40 40 Global Troy™ Executive Leather Low-Back Tilter Edward Hooks 2976 3424.22 500.98 26 Nunavut Chairs & Chairmats 0.6
41 41 XtraLife® ClearVue™ Slant-D® Ring Binders by Cardinal Brad Eason 3232 -11.83 7.84 4.71 Nunavut Binders and Binder Accessories 0.35
42 42 Computer Printout Paper with Letter-Trim Perforations Nicole Hansen 3524 52.35 18.97 9.03 Nunavut Paper 0.37
43 43 6160 Dorothy Wardle 3908 -180.20 115.99 2.5 Nunavut Telephones and Communication 0.57
44 44 Avery 49 Aaron Bergman 4132 1.32 2.88 0.5 Nunavut Labels 0.36
45 45 Hoover Portapower™ Portable Vacuum Jim Radford 4612 -375.64 4.48 49 Nunavut Appliances 0.6
46 46 Timeport L7089 Annie Cyprus 4676 -104.25 125.99 7.69 Nunavut Telephones and Communication 0.58
47 47 Avery 510 Annie Cyprus 4676 85.96 3.75 0.5 Nunavut Labels 0.37
48 48 Xerox 1881 Annie Cyprus 4676 -8.38 12.28 6.47 Nunavut Paper 0.38
49 49 LX 788 Annie Cyprus 4676 1115.69 155.99 8.99 Nunavut Telephones and Communication 0.58
50 50 Cardinal Slant-D® Ring Binder, Heavy Gauge Vinyl Annie Cyprus 5284 -3.05 8.69 2.99 Nunavut Binders and Binder Accessories 0.39
51 51 Memorex 4.7GB DVD-RAM, 3/Pack Clay Rozendal 5316 514.07 31.78 1.99 Nunavut Computer Peripherals 0.42
52 52 Unpadded Memo Slips Don Jones 5409 -7.04 3.98 2.97 Nunavut Paper 0.35
53 53 Adams Telephone Message Book W/Dividers/Space For Phone Numbers, 5 1/4"X8 1/2", 300/Messages Beth Thompson 5506 4.41 5.88 3.04 Nunavut Paper 0.36
54 54 Eldon Expressions™ Desk Accessory, Wood Pencil Holder, Oak Frank Price 5569 -0.06 9.65 6.22 Nunavut Office Furnishings 0.55
55 55 Bell Sonecor JB700 Caller ID Michelle Lonsdale 5607 -50.33 7.99 5.03 Nunavut Telephones and Communication 0.6
56 56 Avery Arch Ring Binders Ann Chong 5894 87.68 58.1 1.49 Nunavut Binders and Binder Accessories 0.38
57 57 APC 7 Outlet Network SurgeArrest Surge Protector Ann Chong 5894 -68.22 80.48 4.5 Nunavut Appliances 0.55
58 58 Deflect-o RollaMat Studded, Beveled Mat for Medium Pile Carpeting Joy Bell 5925 -354.90 92.23 39.61 Nunavut Office Furnishings 0.67
59 59 Accessory4 Joy Bell 5925 -267.01 85.99 0.99 Nunavut Telephones and Communication 0.85
60 60 Personal Creations™ Ink Jet Cards and Labels Skye Norling 6016 3.63 11.48 5.43 Nunavut Paper 0.36
61 61 High Speed Automatic Electric Letter Opener Barry Weirich 6116 -1759.58 1637.53 24.49 Nunavut Scissors, Rulers and Trimmers 0.81
62 62 Xerox 1966 Grant Carroll 6182 -116.79 6.48 6.65 Nunavut Paper 0.36
63 63 Xerox 213 Grant Carroll 6182 -67.28 6.48 7.86 Nunavut Paper 0.37
64 64 Boston Electric Pencil Sharpener, Model 1818, Charcoal Black Adrian Hane 6535 -19.33 28.15 8.99 Nunavut Pens & Art Supplies 0.57
65 65 Hammermill CopyPlus Copy Paper (20Lb. and 84 Bright) Skye Norling 6884 -61.21 4.98 4.75 Nunavut Paper 0.36
66 66 Telephone Message Books with Fax/Mobile Section, 5 1/2" x 3 3/16" Skye Norling 6884 119.09 6.35 1.02 Nunavut Paper 0.39
67 67 Crate-A-Files™ Andrew Gjertsen 6916 -141.27 10.9 7.46 Nunavut Storage & Organization 0.59
68 68 Angle-D Binders with Locking Rings, Label Holders Ralph Knight 6980 -77.28 7.3 7.72 Nunavut Binders and Binder Accessories 0.38
69 69 80 Minute CD-R Spindle, 100/Pack - Staples Dorothy Wardle 6982 407.44 39.48 1.99 Nunavut Computer Peripherals 0.54
70 70 Bush Westfield Collection Bookcases, Dark Cherry Finish, Fully Assembled Dorothy Wardle 6982 -338.27 100.98 57.38 Nunavut Bookcases 0.78
71 71 12-1/2 Diameter Round Wall Clock Dorothy Wardle 6982 52.56 19.98 10.49 Nunavut Office Furnishings 0.49
72 72 SAFCO Arco Folding Chair Grant Carroll 7110 1902.24 276.2 24.49 Nunavut Chairs & Chairmats
73 73 #10 White Business Envelopes,4 1/8 x 9 1/2 Barry Weirich 7430 353.20 15.67 1.39 Nunavut Envelopes 0.38
74 74 3M Office Air Cleaner Beth Paige 7906 271.78 25.98 5.37 Nunavut Appliances 0.5
75 75 Global Leather and Oak Executive Chair, Black Sylvia Foulston 8391 -268.36 300.98 64.73 Nunavut Chairs & Chairmats 0.56
76 76 Xerox 1936 Nicole Hansen 8419 70.39 19.98 5.97 Nunavut Paper 0.38
77 77 Xerox 214 Nicole Hansen 8419 -86.62 6.48 7.03 Nunavut Paper 0.37
78 78 Carina Double Wide Media Storage Towers in Natural & Black Nicole Hansen 8833 -846.73 80.98 35 Nunavut Storage & Organization 0.81
79 79 Staples® General Use 3-Ring Binders Beth Paige 8995 8.05 1.88 1.49 Nunavut Binders and Binder Accessories 0.37
80 80 Xerox 1904 Beth Paige 8995 -78.02 6.48 5.86 Northwest Territories Paper 0.36
81 81 Luxo Professional Combination Clamp-On Lamps Beth Paige 8995 737.94 102.3 21.26 Northwest Territories Office Furnishings 0.59
82 82 Xerox 217 Beth Paige 8995 -191.28 6.48 8.19 Northwest Territories Paper 0.37
83 83 Revere Boxed Rubber Bands by Revere Beth Paige 8995 -21.49 1.89 0.76 Northwest Territories Rubber Bands 0.83
84 84 Acco Smartsocket™ Table Surge Protector, 6 Color-Coded Adapter Outlets Sylvia Foulston 9126 884.08 62.05 3.99 Northwest Territories Appliances 0.55
85 85 Tennsco Snap-Together Open Shelving Units, Starter Sets and Add-On Units Bryan Davis 9127 -329.49 279.48 35 Northwest Territories Storage & Organization 0.8
86 86 Hon 4070 Series Pagoda™ Round Back Stacking Chairs Joy Bell 9509 2825.15 320.98 58.95 Northwest Territories Chairs & Chairmats 0.57
87 87 Xerox 1887 Joy Bell 9509 2.13 18.97 5.21 Northwest Territories Paper 0.37
88 88 Xerox 1891 Joy Bell 9509 707.15 48.91 5.81 Northwest Territories Paper 0.38
89 89 Avery 506 Alan Barnes 9763 75.13 4.13 0.5 Northwest Territories Labels 0.39
90 90 Bush Heritage Pine Collection 5-Shelf Bookcase, Albany Pine Finish, *Special Order Grant Carroll 9927 -270.63 140.98 53.48 Northwest Territories Bookcases 0.65
91 91 Lifetime Advantage™ Folding Chairs, 4/Carton Grant Carroll 9927 3387.35 218.08 18.06 Northwest Territories Chairs & Chairmats 0.57
92 92 Microsoft Natural Multimedia Keyboard Grant Carroll 9927 -82.16 50.98 6.5 Northwest Territories Computer Peripherals 0.73
93 93 Staples Wirebound Steno Books, 6" x 9", 12/Pack Delfina Latchford 10022 -3.88 10.14 2.27 Northwest Territories Paper 0.36
94 94 GBC Pre-Punched Binding Paper, Plastic, White, 8-1/2" x 11" Don Jones 10437 -191.22 15.99 13.18 Northwest Territories Binders and Binder Accessories 0.37
95 95 Bevis Boat-Shaped Conference Table Doug Bickford 10499 31.21 262.11 62.74 Northwest Territories Tables 0.75
96 96 Linden® 12" Wall Clock With Oak Frame Doug Bickford 10535 -44.14 33.98 19.99 Northwest Territories Office Furnishings 0.55
97 97 Newell 326 Doug Bickford 10535 -0.79 1.76 0.7 Northwest Territories Pens & Art Supplies 0.56
98 98 Prismacolor Color Pencil Set Jamie Kunitz 10789 76.42 19.84 4.1 Northwest Territories Pens & Art Supplies 0.44
99 99 Xerox Blank Computer Paper Anthony Johnson 10791 93.36 19.98 5.77 Northwest Territories Paper 0.38
100 100 600 Series Flip Ralph Knight 10945 4.22 95.99 8.99 Northwest Territories Telephones and Communication 0.57

View File

@ -0,0 +1,38 @@
{
"quiz": {
"sport": {
"q1": {
"question": "Which one is correct team name in NBA?",
"options": [
"New York Bulls",
"Los Angeles Kings",
"Golden State Warriros",
"Huston Rocket"
],
"answer": "Huston Rocket"
}
},
"maths": {
"q1": {
"question": "5 + 7 = ?",
"options": [
"10",
"11",
"12",
"13"
],
"answer": "12"
},
"q2": {
"question": "12 - 8 = ?",
"options": [
"1",
"2",
"3",
"4"
],
"answer": "4"
}
}
}
}

View File

@ -0,0 +1,81 @@
= Atelier sur la première partie
L'atelier suivant vous fait construire une structure où vous pouvez :
- créer des bibliothèques
- créer des livres
- créer des utilisateurs
Et avec ces objets, vous pouvez :
- ajouter des livres à vos bibliothèques
- emprunter et rendre des livres
- voir les informations sur les emprunts
- voir les informations sur les livres présents dans une bibliothèque
- etc.
L'exercice, qui peut vous prendre un peu de temps, vous permet de :
- manipuler des objets, listes, dictionnaires
- utiliser des f-strings pour afficher des informations en console
- utiliser des méthodes et même découvrir la méthode `_ _ str _ _` (faites une recherche Google)
- structurer un peu votre code (concept limité par la taille de l'exercice)
== Organisation
- un package `entities` contenant
* un module `library` pour y mettre la classe `Library`
* un module `book` pour y mettre la classe `Book`
* un module `user` pour y mettre la classe `User`
- un module `application` vous servant de point d'entrée
l'organisation est simple, ceci dû à la taille du projet. Des projets grandissants impliquent souvent des réorganisations.
== Des bibliothèques
. Créez une classe `Library`
. Avec des attributs
- `name` (`None`)
- `is_open` (`True`)
- `books` (`None`)
. Avec des méthodes
. `_ _ init _ _(self, name=None, is_open=True)` qui initialise les attributs du nouvel objet.
. `open(self, value=True)` pour changer l'état d'ouverture :
- Ne fait rien si `value` a déjà la même valeur que `self.is_open`
. `register_book(self, book)` qui ajoute un livre à l'attribut `.books` (le transforme d'abord en liste s'il est à `None`, puis ajoute le livre)
. `show_books()` qui affiche la liste des livres enregistrés
. `_ _ str _ _(self)` qui renvoie le texte affiché si on fait `print()` sur l'objet
. `get_book_avg_prices()` qui renvoie le prix moyen des livres de la bibliothèque
== Des livres
. Créez une classe `Book`
. Avec des attributs
- `title` (`None`)
- `author` (`None`)
- `is_borrowed` (`False`) : le livre est-il emprunté
- `borrower` (`None`) : personne qui a emprunté
- `history` (`None`) : liste des opérations d'emprunt du livre
- `price` (`0`) : prix de base
. Avec des méthodes
. `_ _ init _ _(self, ...)` pour initialiser les attributs `title`, `price` et `author`
. `borrow(self, user)` qui marque le livre comme emprunté, et modifie `borrower` :
- Ne fait rien si le livre est déjà marqué emprunté, sinon :
- `is_borrowed` devient `True`
- `borrower` prend la référence de l'objet de la classe `User`
- `history` *devient* une liste à laquelle on ajoute le dictionnaire `{"user": user, "when": datetime.now()}`
. `return_borrow(self)` qui marque le livre comme rendu (non emprunté)
- Ne fait rien si le livre est déjà marqué comme non emprunté, sinon :
- `borrower` prend la valeur `None`
. `show_history(self)` qui affiche l'historique formaté des emprunts
. `show_status(self)` qui affiche le statut du livre : titre, emprunté etc.
== Des utilisateurs
. Créez une classe `User`
. Avec des attributs
- `name` (`None`)
. Avec des méthodes
. `_ _ init _ _(self, name=None)` qui initialise l'attribut de l'objet
. `_ _ str _ _ (self)` qui renvoie une chaîne `f"Utilisateur : {self.name}"`