Généralités de base sur python

Vous pouvez vous rendre sur l'espace dédié aux généralités sur python : Espace python 1

Structure de données : tuple et liste

Nous avons manipulé des variables avec des types simples : int, bool, float, str. Ce sont des conteneurs ne contenant qu'une valeur.

Nous avons manipulé aussi, sans vraiment l'étudier, des types construits ( ou types abstraits) : liste, tuple. Ces types de données s'appellent des séquences.

Dans ce cours nous allons étudier deux types de séquence : les tableaux et les p-uplets. En python, les tableaux s'appellent les listes et les p-uplets s'appellent les tuples.

Séquence

Famille indexée d'éléments par les entiers strictement positifs inférieurs ou égaux à un certain entier, ce dernier étant appelé « longueur » de la séquence. Il faut rapprocher ce mot au concept de suite en mathématiques.

En informatique, un tableau est une structure de données représentant une séquence finie d'éléments auxquels on peut accéder efficacement par leur position, ou indice, dans la séquence. C'est un type de conteneur que l'on retrouve dans un grand nombre de langages de programmation.

En Python, une séquence est une collection ordonnée d’objets qui permet d’accéder à ses éléments par leur numéro de position dans la séquence. Les listes et les tuples sont des séquences.

Il y a des points communs et des différences entre ces deux types.

Les types construits : les p-uplets (tuple en python)

Définition

p-uplet, tuple en python

Un p-uplet est une séquence immutable. C'est à dire une suite indexée de valeurs (de n'importe quel type) que l'on ne peut pas modifier.

En Python, un p-uplet est de type tuple.

construire les objets tuples

Construire un objet tuple en python.

Un tuple est défini à l'aide de parenthèses.


tup1=()
tup2=(3,) # tuple avec un seul élément
tup3=(1,4,5,'moto',4.6)
type(tup1) # pour accéder au type de l'objet
		

Vous avez à disposition un "bac à sable" pour vos tests.

Vous pouvez également utiliser jupyter ou la méthode qui vous convient le plus.

Il est important d'alimenter son cahier de bord.

accéder à un élément

Soient i un entier et t un tuple

  • pour accéder à l'élément i d'un tuple t on écrit
    t[i]
  • Le premier élément d'un tuple est indexé par 0.
  • Le dernier élément de t en Python est accessible avec l'index -1
    t[-1]
  • BONUS(non exigible) Pour afficher aux éléments entre l'index $i$ et l'index $j$ on utilise les slice:
    t[i:j+1]

    pour afficher les élément de deux en deux on pourra écrire :

    t[i:j+1:2]

*

on donne le tuple suivant : tup=(1,4,5,'moto',(12,'nsi','génial'),4.6)

Ecrire les lignes de code qui affiche :

  1. moto
  2. le dernier élément du tuple
  3. (4,5)
  4. 'nsi','génial'

Un tuple est un objet immutable : on ne peut pas réaffecter ses éléments, supprimer un élément ou encore en ajouter.

Tester ces deux lignes de codes :


tup=(1,4,5,'moto',4.6)
tup[3]='vive la moto !'

Un tuple est itérable. Cela signifie que l'on peut organiser une itération (boucle for) sur cette structure.

Tester les exemples suivants :

tup=(5,4,2,8,"moto")

for elt in tup : # méthode 1, elt prend à chaque tour les éléments de la séquence
print(elt) # print est utilisée à des fins d'observation de code

for i in range(len(tup)): # méthode 2, on parcourt les indices de la séquence
print(tup[i])

Les opérations et les méthodes sur les tuples

Opérations/méthodes Description
Méthodes et opérations communes aux listes et tuples.
x in s Renvoie True si un élément de s est égale à x, False sinon
x not in s Renvoie True si aucun un élément de s n'est égale à x, False sinon
len(s) Renvoie le nombre d'éléments de s
s == s1 Renvoie True si s et s1 sont de même type, ont la même longueur,et ont des éléments égaux deux à deux.
s[i] Renvoie l'élément d'indice i de s. Le premier élément a pour indice 0.
s[i:j] Renvoie une partie de l'indice i à j non inclus
s.index(x) Renvoie l'indice de la première apparition de x dans s
s.count(x) Renvoie le nombre d'apparitions de x dans s
s+t Renvoie une nouvelle séquence concaténation de s et t.
n*t Renvoie une nouvelle séquence composée de la concaténation de t avec lui même n fois.
*

En utilisant le code ci-dessous, vous utiliserez les méthodes et les opérations du tableau pour tester les différentes questions :

jours_1=('lundi','mardi','mercredi','jeudi','vendredi')
jours_2=('samedi','dimanche')

# Tester si samedi est un élément de jours_1

# Donner la longueur de jours_2

# Tester si jours_1 est égal à jours_2

# Donner le deuxième élément de jours_1

# Donner la partie de jours_1 entre le deuxième élément et le quatrième élément

# renvoyer l'indice de dimanche dans jours_2

# Renvoyer le nombre de samedi dans jours_2

# Créer un tuple semaine par concaténation de jours_1 et de jours_2





**

En utilisant un parcours de tuple avec la présence d'un indice, écrire une fonction est_dans(element,tple) qui en argument reçoit un entiers ( élément) et un tuple d'entier ( tple) qui renvoie un booleen indiquant la présence de élément dans tple.

on testera la fonction sur les scripts suivants :


est_dans(4,(1,2,3,4,5,6))
				

qui devrait renvoyer True


est_dans(9,(1,2,3,4,5,6))
										

qui devrait renvoyer False


import random 
tple=(random.randint(1,1000) for i in range(1000)
est_dans(400,tple)
	

Avez vous tous le même retour?

tuple et fonction

En Python, une fonction qui renvoie plusieurs éléments ( ex : return a,b,c ) renvoie un tuple.

*
def milieu(xA,yA,xB,yB) -> tuple:
"Formule qui renvoie les coordonnées du milieu d'un segment"
return (xA+xB)/2, (yA+yB)/2

type(milieu(1,3,-1,2))
En utilisant milieu(1,3,-1,2), comment afficher seulement l'abscisse ? L'ordonnée ?
***

Ecrire une fonction triangle_rect(n) qui renvoie un tuple ou chaque élément est un tuple de longueur trois. Ces tuples sont constitués de trois entiers a, b,c tels que $0<a\leq b\leq c < n$ et le triangle de cotés $a$, $b$ et $c$ soit rectangle.

Les types construits : les tableaux (liste en python)

Définition

Tableau

Un tableau est une séquence mutable.

type list en Python

Une liste en Python est une séquence mutable de longueur variable.

Nous avons déjà rencontré la notion de tableau en javascript avec la commande array.

Construire les objets list

On peut appliquer aux listes toutes les méthodes, fonctions et opérations des tuples.

une liste est définie à l'aide de crochets.

Pour initialiser en mémoire une liste vide on écrira : l=[]

  • Une liste est un objet mutable : on peut réaffecter ses éléments, ou en ajouter.
  • Tester les exemples suivants :

    liste=[5,4,2,8,"moto"]
    liste.append(35) # Ajout d'un élément à la fin de la liste
    print(liste) # print est utilisée à des fins d'observation de code
    
    liste[2]= 5 # Modification de l'élément d'indice 2
    
    print(liste)
    
    # reprendre les exemples du dessus avec un tuple
    
    tup=(1,4,9,7,"moto",4.5)
    
    # Vous allez rencontrer des messages d'erreur
    
    

    Création en extension

    La méthode append permet d'ajouter à la fin d'une liste existante un élément. On écrira :

    l.append(element_a_ajouter)
    liste=[3,8,"mot",True]
    
    liste2=[] # Création d'une liste vide
    liste2.append(4)
    
    # Afficher la liste2
    

    Création en compréhension

    liste=[3,8,"mot",True]
    liste1=[2*x for x in range(10)]
    liste2=[2*x+1 for x in range(10)]
    liste3=[x**2 for x in range(10)]
    import math
    liste4=[math.sqrt(x) for x in liste3]
    
    # Afficher les différentes listes
    
    *

    Dans cet exercice, vous devez écrire deux scripts Python qui créent la liste des entiers de 0 à 10000 de deux méthodes différentes :

    1. en extension
    2. en compréhension
    *
    1. Créer en compréhension une liste qui contienne les nombres pairs inférieurs à 10000.
    2. Créer en compréhension une liste qui contienne les nombres impairs inférieurs à 10000.
    *

    Tableaux et fonctions

    Tester les exemples suivants :

    def test(a :list)->list :
    	return [x**2 for x in a if x>0],[x for x in a if x>10]
    a=[-4,-3,-2,0,1,5,9,11]
    
    	
    1. Décrire le type du retour de la fonction.
    2. Expliquer ce que fait cette fonction.

    Résumé des opérations et des méthodes

    Opérations/méthodes Description
    Méthodes et opérations communes aux listes et tuples.
    x in s Renvoie True si un élément s est égale à x, False sinon
    x not in s Renvoie True si aucun un élément de s n'est égale à x, False sinon
    len(s) Renvoie le nombre d'éléments de s
    s == s1 Renvoie True si s et s1 sont de même type, ont la même longueur,et ont des éléments égaux deux à deux.
    s[i] Renvoie l'élément d'indice i de s. Le premier élément a pour indice 0.
    s[i:j] Renvoie une partie de l'indice i à j non inclus
    s.index(x) Renvoie l'indice de la première apparition de x dans s
    s.count(x) Renvoie le nombre d'apparitions de x dans s
    s+t Renvoie une nouvelle séquence concaténation de s et t.
    n*t Renvoie une nouvelle séquence composée de la concaténation de t avec lui même n fois.
    Méthodes et opérations applicables aux listes (mais pas aux tuples).
    s.append(x) Ajoute l'élément x à la fin de la liste s.
    s[i] = x Modifie la liste et affecte la valeur x à la case d'indice i. Attention, cette case doit exister.
    s.insert(i,v) Insère l'élément x dans s à l'indice i . Cette méthode décale les indices suivants.
    s.remove(x) Supprime de la liste le premier élément dont la valeur est égale à x
    s.pop(i) Enlève de la liste l'élément à la position i et renvoie sa valeur. En l'absence de i, c'est le dernier élément qui est supprimé et renvoyé
    s.sort() Modifie la liste s en la triant
    s.reverse() Modifie la listes en inversant l'ordre des éléments de s
    *
    # -*- coding: utf-8 -*-
    import random 
    
    liste=[random.randint(1,6) for i in range(1000)] # Comprendre la construction de cette liste
    

    Ecrire un script Python qui renvoie une liste contenant le nombre de 1,2,3,4,5 et 6. (on utilisera la méthode count.)

    Ecrire une fonction "count" sans "count"

    1. Ecrire une fonction compter(element,liste) qui a pour arguments un entier (element) et une liste d'entiers (liste) qui renvoie le nombre d'occurrence de élément dans liste.
    2. Utiliser la fonction compter pour refaire l'exercice précédent.
    3. Prolongement possible : remplacer element par une liste d'éléments dans les arguments de la fonction compter.

    Les tableaux de tableaux

    Les éléments d'un tableau peuvent être également un tableau. Ce type d'objet rappelle un objet mathématiques que vous verrez plus tard qui s'appelle une matrice. Cet objet est utilisé dans de nombreux domaines, notamment dans le traitement des images. Une image est une matrice de pixels.

    Matrices

    On appelle matrice un tableau de tableaux dont chaque tableau à la même longueur.

    Chaque élément d'une matrice A est noté $a_{i,j}$ où $i$ est le numéro de ligne et $j$ le numéro de colonne.

    On représente une matrice de taille n,m en mathématiques ainsi :

    $A = \begin{pmatrix} a_{1,1} & a_{1,2} & \cdots & a_{1,n} \\ a_{2,1} & a_{2,2} & \cdots & a_{2,n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m,1} & a_{m,2} & \cdots & a_{m,n} \end{pmatrix}$

    En Python, une matrice est une liste de listes de même longueur.

    Pour accéder à un élément organisé en liste de liste, on utilise une notation avec un double crochets. Le premier indice pointe la ligne et le deuxième indice pointe la colonne.

    Si notre matrice contient n listes de m éléments on peux la voir ainsi :

    $List= \begin{pmatrix} List[0][0] & List[0][1] & \cdots & List[0][n-1] \\ List[1][0] & List[1][1] & \cdots & List[1][n-1] \\ \vdots & \vdots & \ddots & \vdots \\ List[m-1][0] & List[m-1][1] & \cdots & List[m-1][n-1] \end{pmatrix}$

    Pour accéder à l'élément j de la ième liste de L on écrira :

    
    L[i][j]
    

    L=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]

    Ici , L[1][2]=7

    *
    L=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]

    Le premier élément de la liste L est la liste [1,2,3,4], pour l'afficher on écrit : L[0].

    Le troisième élément de ce L[0] est 3, pour y accéder nous utiliserons L[0][2]

    1. Afficher le quatrième élément du deuxième élément de la liste.
    2. Afficher le deuxième élément du troisième élément de la liste.
    3. Afficher l'élément indexé 0 du deuxième élément de la liste.
    4. Afficher L[2][3].
    5. Ajouter la valeur 26 à la deuxième liste. L est-elle encore une matrice?

    On peux se servir de données structurées en liste de listes sans que ce soit des matrices.

    **

    Ecrire une fonction matriceAlea(n:int,m:int)->list Python qui renvoie une matrice à n lignes et m colonnes d'entiers aléatoires entre 0 et 100.

    Exercices

    ***

    Le but de cet exercice est de représenter un jeu de 32 cartes.

    Un jeu de 32 cartes est composé de :

    • quatre couleurs : pique, cœur, carreau, trèfle
    • huit valeurs : roi, dame, valet,1,10,9,8,7

    1. Modélisation du problème.
      1. Comment modéliser une carte en Python?
      2. Comment modéliser un jeu de cartes?
    2. Implémentation en Python.

      Le but est d'implémenter un jeu de 32 cartes et se doter de fonctions qui permettent interagir avec ce jeu.

        Lorsque vous écrivez des fonctions :
      • Il faut typer vos fonctions. Exemple : creation_jeu32(couleur:tuple, valeur32:tuple)->list
      • Il faut écrire une aide explicative docstring, entre " ", ou entre """ """" (si l'aide fait plusieurs lignes).
      1. Créer une fonction creation_jeu32(couleur:tuple, valeur32:tuple)->list qui retourne un liste de 32 cartes.
      2. Vérifier que le jeu possède 32 cartes
      3. On veut pouvoir mélanger le jeu de 32 cartes. Il existe une fonction "shuffle(liste)" qui mélange les éléments d'une liste. Ecrire une fonction melange(jeu:list)->list qui renvoie le jeu de cartes mélangé.
      4. On veut pouvoir tirer une carte au hasard du jeu. Si le jeu est mélangé, cela peut être la première carte. Il faut penser à retirer la carte du jeu. carte_hasard(jeu:list)->tuple
      5. On veut pouvoir créer une "main" de 5 cartes. Une main signifie un ensemble de cartes. Ecrire une fonction main(nombre_cartes: int,jeu:list)->list: qui renvoie une main formée du nombre de cartes. Il faut penser à retirer la main créée du jeu de 32 cartes.
    3. Vers une autre structure de données construites.

      On veut pouvoir comparer des cartes pour réaliser par exemple des jeux.

      1. Modélisation
        1. Comment modéliser la "force" d'une carte?
        2. Comment modéliser le jeu de cartes avec la force de chaque carte?
      2. Implémentation en Python
        1. Ecrire une fonction force(carte:tuple)->int: qui renvoie la "force" de la carte.
        2. Ecrire une fonction jeu_force(jeu) qui renvoie le jeu des cartes associées à leur force .
        3. On veut comparer deux cartes. Ecrire une fonction en Python compare(carte1:tuple,carte2:tuple,jeu_force:dict)->tuple qui renvoie la carte avec la force la plus élevée.
        4. Inventer une notion de distance entre deux cartes. Ecrire une fonction distance(carte1:tuple,carte2:tuple)->int qui renvoie la "distance" entre deux cartes.

    Le prolongement de cette activité est la création d'un jeu (bataille, rami, blackjack, poker, pyramide, etc.). La création d'un jeu pourra être développée dans le cadre de votre projet.

    ***

    Faire une recherche sur le web sur la notion de carré magique. Un carré magique d'ordre 3 est une matrice de 3 lignes et trois colonnes dont la somme des lignes, des colonnes et des diagonales fait le même nombre.

    L=[	[2,7,6],
    [9,5,1],
    [4,3,8]]
    

    Ecrire un script Python qui vérifie que ce carré est magique. Le prolongement de cet exercice est la recherche de carrés magiques à partir de carrés à compléter.

    **

    Python considère une phrase comme une séquence. Vous pouvez réaliser des essais avec cette citation célèbre du philosophe Confusius : "Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions." De quelle type de séquence se rapproche-t-on? De la liste et/ou du tuple ? Faire des tests à partir de vos connaissances en python.

    # -*- coding: utf-8 -*-
    citation="Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions."
    
    # Quelques tests à faire :
    
    citation[3]
    citation[4]='z'
    citation.append('!')
    
    # En chercher d'autres 
    
    
    

    En utilisant la méthode count(elt), compter le nombre de 'a' dans la citation, le nombre de 'e', le nombre de voyelles, etc.

    **

    Il existe pour les listes des méthodes très intéressantes dans le traitement des chaines de caractères. Ce sont les méthodes split() et join(). Observer le code proposé et réaliser les affichages des listes créées. Penser à également utiliser la commande type(variables) afin de vérifier le type des variables créées.

    En utilisant ces principes, comment faire pour créer une liste de mots à partir de la chaine de caractères suivante : chaine="un,deux,trois,quatre,cinq" ?

    Correction à télécharger

    Le fichier de correction sera disponible à la fin de la séquence.

    Structure de données : dictionnaires (tableaux associatifs)

    *

    On donne la liste suivante :

    # Données sur la couleur des yeux
    
    # marron = "m"
    # bleu = "b"
    # noisette = "n"
    # verts = "v"
    # gris = "g"
    l=['m', 'n', 'g', 'm', 'b', 'b', 'g', 'm', 'v', 'm', 'b', 'n', 'm', 'n', 'v', 'm', 'm', 'b', 'm', 'm', 'm', 'm', 'b', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm']

    Quelle information pouvez vous extraire de cette liste? Comment organiser cette information?

    Définition

    Le dictionnaire , de type dict en Python, est une structure de données permettant d’associer des valeurs à des clés.

    C'est un type de conteneur comme les list et les tuple mais ce n'est pas une séquence. Au sens où les valeurs des tableaux ne sont pas indexés par des entiers.

    Les clés peuvent être de type : str, entier, flottants, tuple ( à conditions que les tuples ne contiennent que des entiers, des flottants ou des n-uplets et pas des listes).

    Les valeurs peuvent être de n'importe quel type.

    A partir d’une clé, on peut alors accéder directement à la valeur qui lui est associée.

    Construire les objets dict

    construire un objet dict en Python

    Pour créer un dictionnaire, on écrit entre des accolades les couples séparés par deux points :, chaque couple étant composé d'une clé et de la valeur correspondante.

    En Python, on écrira :

    {clé1:valeur1,clé2:valeur2,....}

    • dico={"yes":"oui", "no":"non","and":"et", "nsi":"dansletop2despé", "maths":"dansletop2desspé"}
    •  jours={1:"lundi",2:"mardi",3:"mercredi",4:"jeudi",5:"vendredi",6:"samedi",7:"dimanche"}
    • 
      Balzac={'pnom':'Honoré de Balzac','nais':1799,'mort':1850,'romans':['Les Chouans','La Peau de chagrin','Les Contes drolatiques','Eugénie Grandet','Le Père Goriot','Le Colonel Chabert','Le Lys dans la vallée','Illusions perdues','Ursule Mirouët','La Cousine Bette','Le Cousin Pons']}
      
      				

    *

    Pour chaque question déterminer si la structure proposée est un dictionnaire en identifiant les clés , les valeurs et leur type.

    1. {"prénoms" : ["Jaime", "lansi","aimé","hans","aignan"], "âge" : 16,"1":2019}
    2. {[1,2,3]:"triplet",[x,y]:"couple"}
    3. {(1,2,3):"triplet",(x,y):"couple"}
    4. {(10, 'trèfle'): 10, (9, 'trèfle'): 9, (8, 'trèfle'): 8, (7, 'trèfle'): 7}

    Création en extension

    Pour ajouter une couple de clé,valeur il suffit d'écrire :

    
    d[nouvelle_clé]=nouvelle_valeur
    	

    *

    On donne le dictionnaire suivant qui donne les résultats de Bob :

    
    res={'nsi' :18,'maths':17,'svt':14,'français':14,'lv1':8,'physique':12,'HG':11}
    	

    Ajouter la moyenne de 12 en lv2.

    **
    1. Ecrire une fonction const_dico(cle,valeur) qui renvoie le dictionnaire définie par les clés et les valeurs entrées en argument.
    2. On donne des listes de certains joueurs de League Of Legend ainsi que leur classement et leur nombre de points :

      
      pseudo=['Major Alexander','KBM Wiz', 'FNC MagiFelix','Avalanche','love camile','Nobody']
      classement=[(12,1406),(1,1613),(4,1507),(9,1429),(16,1341),(11,1416)]
      			
      1. Quel le type de chacun des éléments?
      2. Appliquer votre fonction const_dico(cle,valeur) sur les joueurs de LOL.

    Il existe divers procédés de construction d'un dictionnaire afin d'éviter d'ajouter les éléments un par un, en voila 2 exemples :

    Création en compréhension

    Comme avec les listes il est possible de construire des dictionnaire en compréhension.

    *

    Prenez le temps de lire et de comprendre et d'expliquer à l'écrit les lignes de script suivantes :

    
    dico1={x:x**2 for x in range(1,5)}
    jours='lundi','mardi','mercredi','jeudi','vendredi','samedi','dimanche'
    dico={i+1:jours[i] for i in range(len(jours))}
    
    
    ***

    Cryptographie

    1. la fonction chr()

      Pour cet exercice nous allons utiliser la fonction chr de Python qui prend en argument un entier (codé en décimal) et qui renvoie le caractère ASCII associé.

      Voici une table ASCII

      Décimal   Octal   Hex  Binaire   Caractère
      -------   -----   ---  --------    ------
      000      000    00   00000000      NUL    (Null char.)
      001      001    01   00000001      SOH    (Start of Header)
      002      002    02   00000010      STX    (Start of Text)
      003      003    03   00000011      ETX    (End of Text)
      004      004    04   00000100      EOT    (End of Transmission)
      005      005    05   00000101      ENQ    (Enquiry)
      006      006    06   00000110      ACK    (Acknowledgment)
      007      007    07   00000111      BEL    (Bell)
      008      010    08   00001000       BS    (Backspace)
      009      011    09   00001001       HT    (Horizontal Tab)
      010      012    0A   00001010       LF    (Line Feed)
      011      013    0B   00001011       VT    (Vertical Tab)
      012      014    0C   00001100       FF    (Form Feed)
      013      015    0D   00001101       CR    (Carriage Return)
      014      016    0E   00001110       SO    (Shift Out)
      015      017    0F   00001111       SI    (Shift In)
      016      020    10   00010000      DLE    (Data Link Escape)
      017      021    11   00010001      DC1    (XON)(Device Control 1)
      018      022    12   00010010      DC2    (Device Control 2)
      019      023    13   00010011      DC3    (XOFF)(Device Control 3)
      020      024    14   00010100      DC4    (Device Control 4)
      021      025    15   00010101      NAK    (Negative Acknowledgement)
      022      026    16   00010110      SYN    (Synchronous Idle)
      023      027    17   00010111      ETB    (End of Trans. Block)
      024      030    18   00011000      CAN    (Cancel)
      025      031    19   00011001       EM    (End of Medium)
      026      032    1A   00011010      SUB    (Substitute)
      027      033    1B   00011011      ESC    (Escape)
      028      034    1C   00011100       FS    (File Separator)
      029      035    1D   00011101       GS    (Group Separator)
      030      036    1E   00011110       RS    (Request to Send)(Record Separator)
      031      037    1F   00011111       US    (Unit Separator)
      032      040    20   00100000       SP    (Space)
      033      041    21   00100001        !    (exclamation mark)
      034      042    22   00100010        "    (double quote)
      035      043    23   00100011        #    (number sign)
      036      044    24   00100100        $    (dollar sign)
      037      045    25   00100101        %    (percent)
      038      046    26   00100110        &    (ampersand)
      039      047    27   00100111        '    (single quote)
      040      050    28   00101000        (    (left opening parenthesis)
      041      051    29   00101001        )    (right closing parenthesis)
      042      052    2A   00101010        *    (asterisk)
      043      053    2B   00101011        +    (plus)
      044      054    2C   00101100        ,    (comma)
      045      055    2D   00101101        -    (minus or dash)
      046      056    2E   00101110        .    (dot)
      047      057    2F   00101111        /    (forward slash)
      048      060    30   00110000        0
      049      061    31   00110001        1
      050      062    32   00110010        2
      051      063    33   00110011        3
      052      064    34   00110100        4
      053      065    35   00110101        5
      054      066    36   00110110        6
      055      067    37   00110111        7
      056      070    38   00111000        8
      057      071    39   00111001        9
      058      072    3A   00111010        :    (colon)
      059      073    3B   00111011        ;    (semi-colon)
      060      074    3C   00111100        <    (less than sign)
      061      075    3D   00111101        =    (equal sign)
      062      076    3E   00111110        >    (greater than sign)
      063      077    3F   00111111        ?    (question mark)
      064      100    40   01000000        @    (AT symbol)
      065      101    41   01000001        A
      066      102    42   01000010        B
      067      103    43   01000011        C
      068      104    44   01000100        D
      069      105    45   01000101        E
      070      106    46   01000110        F
      071      107    47   01000111        G
      072      110    48   01001000        H
      073      111    49   01001001        I
      074      112    4A   01001010        J
      075      113    4B   01001011        K
      076      114    4C   01001100        L
      077      115    4D   01001101        M
      078      116    4E   01001110        N
      079      117    4F   01001111        O
      080      120    50   01010000        P
      081      121    51   01010001        Q
      082      122    52   01010010        R
      083      123    53   01010011        S
      084      124    54   01010100        T
      085      125    55   01010101        U
      086      126    56   01010110        V
      087      127    57   01010111        W
      088      130    58   01011000        X
      089      131    59   01011001        Y
      090      132    5A   01011010        Z
      091      133    5B   01011011        [    (left opening bracket)
      092      134    5C   01011100        \    (back slash)
      093      135    5D   01011101        ]    (right closing bracket)
      094      136    5E   01011110        ^    (caret cirumflex)
      095      137    5F   01011111        _    (underscore)
      096      140    60   01100000        `
      097      141    61   01100001        a
      098      142    62   01100010        b
      099      143    63   01100011        c
      100      144    64   01100100        d
      101      145    65   01100101        e
      102      146    66   01100110        f
      103      147    67   01100111        g
      104      150    68   01101000        h
      105      151    69   01101001        i
      106      152    6A   01101010        j
      107      153    6B   01101011        k
      108      154    6C   01101100        l
      109      155    6D   01101101        m
      110      156    6E   01101110        n
      111      157    6F   01101111        o
      112      160    70   01110000        p
      113      161    71   01110001        q
      114      162    72   01110010        r
      115      163    73   01110011        s
      116      164    74   01110100        t
      117      165    75   01110101        u
      118      166    76   01110110        v
      119      167    77   01110111        w
      120      170    78   01111000        x
      121      171    79   01111001        y
      122      172    7A   01111010        z
      123      173    7B   01111011        {    (left opening brace)
      124      174    7C   01111100        |    (vertical bar)
      125      175    7D   01111101        }    (right closing brace)
      126      176    7E   01111110        ~    (tilde)
      127      177    7F   01111111      DEL    (delete)
      

      1. Quels sont les entiers qui code l'alphabet en lettre capitale?
      2. Quels scripts faut-il écrire pour obtenir l'affichage de la lettre A et du mot NSI?
      3. Ecrire le script Python qui permet d'obtenir une structure de données de type dict qui doit être :
    2. Le chiffrement de César

      A chaque lettre de l'alphabet on associe un nombre de à 0 à 25. On ajoute à ce nombre un nombre choisi par exemple 7. Le reste de la division euclidienne du nombre obtenue par 26 correspond au chiffre qui codera la lettre initiale.

      la lettre Y est associée à 24, on lui ajoute 7 on obtient 31. Le reste de la division euclidienne de 31 par 26 est 5. Ce qui donne E. Y est donc codé par E.

      1. Quels scripts écrire pour obtenir le code de la lettre A et du mot NSI avec un décalage de 7. Rappelez vous que le reste de la vision euclidienne de a par b s'obtient en Python ainsi : a%b
      2. Quel script écrire pour obtenir le dictionnaire de la table de codage/décodage de l'alphabet avec la méthode du chiffrement de César avec un décalage de 7? On stockera ce dictionnaire dans une variable nommée d.
    3. Une fonction de codage

      1. Reprendre votre dictionnaire d et tester :
        
        d['A']
        d['D']
        d['E']
        				
      2. Dans le script précédent quel est le statut de 'A', 'D' et 'E'? Clé ou valeur?
      3. Ecrire une fonction en Python codage(mot) qui prend en argument un chaine de caractère écrit en lettre capitale et qui renvoie le mot codé par le chiffrement de César.

    Création à partir d'une liste

    la fonction dict()

    la fonction dict permet la conversion d'une liste de listes à deux éléments en dictionnaire.

    
    liste=[['a',1],['b',2],['c',3]]
    d=dict(liste)
    print(d)
    

    Interagir avec un dictionnaire

    Accès au éléments d'un dictionnaire

    Accéder aux valeurs associés à une clé

    Pour accéder à la valeur d'une clé d'un dictionnaire d on écrit :

    
    d[clé]
    

    *

    On donne le dictionnaire suivant :

    1. Afficher les prénoms de Turing.
    2. Afficher sa nationalité
    3. Déterminer l'âge qu'avait Alan Turing à sa mort.

    Modifier un dictionnaire

    Pour modifier une valeur d'une clé d'un dictionnaire d on écrit :

    
    d[cle]=new_value
    		

    *

    Modifier la couleur du pantalon de Bob dans ce dictionnaire :

    
    pantalon_Bob={'tissu':'coton','taille':'40', 'couleur':'bleu'}
    	

    Nombre d'éléments d'un dictionnaire

    Pour connaitre la longueur d'un dictionnaire on utilise la fonction len

    *

    Déterminer le nombre d'éléments dans ce dictionnaire :

    
    {0: 828, 1: 5418, 3: 469, 4: 306, 6: 833, 7: 7, 9: 3422, 2: 1690, 8: 7056, 5: 321, 18: 2333, 20: 850, 19: 798, 11: 7693, 17: 1730, 33: 782, 15: 3477, 32: 1443, 37: 475, 24: 287, 28: 1920, 42: 513, 14: 5040, 46: 1059, 25: 3464, 49: 1227, 21: 1813, 54: 2946, 41: 6034, 12: 4322, 43: 686, 51: 2917, 16: 6905, 53: 2028, 22: 2780, 10: 5907, 39: 4397, 67: 851, 71: 3434, 70: 3111, 13: 1341, 86: 18, 61: 3031, 29: 716, 79: 2302, 56: 4465, 72: 958, 66: 4054, 27: 495, 81: 4913, 82: 2831, 91: 377, 45: 1581, 73: 574, 88: 1910, 95: 4365, 93: 304, 90: 2093, 57: 2321, 38: 8675, 117: 4098, 102: 6831, 62: 256, 104: 1342, 77: 2893, 130: 2736, 97: 1041, 129: 646, 133: 20, 94: 3729, 44: 1212, 138: 4838, 84: 351, 144: 359, 123: 1448, 120: 5921, 121: 1069, 124: 668, 128: 1081, 131: 1197, 156: 189, 155: 859, 50: 1858, 69: 1725, 167: 246, 146: 3651, 35: 6752, 191: 1578, 34: 791, 194: 3051, 150: 1406, 184: 1364, 87: 5572, 175: 494, 36: 3235, 202: 5373, 192: 121, 98: 2694, 115: 5420, 75: 957, 105: 10, 85: 1551, 190: 136, 213: 235, 118: 5853, 127: 823, 188: 2109, 40: 7310, 136: 226, 110: 1287, 218: 279, 78: 1494, 76: 1841, 173: 8402, 199: 5806, 225: 3531, 180: 1438, 162: 2127, 109: 3003, 235: 5881, 114: 4217, 132: 3200, 206: 317, 176: 4538, 223: 1276, 119: 1600, 108: 659, 30: 922, 147: 199, 80: 1399, 169: 2468, 241: 60, 172: 557, 220: 4801, 134: 98, 219: 1146, 214: 2367, 205: 4218, 152: 525, 142: 3075, 245: 2401, 137: 51, 217: 1894, 242: 7900, 290: 5461, 141: 1247, 250: 695, 273: 1824, 296: 1800, 170: 2619, 286: 9, 247: 4060, 256: 353, 251: 1700, 259: 945, 221: 829, 203: 2027, 262: 1540, 149: 700, 293: 608, 107: 5829, 258: 7850, 271: 1207, 163: 1429, 92: 147, 212: 2910, 186: 5566, 151: 1003, 313: 4841, 89: 2728, 154: 6376, 348: 1191, 23: 2212, 335: 430, 356: 43, 358: 590, 230: 6334, 211: 898, 277: 452, 161: 841, 168: 129, 125: 1601, 243: 2820, 311: 2792, 249: 1466, 272: 4055, 330: 1299, 159: 576, 157: 2930, 386: 2810, 389: 4815, 379: 3097, 377: 847, 295: 862, 285: 1375, 236: 1345, 404: 3610, 216: 8192, 274: 413, 74: 2259, 349: 1875, 328: 998, 153: 65, 200: 530, 321: 1878, 164: 589, 395: 1132, 197: 1172, 68: 6773, 415: 422, 252: 5913, 158: 147, 196: 1787, 283: 1193, 351: 2880, 360: 1869, 276: 217, 233: 59, 337: 6050, 437: 2383, 418: 3354, 122: 3835, 160: 458, 446: 355, 255: 13, 231: 368, 408: 1725, 179: 5701, 346: 1454, 299: 3501, 65: 14, 442: 56, 350: 919, 479: 960, 470: 140, 116: 2912, 399: 2372, 315: 22, 398: 315, 246: 1208, 312: 4046, 339: 2770, 291: 6790, 427: 3705, 353: 44, 443: 4637, 368: 3565, 195: 3247, 491: 19, 198: 1425, 47: 1558, 177: 3139, 501: 5441, 310: 4506, 378: 1731, 322: 1807, 503: 5970, 344: 676, 317: 2853, 227: 52, 450: 2061, 465: 331, 181: 6971, 278: 1249, 325: 3146, 59: 1077, 508: 2119, 380: 1126, 60: 4877, 302: 265, 280: 195, 561: 3838, 371: 5452, 63: 4795, 459: 3125, 502: 150, 334: 545, 429: 1520, 536: 2219, 439: 212, 498: 300, 307: 2673, 309: 5929, 455: 1132, 208: 1018, 381: 2981, 563: 3124, 239: 841, 565: 6800, 268: 1489, 428: 3895, 373: 337, 581: 14, 528: 6910, 417: 827, 407: 200, 55: 4767, 435: 1462, 559: 184, 332: 431, 111: 254, 473: 3065, 432: 991, 338: 2581, 366: 295, 412: 786, 275: 690, 471: 2700, 588: 458, 165: 6977, 444: 2165, 265: 3861, 267: 364, 387: 575, 289: 3761, 363: 3604, 631: 2228, 591: 575, 620: 5228, 621: 307, 269: 1864, 341: 1006, 618: 960, 525: 1713, 320: 1089, 523: 1083, 485: 639, 558: 6136, 568: 3619, 468: 101, 361: 285, 319: 5785, 31: 7022, 282: 1295, 303: 139, 680: 2114, 556: 3681, 477: 119, 240: 3049, 511: 2677, 656: 6289, 643: 2507, 645: 1882, 667: 1236, 647: 3625, 560: 3871, 410: 3459, 100: 3950, 140: 8017, 318: 2918, 403: 1763, 608: 410, 687: 63, 719: 2760, 314: 979, 646: 161, 694: 1456, 326: 2761, 355: 1304, 597: 777, 396: 284, 718: 3212, 484: 1335, 478: 493, 281: 76, 518: 2971, 670: 859, 632: 677, 423: 2287, 745: 5276, 316: 3646, 106: 4412, 304: 1449, 182: 553, 547: 2914, 279: 447, 166: 1669, 411: 1129, 753: 3967, 658: 226, 391: 1141, 424: 29, 392: 3628, 514: 6545, 481: 486, 737: 181, 507: 433, 516: 5444, 720: 41, 204: 186, 531: 98, 426: 189, 524: 3908, 611: 4016, 774: 5919, 622: 4813, 769: 5808, 637: 5957, 571: 1045, 791: 788, 566: 737, 430: 2557, 749: 1253, 657: 2336, 689: 61, 400: 1408, 624: 9285, 832: 588, 449: 708, 590: 848, 210: 1130, 665: 4995, 287: 731, 284: 5399, 447: 97, 448: 4797, 843: 4778, 533: 452, 145: 1992, 472: 3485, 614: 212, 822: 1169, 603: 4481, 723: 1794, 780: 2045, 773: 661, 551: 450, 872: 179, 228: 6149, 451: 892, 445: 1125, 113: 2447, 636: 5019, 148: 552, 340: 5795, 846: 244, 684: 2426, 372: 6215, 606: 1004, 727: 178, 685: 1085, 655: 1234, 650: 1556, 222: 383, 300: 534, 847: 1460, 758: 1411, 609: 409, 305: 1953, 425: 2715, 785: 5109, 733: 3527, 781: 5734, 336: 303, 628: 656, 669: 849, 264: 1011, 331: 2704, 369: 5227, 913: 1835, 779: 6332, 615: 1654, 416: 3904, 376: 2256, 610: 5849, 849: 4855, 555: 2736, 486: 2013, 537: 5674, 850: 4877, 58: 4298, 288: 5396, 83: 901, 431: 3213, 848: 6531, 766: 2222, 596: 1598, 800: 8425, 747: 7344, 385: 350, 827: 3079, 864: 862, 539: 2857, 583: 799, 261: 3152, 742: 115, 802: 21, 343: 130, 948: 1082, 916: 5124, 635: 978, 569: 6377, 374: 1055, 886: 1419, 487: 3871, 96: 586, 594: 1073, 712: 409, 760: 1038, 909: 516, 496: 6013, 587: 2100, 814: 3705, 257: 8181, 406: 2, 884: 1345, 263: 6946, 347: 3017, 993: 1159, 873: 2511, 925: 6284, 474: 518, 688: 3993, 183: 1634, 861: 4196, 686: 1557, 638: 241, 938: 5471, 734: 1614, 623: 6549, 187: 588, 710: 2427, 868: 238, 193: 3150, 494: 1518, 541: 1937, 829: 548, 1014: 3722, 601: 468, 48: 1250, 859: 2353, 722: 6857, 292: 7120, 857: 1502, 879: 7934, 682: 1053, 761: 8128, 306: 919, 324: 816, 714: 356, 1055: 1131, 860: 732, 706: 95, 934: 2231, 936: 4976, 466: 8474, 882: 1704, 1028: 848, 896: 1088, 1047: 1583, 1029: 200, 892: 5649, 840: 3941, 813: 3022, 1021: 5416, 1132: 4370, 812: 1238, 772: 7558, 728: 736, 906: 4931, 958: 836, 763: 4550, 730: 1046, 866: 6094, 461: 2717, 765: 1891, 837: 8303, 602: 986, 612: 12, 1048: 595, 1131: 1398, 935: 714, 1040: 4358, 795: 3308, 1054: 567, 592: 36, 1032: 1628, 467: 1296, 1128: 6670, 244: 994, 460: 816, 613: 3628, 672: 4467, 545: 1137, 375: 3129, 237: 500, 697: 1357, 1164: 549, 1186: 3208, 933: 1115, 991: 5871, 1185: 510, 735: 2443, 475: 988, 1170: 2155, 654: 419, 957: 1644, 1166: 3676, 842: 4582, 895: 448, 977: 930, 573: 321, 1202: 3980, 804: 1311, 715: 2665, 1210: 2372, 865: 1116, 1041: 5568, 607: 3277, 1015: 1607, 593: 1604, 500: 1210, 787: 2793, 457: 494, 863: 2726, 1037: 4781, 1147: 1728, 914: 5098, 740: 932, 1086: 1084, 953: 1620, 651: 1975, 982: 5818, 1201: 3495, 1233: 1178, 1220: 340, 1173: 2567, 1238: 1721, 548: 1526, 1113: 4881, 997: 2836, 382: 2116, 580: 5761, 1153: 1089, 975: 726, 786: 6095, 1245: 1374, 1229: 1024, 452: 2538, 966: 785, 1196: 754, 988: 4216, 738: 9597, 394: 3521, 816: 1000, 794: 156, 1294: 426, 342: 683, 1083: 943, 1103: 1747, 900: 982, 419: 5363, 1283: 3444, 454: 246, 673: 2006, 1311: 5122, 1109: 1370, 639: 1925, 898: 7777, 1114: 29, 784: 7545, 600: 9305, 489: 4913, 595: 5165, 748: 495, 871: 4342, 666: 1556, 178: 4496, 1003: 825, 488: 4880, 483: 490, 578: 1019, 1056: 2565, 662: 1621, 869: 840, 640: 4483, 538: 7214, 762: 1141, 668: 572, 1190: 854, 436: 426, 506: 1426, 456: 959, 1237: 4681, 1221: 2533, 732: 1022, 778: 5617, 1124: 390, 572: 1328, 1230: 460, 1043: 7399, 1079: 5396, 1343: 2650, 891: 3381, 999: 5095, 1180: 5927, 1378: 658, 209: 738, 1365: 5180, 789: 3002, 1049: 2563, 1209: 1938, 1118: 1480, 493: 4115, 390: 2324, 1182: 2935, 1266: 1368, 1059: 3031, 504: 4982, 659: 884, 1305: 132, 589: 751, 693: 967, 1308: 3179, 1277: 479, 1303: 8239, 836: 1301, 705: 1293, 1454: 6264, 1078: 6146, 1058: 793, 1367: 5360, 907: 203, 824: 3433, 1023: 2121, 889: 1590, 405: 2979, 834: 1210, 1392: 287, 1256: 324, 605: 1168, 1331: 2584, 1157: 989, 1243: 808, 1080: 211, 1208: 2735, 626: 1003, 112: 198, 1082: 887, 630: 23, 1172: 1038, 1119: 1968, 1450: 3017, 619: 2606, 956: 542, 422: 672, 1354: 3380, 308: 2585, 890: 2885, 1212: 4356, 1223: 2336, 1495: 7008, 1460: 4387, 856: 1193, 1310: 612, 1370: 8566, 420: 2927, 696: 879, 1158: 2150, 796: 1398, 599: 2151, 1487: 1599, 553: 2219, 1265: 1750, 751: 448, 918: 7477, 1406: 571, 1004: 202, 1292: 2115, 579: 1578, 1542: 273, 1195: 738, 1414: 1528, 1339: 2902, 1405: 874, 1217: 2877, 1150: 88, 1456: 605, 1407: 408, 1273: 1427, 1271: 1555, 1384: 4729, 1001: 5385, 1514: 1667, 207: 553, 1330: 1565, 297: 5319, 1005: 6826, 549: 157, 1240: 7065, 954: 1, 1138: 30, 1154: 4384, 711: 6115, 1216: 2723, 266: 4452, 1332: 7902, 998: 308, 1017: 804, 1445: 5069, 969: 1629, 1325: 2713, 1228: 919, 1573: 2312, 359: 4113, 625: 8210, 683: 1785, 1471: 4669, 1129: 4992, 515: 3295, 1517: 252, 1546: 3229, 627: 160, 1532: 1323, 939: 395, 1453: 256, 1108: 6006, 905: 1140, 135: 2800, 770: 2166, 1249: 67, 1654: 108, 1477: 7989, 831: 3577, 1313: 7814, 535: 174, 1492: 2535, 1655: 6801, 357: 1712, 867: 6545, 893: 8613, 880: 1332, 922: 5946, 919: 1465, 854: 5702, 1466: 1926, 1522: 6395, 1567: 6156, 1409: 1165, 987: 4606, 1538: 144, 248: 2726, 708: 1180, 1174: 5614, 1165: 3592, 1171: 1967, 298: 3364, 1440: 912, 1324: 539, 1465: 584, 756: 723, 253: 925, 234: 8097, 1319: 321, 1607: 509, 1022: 5602, 799: 471, 64: 4875, 1106: 2902, 1496: 1315, 1710: 4569, 1244: 3591, 1478: 1019, 1267: 1378, 1419: 1480, 527: 3437, 1581: 4435, 1300: 3987, 985: 3552, 858: 1228, 716: 3819, 1031: 2007, 1722: 935, 139: 1514, 126: 1058, 1659: 5166, 1112: 415, 790: 2594, 1585: 1081, 1413: 1025, 543: 3240, 1081: 5720, 413: 400, 1754: 271, 1735: 3248, 736: 2022, 1012: 4787, 1372: 1880, 1582: 1097, 885: 4166, 660: 3669, 1599: 2746, 1771: 3927, 1241: 6876, 1747: 899, 1473: 1547, 1668: 2842, 1746: 1294, 876: 1230, 1278: 1353, 1524: 135, 1274: 4083, 495: 317, 771: 3534, 768: 3714, 1500: 1357, 567: 2337, 928: 6376, 1642: 212, 739: 190, 1575: 2684, 433: 5376, 1038: 636, 1544: 672, 1687: 2153, 853: 2268, 1411: 6702, 513: 6703, 1678: 1791, 1285: 1671, 1062: 968, 810: 6585, 1326: 1271, 1501: 5209, 1390: 3583, 1369: 781, 1034: 1002, 826: 924, 1341: 1824, 224: 801, 1006: 6285, 755: 915, 1550: 9323, 1511: 1033, 1234: 5045, 776: 5510, 1870: 6016, 1670: 2791, 1650: 1329, 1774: 1113, 1493: 3798, 700: 287, 1203: 2759, 1362: 2127, 1676: 1693, 421: 1065, 937: 1594, 1091: 3348, 1355: 1846, 1543: 2841, 497: 5145, 1646: 5458, 1262: 6498, 797: 1891, 1057: 2303, 633: 1963, 1290: 965, 333: 583, 1206: 3831, 1299: 4701, 1070: 4256, 1904: 821, 1239: 3741, 1745: 5524, 820: 3126, 1638: 2763, 1692: 5224, 1099: 991, 492: 4707, 972: 4530, 517: 1998, 1869: 2746, 1200: 1303, 1060: 1946, 1211: 579, 1408: 1926, 1443: 1929, 1321: 6971, 1874: 896, 1876: 3487, 1251: 658, 1178: 5461, 1671: 1179, 1064: 5307, 923: 731, 1505: 1871, 851: 7298, 1664: 4159, 1399: 2820, 1509: 1966, 731: 6597, 927: 1523, 1613: 955, 1912: 3641, 384: 2743, 327: 232, 393: 612, 1878: 1776, 1438: 2795, 1910: 2978, 652: 5611, 1289: 521, 1400: 1275, 1197: 5384, 811: 505, 1845: 1433, 1623: 113, 1377: 2501, 1608: 1743, 1990: 206, 819: 2164, 616: 2694, 1998: 2213, 801: 6831, 229: 1326, 1587: 580, 1757: 4721, 910: 2598, 1092: 8119, 546: 1673, 1348: 1147, 707: 291, 1177: 2976, 2018: 598, 806: 1955, 1988: 1757, 1911: 577, 1120: 6573, 1856: 4330, 564: 3737, 1997: 2136, 1898: 2046, 1619: 5445, 809: 8067, 1008: 4920, 2011: 697, 904: 4122, 562: 695, 1900: 191, 1560: 1524, 1592: 1893, 1862: 3969, 1072: 2955, 1568: 2961, 981: 162, 1402: 1524, 1840: 2628, 2103: 4718, 509: 1249, 1725: 884, 1033: 1590, 1067: 2833, 1063: 5429, 1916: 136, 2073: 3030, 1605: 639, 1415: 2856, 1349: 3091, 1551: 1853, 1999: 2449, 1634: 1769, 1272: 981, 1717: 1209, 1398: 4450, 1516: 385, 1748: 4115, 641: 519, 1387: 2611, 1773: 4714, 649: 357, 1090: 336, 1315: 1567, 1957: 1733, 1418: 2133, 52: 1346, 1410: 1430, 1785: 4352, 1026: 7471, 1281: 706, 1615: 958, 962: 7072, 1432: 582, 949: 342, 1872: 1139, 1877: 1308, 921: 7031, 1688: 1553, 1535: 800, 1984: 2756, 2099: 2470, 833: 3095, 2155: 303, 1820: 7234, 557: 283, 1609: 5682, 1917: 5984, 1991: 668, 1020: 2067, 1449: 4201, 1323: 2017, 352: 1264, 2069: 1299, 2210: 394, 1395: 5826, 1497: 1384, 1030: 1218, 943: 1415, 1356: 6020, 1469: 2672, 699: 2850, 1135: 1849, 1948: 607, 1864: 2094, 2198: 189, 1657: 2183, 1525: 221, 852: 3499, 1792: 2235, 185: 1801, 2164: 375, 1145: 4185, 1175: 3297, 1475: 249, 2042: 4145, 2178: 6521, 1533: 174, 1895: 2957, 1136: 1718, 2129: 123, 2200: 8967, 1503: 1403, 2171: 6276, 2124: 6616, 1429: 3238, 825: 975, 1127: 1692, 1125: 3885, 648: 277, 2251: 1621, 1765: 3645, 1297: 855, 1699: 3420, 2161: 5839, 1740: 2536, 1724: 1051, 1768: 1576, 992: 715, 1660: 1644, 2195: 3044, 945: 854, 2134: 4333, 1561: 5455, 729: 180, 971: 1505, 1194: 1261, 704: 236, 964: 1614, 1447: 1438, 388: 1812, 1576: 1603, 1009: 2684, 1346: 3637, 629: 419, 2149: 1694, 1403: 3574, 1830: 6069, 1979: 4861, 1000: 2581, 1137: 1089, 841: 3035, 1886: 495, 1061: 2126, 2338: 1042, 2083: 1984, 1264: 2164, 1156: 2282, 1353: 699, 2088: 1605, 1954: 1477, 1865: 5193, 1360: 1382, 1476: 5121, 828: 4715, 1282: 1063, 1797: 1952, 2252: 82, 2187: 5687, 2344: 4658, 1430: 311, 1276: 2706, 1288: 1346, 2283: 799, 1446: 10, 2066: 4009, 2355: 928, 2228: 3154, 2012: 2216, 1024: 439, 2218: 4822, 903: 1872, 1766: 4345, 1996: 234, 967: 6023, 642: 1823, 1149: 2370, 2123: 6362, 1376: 1081, 1520: 4385, 835: 241, 1236: 6554, 1821: 4446, 2291: 2934, 870: 4695, 2028: 1878, 1696: 1531, 1778: 2942, 1235: 685, 1549: 2989, 2021: 5105, 1050: 6388, 951: 1850, 1656: 1731, 2353: 961, 1161: 2732, 1096: 1919, 1944: 5177, 1967: 576, 1806: 3935, 1371: 2079, 757: 2587, 2343: 8045, 984: 3600, 1489: 227, 2183: 3485, 894: 291, 1152: 980, 2278: 2906, 2109: 1290, 698: 2011, 1302: 129, 2078: 2081, 883: 5417, 1744: 3533, 2175: 1648, 1644: 7905, 2280: 1488, 2025: 2760, 1923: 1390, 1763: 2424, 897: 4471, 2085: 2944, 2475: 491, 703: 820, 1749: 4507, 1826: 1513, 675: 6101, 1252: 1334, 1287: 1978, 1219: 1821, 1269: 1143, 1726: 6758, 529: 1747, 1554: 4434, 2391: 2303, 1499: 3629, 767: 6032, 1846: 2119, 1320: 1536, 254: 3368, 2434: 0, 1340: 915, 2385: 156, 1751: 3852, 1100: 244, 695: 2697, 947: 1801, 2080: 431, 1598: 4553, 1946: 1851, 1969: 3544, 2279: 915, 1117: 179, 2115: 2221, 1159: 2357, 1932: 1646, 2333: 4614, 1338: 2059, 750: 8332, 2060: 5393, 961: 2049, 1077: 3550, 929: 3693, 1169: 1725, 2248: 1055, 2193: 4592, 1508: 3267, 978: 4028, 1105: 853, 2324: 1126, 505: 2056, 2337: 4616, 2114: 5015, 989: 4013, 2135: 6752, 1389: 2604, 2416: 223, 2101: 5894, 994: 138, 1075: 4311, 1758: 1078, 1199: 677, 2055: 8035, 1974: 5500, 1658: 2269, 2476: 7803, 1595: 3413, 1227: 5595, 2508: 375, 746: 2830, 1140: 4048, 713: 977, 1563: 1194, 1192: 605, 585: 1924, 1651: 1284, 1622: 2558, 2216: 2691, 2500: 4684, 2122: 83, 1928: 1353, 1603: 600, 2045: 4433, 2144: 2569, 2464: 1588, 2407: 3430, 807: 2998, 2499: 2604, 2050: 7737, 2409: 693, 2381: 2133, 2463: 7, 1444: 791, 1189: 3760, 690: 435, 1046: 339, 952: 793, 499: 2608, 878: 6117, 808: 4591, 2535: 1837, 839: 9027, 1213: 493, 1570: 782, 2249: 3532, 2441: 3926, 2469: 992, 1824: 2052, 584: 2580, 1863: 1118, 1337: 3055, 438: 1806, 2356: 1546, 2690: 4090, 2533: 293, 911: 2598, 540: 11, 2422: 1832, 1523: 434, 2173: 153, 2225: 2324, 1537: 8601, 2153: 533, 2643: 2032, 1143: 524, 817: 66, 1673: 2443, 1809: 4995, 2093: 854, 899: 1229, 1530: 2375, 2094: 2665, 1085: 1671, 2665: 924, 2166: 1613, 2306: 139, 1781: 2146, 2148: 5996, 2448: 1859, 877: 1156, 1680: 2415, 1926: 2235, 1486: 2584, 2421: 1251, 2156: 4157, 2734: 117, 1553: 1368, 2328: 545, 2719: 1708, 1720: 1217, 2202: 1709, 2361: 2992, 1467: 5778, 2366: 1381, 1629: 1695, 2257: 3008, 2345: 3064, 2041: 4031, 1541: 1977, 1116: 181, 1559: 6572, 1939: 3807, 2336: 3472, 2523: 1704, 931: 1726, 1296: 9028, 1345: 905, 1632: 948, 1071: 2471, 1253: 3101, 2629: 6757, 1958: 2111, 2150: 6345, 1636: 2240, 1484: 707, 2810: 1798, 875: 3775, 2127: 1665, 2608: 4749, 1776: 618, 414: 734, 1935: 2393, 2072: 4328, 1750: 1441, 490: 3294, 2405: 2441, 2644: 1749, 2480: 8279, 1218: 2331, 1857: 1623, 1115: 1911, 2737: 7229, 2745: 5040, 2426: 1327, 1738: 4112, 1427: 1394, 2418: 1693, 2752: 2148, 1891: 7418, 1908: 1722, 2700: 5386, 1247: 1831, 2843: 1151, 2284: 1063, 1834: 1063, 1383: 2264, 1940: 1434, 1483: 1266, 2728: 1220, 2649: 594, 1051: 509, 2261: 1342, 759: 1540, 2484: 1032, 2817: 1789, 2163: 1852, 702: 1465, 2325: 1679, 2269: 7216, 2259: 6685, 2432: 3644, 2851: 1950, 1433: 2449, 2596: 4625, 1490: 1771, 2478: 377, 1142: 1280, 968: 2793, 2329: 3615, 1727: 2371, 1684: 3028, 1110: 2345, 2534: 7433, 2655: 1906, 2539: 4782, 1184: 1362, 1852: 6218, 2846: 265, 2137: 1027, 1097: 1914, 586: 2536, 2004: 2792, 2453: 2476, 2511: 1116, 2820: 1600, 1894: 2470, 2889: 2516, 2832: 1665, 2008: 1069, 1614: 239, 604: 2914, 2864: 2867, 2668: 1864, 1255: 7765, 189: 1600, 2233: 2821, 2682: 4973, 2462: 9051, 1813: 3222, 2730: 2268, 2341: 1923, 2458: 562, 2051: 812, 2925: 3450, 874: 589, 2854: 21, 1679: 658, 1179: 5652, 2165: 3473, 2829: 3404, 2873: 536, 2937: 3518, 2936: 398, 2908: 2543, 2517: 1564, 1094: 1171, 2686: 5323, 1428: 639, 1439: 3068, 2375: 833, 932: 786, 2423: 2778, 2383: 1664, 2560: 7067, 681: 1349, 2822: 7866, 1421: 2538, 1933: 762, 1873: 682, 1951: 2321, 2125: 4292, 2406: 6039, 2894: 2749, 2411: 673, 1528: 484, 1011: 187, 2860: 2667, 2743: 9095, 1506: 7693, 1672: 5013, 2142: 523, 582: 1491, 1868: 6422, 2086: 6359, 1929: 809, 752: 4063, 1811: 1124, 238: 3473, 2664: 4723, 2975: 456, 2536: 3919, 1422: 5241, 844: 1488, 1955: 4333, 881: 70, 1295: 868, 1007: 1919, 2993: 1482, 955: 98, 709: 2995, 2118: 641, 1753: 1704, 2485: 3449, 1361: 1284, 2692: 1167, 1602: 1183, 2377: 3407, 1042: 3070, 1804: 574, 1985: 4463, 1871: 2157, 1801: 529, 1045: 1632, 2067: 172, 2436: 2522, 1485: 3046, 2488: 320, 2912: 8908, 2987: 42, 1304: 168, 2177: 103, 1814: 646, 2582: 2789, 2875: 541, 2540: 928, 2779: 5818, 2840: 9450, 2553: 492, 2903: 3047, 2530: 1701, 2794: 367, 2749: 6482, 1263: 6246, 1661: 2835, 1903: 660, 2784: 60, 2871: 2011, 2550: 3716, 2816: 3111, 1947: 47, 1351: 2358, 3129: 1374, 2318: 4037, 1139: 2236, 1719: 1103, 764: 11, 2474: 2320, 2998: 1160, 2767: 5680, 1831: 4426, 2438: 5721, 2087: 7272, 1502: 1023, 2813: 5439, 2541: 3076, 1539: 1334, 2979: 1671, 1394: 839, 3146: 1278, 2529: 583, 2934: 371, 3069: 3188, 2524: 295, 2543: 2225, 1566: 1111, 986: 5528, 2121: 2757, 2141: 3072, 2017: 1908, 2346: 2537, 2683: 3454, 2648: 79, 963: 42, 2902: 7737, 2926: 1100, 171: 4849, 2701: 2838, 2110: 3136, 2461: 3160, 1084: 7240, 1130: 5375, 2935: 1351, 2855: 5325, 1961: 7237, 3174: 633, 1364: 5147, 364: 445, 1925: 5650, 1479: 2557, 2569: 776, 2196: 7029, 1920: 401, 2413: 8682, 2939: 1562, 1191: 2644, 2693: 1310, 1301: 4797, 1436: 2785, 1246: 1495, 1669: 2608, 3106: 3451, 2513: 1584, 3215: 2249, 2986: 2677, 2092: 5649, 2556: 2831, 103: 5615, 576: 4275, 1829: 2070, 3044: 6287, 383: 5423, 1798: 4685, 3030: 7744, 1126: 139, 1557: 3294, 3190: 1030, 2152: 243, 1962: 1471, 3135: 3206, 2918: 3028, 2977: 2810, 1604: 2932, 2349: 7254, 2044: 195, 1342: 1564, 2520: 2761, 2312: 1422, 1850: 1073, 1685: 6274, 2836: 2589, 2772: 1251, 3093: 2600, 1193: 2965, 3097: 6044, 2038: 8651, 2496: 3041, 3318: 1555, 3322: 5494, 3255: 2702, 3041: 507, 803: 1411, 1380: 5033, 915: 2039, 2424: 4593, 1706: 1874, 783: 1239, 1837: 304, 1767: 2301, 2943: 272, 2867: 4195, 2214: 1350, 2079: 5861, 2988: 2059, 2724: 1945, 1102: 4440, 3160: 3340, 1937: 2009, 1463: 7621, 510: 3355, 2111: 757, 3314: 4609, 2097: 2170, 2720: 4844, 3257: 3811, 2626: 1349, 2082: 3602, 2090: 2238, 3151: 3158, 1836: 283, 3247: 1095, 3216: 1241, 519: 1681, 3252: 2111, 726: 3526, 3430: 793, 1902: 367, 2850: 1815, 3143: 865, 2068: 806, 2542: 551, 3158: 4209, 1434: 405, 370: 1729, 1601: 4574, 818: 926, 2869: 1963, 2604: 4978, 401: 522, 2276: 3092, 3212: 3602, 1121: 3371, 2651: 1084, 2792: 8856, 2477: 5697, 1633: 927, 2009: 2344, 2132: 1564, 912: 3489, 2750: 1373, 2983: 4351, 2806: 4213, 3263: 1299, 2714: 1292, 3202: 3151, 1630: 2980, 1529: 4481, 1327: 1703, 2167: 2723, 3025: 1249, 2268: 5764, 1701: 2888, 2647: 7455, 2180: 2045, 1519: 979, 3300: 1868, 2372: 3032, 2656: 5260, 3021: 3619, 3062: 439, 1844: 3374, 1782: 1790, 2751: 1204, 3070: 4315, 2417: 3484, 754: 2159, 2777: 1847, 1368: 2577, 2778: 4649, 1843: 61, 2574: 2160, 2223: 957, 1293: 3444, 1635: 8223, 3034: 4042, 367: 1517, 1715: 7603, 1631: 1886, 2274: 5113, 1148: 3565, 1915: 1383, 2250: 3889, 1569: 2755, 3340: 570, 691: 36, 930: 4973, 2697: 4498, 434: 4591, 1896: 6770, 3123: 3218, 345: 4902, 1892: 1019, 1918: 5560, 2980: 1235, 775: 1005, 2256: 7128, 1205: 1033, 3342: 3542, 2661: 2525, 3344: 3140, 1010: 503, 530: 1047, 3061: 1017, 1494: 837, 3405: 4193, 3612: 2973, 26: 4653, 2785: 3546, 3138: 2162, 941: 4427, 3486: 2430, 2075: 1847, 2844: 390, 3362: 669, 3321: 1313, 3402: 2803, 1385: 5704, 2386: 1597, 2798: 2913, 3491: 7825, 3126: 3865, 2775: 2594, 2621: 1571, 1702: 1241, 2254: 2334, 1617: 3031, 3284: 2009, 1590: 146, 3338: 2318, 1698: 4662, 1334: 3826, 2761: 168, 2931: 5887, 3295: 4461, 3464: 8863, 1799: 1504, 1359: 1155, 2570: 2719, 2780: 3533, 2145: 395, 3655: 5096, 2445: 2375, 2273: 6444, 2016: 6859, 3104: 5139, 2435: 3959, 3099: 424, 3634: 3033, 2219: 3831, 3176: 2645, 3623: 3122, 2260: 2339, 1637: 3710, 1848: 735, 924: 6048, 2824: 2197, 1231: 1697, 788: 972, 2307: 6811, 3325: 476, 2637: 700, 3622: 2440, 3373: 3438, 3665: 2632, 3438: 1170, 2096: 4388, 3651: 4581, 744: 530, 2442: 1544, 2992: 3089, 2715: 3062, 1417: 2134, 1606: 4706, 1647: 641, 3079: 458, 3616: 4523, 3415: 556, 3142: 3063, 3431: 4398, 1662: 1413, 2229: 521, 3649: 2786, 1547: 3612, 3343: 9741, 2740: 3128, 1677: 3389, 2876: 2541, 2455: 59, 3735: 6985, 2599: 2790, 3193: 556, 1442: 5555, 3299: 2602, 1540: 2025, 3111: 668, 3049: 5414, 2354: 5380, 3082: 807, 2961: 2139, 2313: 1564, 2591: 19, 2515: 3190, 2861: 98, 2742: 3738, 2710: 375, 201: 2341, 1694: 5312, 3287: 7189, 2947: 1993, 3192: 3569, 3411: 3258, 3618: 1848, 1817: 3586, 2287: 958, 960: 1979, 3770: 5097, 3408: 315, 3240: 2654, 2849: 3239, 995: 4690, 970: 5730, 2804: 3699, 2583: 3368, 3728: 7370, 3265: 405, 3549: 6428, 1578: 1237, 3335: 261, 3766: 1250, 2472: 4828, 2197: 6677, 3410: 3376, 3463: 667, 3206: 1491, 2841: 3045, 2258: 1871, 2828: 8056, 2997: 1521, 902: 3316, 3016: 846, 3520: 4677, 1728: 1299, 1498: 3037, 3729: 1267, 3244: 3217, 3869: 1928, 2965: 2618, 3826: 3208, 3882: 3644, 3639: 5130, 3276: 2980, 1795: 4655, 2754: 683, 2491: 3651, 3613: 2456, 3736: 172, 3110: 939, 3010: 1191, 2932: 3698, 3119: 239, 3172: 459, 3189: 867, 1611: 2882, 3588: 5317, 3118: 4628, 1950: 875, 1628: 2476, 1756: 3871, 1491: 1922, 3328: 1978, 3339: 6040, 1089: 4671, 3509: 2088, 3162: 5353, 3793: 4478, 2531: 2821, 3027: 3245, 3136: 2826, 3026: 4988, 3341: 841, 678: 4712, 3935: 799, 2593: 2033, 1068: 887, 3574: 3783, 1994: 1962, 3786: 2009, 2721: 1577, 1992: 1109, 3632: 5529, 2319: 1540, 3643: 5282, 3147: 3172, 2863: 2135, 2738: 4097, 3414: 5247, 1548: 4948, 3687: 4473, 2689: 3343, 2945: 1575, 1052: 6174, 2967: 4147, 3896: 2359, 2952: 1794, 2429: 3789, 2827: 2641, 3963: 3099, 409: 377, 2026: 5330, 2786: 425, 3658: 3757, 3939: 3415, 2736: 1135, 1931: 1931, 3769: 3453, 2564: 2720, 1347: 2678, 1705: 3009, 2882: 2584, 3166: 2797, 1653: 3185, 3268: 2637, 3739: 4775, 1386: 300, 3760: 1621, 1802: 588, 1790: 2232, 2580: 1499, 1989: 754, 2805: 585, 2748: 1322, 3011: 1498, 1404: 5330, 3700: 2252, 793: 1176, 2602: 441, 1775: 770, 2537: 2562, 2388: 7285, 1982: 394, 3211: 6644, 3101: 831, 2687: 4694, 1336: 411, 3952: 2622, 2492: 3049, 3737: 1610, 532: 2091, 1919: 2727, 3722: 5852, 2286: 571, 3493: 6472, 2981: 7132, 1718: 4874, 3445: 1562, 3336: 1164, 2774: 918, 2357: 3956, 1562: 6994, 2609: 3777, 3000: 2417, 1431: 2204, 1888: 4892, 3532: 7044, 3761: 117, 3849: 3600, 2054: 1858, 3525: 4519, 3554: 456, 3999: 3113, 2590: 1543, 3800: 1489, 2821: 1898, 3435: 2164, 3987: 2349, 3759: 1598, 2858: 4740, 2758: 7208, 3173: 1515, 2857: 3335, 3046: 4260, 3452: 1718, 3966: 2237, 3807: 1029, 3096: 911, 2373: 2960, 260: 2116, 3863: 4140, 1039: 713, 2212: 3838, 2598: 4426, 3327: 210, 1375: 4015, 1333: 1552, 3512: 8323, 3260: 2444, 2247: 3813, 3688: 694, 4082: 1119, 3131: 1461, 3163: 855, 3043: 1009, 679: 1097, 2359: 4464, 2565: 147, 1867: 3723, 2074: 1997, 3028: 39, 815: 618, 3495: 2082, 2657: 5876, 2392: 1160, 2046: 2726, 3380: 5938, 4032: 7116, 4231: 1931, 3745: 767, 3565: 576, 2791: 4748, 3128: 3439, 4069: 4365, 2032: 3614, 1626: 2177, 1111: 807, 1643: 2566, 3381: 1293, 3217: 2788, 2862: 3194, 2895: 6097, 1545: 2399, 3023: 4165, 1307: 6651, 2956: 420, 2703: 2569, 980: 1813, 4245: 2427, 1224: 1165, 1312: 2287, 663: 3094, 3425: 3075, 3798: 2724, 2104: 1303, 3348: 2558, 3671: 1113, 3239: 9462, 3881: 3050, 4144: 2981, 3477: 3981, 3823: 2810, 3487: 3734, 2633: 3029, 1397: 1005, 4215: 3827, 2509: 1920, 1709: 1088, 4110: 1282, 2033: 2023, 3352: 5181, 3604: 4909, 2982: 1690, 990: 6105, 2147: 3724, 3732: 5070, 4190: 1024, 1317: 6584, 1518: 1879, 2883: 4537, 2927: 1069, 3378: 1039, 1044: 5509, 3539: 2574, 2962: 373, 2305: 984, 2238: 4402, 4268: 1476, 2685: 6054, 2811: 2089, 3781: 31, 2688: 3709, 3165: 6858, 3360: 5581, 3712: 3786, 3403: 0, 4172: 1891, 4252: 1052, 3368: 70, 3672: 2548, 4347: 7936, 4124: 2602, 2194: 1231, 3237: 3386, 1942: 803, 4387: 1988, 3593: 778, 1424: 1138, 2206: 2762, 3124: 2339, 4121: 893, 1583: 1459, 2659: 3025, 2584: 3077, 1827: 3030, 2678: 4110, 2914: 1802, 1839: 760, 3374: 2693, 3859: 3605, 2671: 1362, 1890: 3019, 1564: 4703, 1087: 5927, 3876: 6368, 4254: 4041, 3583: 3390, 1515: 826, 3690: 1657, 3695: 1359, 2452: 209, 4293: 3901, 3345: 3165, 2717: 73, 1155: 187, 1198: 593, 4322: 2450, 3518: 2918, 3306: 3163, 1141: 7119, 3407: 2164, 1927: 5178, 4234: 6081, 3723: 6807, 3179: 2714, 3596: 6323, 1181: 4594, 3893: 5105, 3964: 1720, 1924: 578, 4307: 1877, 3385: 180, 2106: 6263, 1393: 3459, 3561: 1547, 3633: 5308, 3862: 2015, 2367: 2713, 1207: 4051, 1812: 851, 4250: 7372, 3127: 1911, 2332: 6211, 2036: 1368, 4112: 6045, 3281: 4540, 2928: 131, 3531: 5773, 3591: 2402, 1527: 645, 3779: 190, 2174: 3512, 3261: 1420, 3307: 3431, 3705: 1054, 920: 1300, 4397: 2360, 3478: 24, 3155: 2636, 3970: 570, 3003: 4409, 1793: 2213, 3506: 8561, 3031: 4161, 4522: 5923, 2015: 2378, 1396: 1688, 3320: 2740, 3395: 4986, 4033: 1968, 1531: 214, 2505: 2792, 4119: 2736, 3301: 4118, 2289: 4217, 2625: 2344, 2884: 24, 2704: 3344, 4507: 4229, 3502: 1371, 3203: 3062, 3040: 223, 3841: 3809, 3429: 2085, 2172: 1987, 2706: 1374, 944: 2242, 1743: 4805, 3113: 290, 2057: 2003, 3441: 2182, 2554: 6, 2282: 4860, 2803: 5152, 2301: 2796, 2460: 4253, 3645: 2623, 2181: 2130, 3864: 2784, 4495: 6620, 3628: 392, 2769: 223, 2084: 3219, 4542: 4938, 2628: 2965, 1151: 5000, 3508: 304, 2795: 4338, 2179: 3273, 1298: 1268, 2029: 347, 4280: 2293, 1168: 2948, 4089: 412, 4023: 2888, 634: 3622, 4351: 2833, 4321: 7838, 2266: 7609, 4113: 2518, 4539: 3714, 798: 2376, 4207: 97, 4226: 4439, 3389: 15, 2597: 2061, 4337: 3568, 4447: 2877, 4334: 7048, 3853: 3698, 2838: 4388, 4615: 756, 4221: 974, 3440: 4216, 2732: 5574, 4685: 3445, 3475: 4270, 4341: 3125, 2874: 3642, 4183: 3834, 1723: 748, 1952: 6398, 2885: 1148, 1309: 7499, 3447: 5589, 3664: 1997, 2065: 4495, 2709: 2794, 3545: 5439, 3045: 7606, 3567: 5279, 4512: 2885, 1366: 352, 4147: 429, 3063: 1499, 3171: 2351, 4073: 3656, 3937: 851, 3523: 4659, 3894: 7111, 4208: 421, 2694: 1410, 4127: 2090, 3064: 1295, 4026: 1988, 2116: 1179, 3609: 5616, 4070: 3829, 1584: 8560, 2667: 1632, 2616: 1075, 3997: 1843, 3013: 2489, 2801: 6822, 4132: 746, 1816: 4911, 3246: 4127, 661: 2393, 1977: 2963, 3977: 3625, 4545: 5821, 3253: 3084, 4488: 3996, 4605: 3843, 4699: 2687, 674: 1237, 2185: 44, 3906: 2165, 2360: 686, 4627: 2459, 4744: 2015, 2705: 394, 4562: 7653, 1214: 2951, 3553: 2990, 4533: 2586, 4511: 646, 3731: 3308, 4275: 3969, 2984: 4747, 4210: 136, 3227: 4335, 2348: 2679, 2105: 4359, 4663: 2991, 3511: 3417, 2303: 3578, 1832: 1220, 4213: 4341, 3839: 17, 3851: 6679, 3198: 4653, 4319: 7360, 3996: 3077, 692: 638, 3145: 7646, 1270: 4734, 4423: 4666, 4162: 857, 4037: 3390, 3283: 2664, 99: 2998, 4573: 3196, 4173: 4313, 3089: 4362, 4556: 2264, 4544: 4763, 1732: 781, 4318: 452, 4398: 1192, 3924: 92, 4009: 1584, 2642: 3942, 3885: 4522, 4361: 325, 1074: 1955, 2891: 2825, 1572: 2584, 2691: 4836, 2433: 4257, 2830: 5234, 2548: 3157, 4822: 4525, 4102: 4748, 2759: 2492, 3840: 832, 4709: 4443, 4407: 4088, 4791: 1553, 1987: 854, 4536: 1131, 4083: 2015, 3830: 5436, 2240: 5293, 1588: 8193, 4563: 1530, 4278: 430, 4793: 4036, 3481: 3336, 3207: 297, 4590: 2369, 2726: 3449, 2182: 4035, 4087: 2506, 4335: 2172, 3668: 747, 4353: 6080, 3159: 1066, 2108: 1349, 2545: 3793, 3710: 306, 3269: 2143, 2675: 1379, 2056: 1988, 1621: 1441, 4309: 305, 1721: 4989, 1513: 663, 365: 1734, 2342: 3607, 4722: 2617, 2587: 4833, 4004: 2114, 4654: 4490, 1858: 242, 3088: 4968, 3566: 3911, 4454: 1264, 4011: 2931, 3259: 3372, 1913: 4475, 3067: 1347, 3756: 6899, 4339: 2989, 4007: 6919, 4956: 1204, 3516: 4723, 4773: 2125, 2437: 1099, 1897: 2943, 4575: 365, 1374: 2868, 2062: 2098, 3865: 737, 2191: 4649, 2203: 1967, 1825: 6216, 3891: 6139, 4409: 5162, 4197: 867, 3738: 3313, 830: 6011, 4270: 3416, 4373: 7005, 2040: 1071, 3448: 4690, 3957: 3903, 3288: 1608, 4636: 1963, 3006: 969, 4385: 2402, 2039: 2498, 2946: 5355, 2157: 1959, 1849: 4417, 3108: 7374, 4774: 4315, 3751: 4276, 4181: 4469, 3022: 344, 3570: 2680, 1693: 2502, 3889: 1899, 3427: 3177, 4279: 1698, 3847: 3062, 3816: 2837, 3673: 862, 3646: 4424, 1146: 3148, 2677: 3882, 1162: 4383, 2711: 5653, 4180: 1415, 4348: 1252, 3559: 2185, 4990: 6082, 4482: 2531, 2707: 3070, 3051: 3559, 2352: 2179, 4946: 1391, 3776: 5806, 4985: 4053, 2618: 3087, 575: 3333, 3505: 1793, 1975: 4082, 1625: 1682, 4733: 1129, 3575: 8129, 3726: 2081, 3780: 251, 3763: 6899, 5092: 754, 5071: 3259, 2793: 3284, 4864: 207, 4758: 1902, 1279: 3352, 4484: 4764, 1981: 2634, 4738: 1025, 4441: 2594, 2635: 5431, 4471: 4174, 4580: 401, 4725: 1531, 5111: 4648, 4608: 2089, 3917: 4428, 4350: 2726, 2382: 2832, 5000: 2012, 4450: 1413, 3598: 5055, 1242: 4497, 3492: 669, 3750: 4938, 1457: 3571, 4491: 1549, 2620: 6703, 4645: 3020, 4140: 4418, 4359: 7665, 2447: 961, 2316: 523, 1970: 527, 5181: 3114, 4701: 714, 4442: 298, 3576: 359, 3908: 5353, 2814: 4398, 4051: 1953, 1556: 2674, 3454: 864, 2501: 257, 4416: 779, 1458: 4535, 4891: 2718, 4333: 4551, 4786: 590, 4849: 587, 5190: 5040, 2976: 5080, 3818: 7238, 4735: 135, 2242: 4767, 2650: 5658, 3884: 2449, 3858: 3496, 3733: 188, 3904: 3042, 4306: 368, 2571: 4574, 5130: 2445, 3913: 307, 5236: 4463, 4305: 6028, 4969: 1564, 3501: 692, 5230: 855, 3536: 96, 1971: 970, 3842: 800, 3743: 1444, 3968: 996, 3804: 1561, 2293: 3785, 1451: 4030, 4553: 4205, 2996: 1634, 4330: 4226, 2573: 2133, 4896: 1929, 4814: 3316, 3719: 1028, 1860: 6123, 3150: 3595, 3945: 2838, 2410: 601, 3587: 749, 3059: 1506, 4117: 4259, 4984: 1362, 3813: 4708, 725: 437, 2802: 5002, 3991: 2195, 3054: 4642, 3500: 7600, 4404: 4460, 2940: 3690, 4251: 4795, 1284: 2687, 4625: 2446, 4721: 1532, 2107: 2958, 2095: 5002, 3799: 704, 4292: 4403, 5089: 3630, 4895: 3223, 4480: 3971, 3973: 4906, 3699: 557, 4639: 5302, 3833: 593, 1835: 541, 5294: 2423, 2209: 3101, 4854: 7570, 3589: 3313, 2920: 2440, 2818: 4357, 4808: 5282, 4734: 4529, 5221: 1049, 973: 810, 3805: 4629, 4193: 4531, 4308: 2489, 1786: 5156, 5311: 1227, 2917: 4172, 4040: 1053, 4589: 3996, 5335: 1131, 2673: 4205, 4871: 2405, 4052: 4025, 3080: 183, 4527: 687, 3433: 1296, 4328: 2528, 2419: 3217, 3676: 4867, 4068: 838, 2744: 970, 3167: 4750, 1823: 895, 1036: 1795, 4028: 1638, 676: 854, 5244: 1838, 4546: 4757, 4248: 7284, 4737: 5864, 1176: 1449, 5100: 118, 4762: 4019, 5242: 512, 5296: 925, 3400: 1299, 3058: 419, 3413: 3714, 4801: 1416, 3650: 4257, 2544: 4991, 4106: 1383, 3293: 5049, 2112: 3782, 4237: 4740, 4154: 3980, 4651: 5474, 3922: 4397, 2384: 954, 2562: 2304, 3555: 2839, 4947: 845, 5358: 1657, 4995: 1174, 2158: 3432, 4941: 7998, 3752: 1584, 5378: 1147, 4543: 7667, 5310: 7147, 4086: 1790, 3888: 4544, 2938: 6412, 1921: 209, 2676: 4280, 3310: 2778, 4098: 77, 4997: 5191, 4179: 2031, 4019: 2769, 2457: 3825, 2526: 4582, 4123: 553, 4182: 5990, 4618: 31, 1053: 4727, 5078: 2418, 4386: 1428, 1759: 5003, 1107: 6393, 5260: 2285, 2789: 2963, 5443: 4216, 4185: 2769, 4637: 1203, 2317: 4309, 5317: 3868, 3439: 2285, 3654: 5229, 4927: 4891, 2138: 5015, 4001: 3812, 4249: 5422, 3956: 4668, 1879: 5245, 5482: 3084, 4452: 933, 4591: 7151, 4798: 303, 1160: 3516, 2378: 4677, 3498: 5890, 2713: 1855, 3724: 568, 4869: 5485, 4707: 4327, 5353: 4845, 1187: 891, 5577: 818, 1534: 4969, 1412: 809, 4152: 922, 2414: 5376, 1760: 5567, 1122: 5227, 4648: 2132, 5218: 2605, 4826: 5484, 4448: 2676, 3941: 3437, 4515: 1774, 5036: 463, 5440: 5384, 3286: 4229, 5149: 2372, 4818: 4960, 2403: 4990, 3248: 4265, 4833: 2622, 3377: 321, 1884: 374, 4954: 1477, 3125: 8003, 3364: 5706, 677: 4453, 3949: 3750, 3068: 3423, 4867: 2443, 4419: 4785, 4492: 3117, 4006: 1711, 5119: 3815, 5292: 4242, 464: 1528, 5193: 3790, 5315: 4262, 5496: 317, 2449: 3989, 3465: 5284, 2199: 786, 4261: 4792, 1734: 4275, 3644: 44, 4559: 5293, 4256: 5263, 329: 110, 4897: 5440, 4603: 3834, 2622: 6960, 2298: 1597, 3250: 6580, 983: 2499, 5158: 8679, 5567: 2459, 5056: 3254, 5570: 5809, 5049: 5322, 5101: 2050, 2297: 1903, 4939: 971, 440: 345, 2300: 1249, 4948: 872, 2606: 3176, 1335: 1001, 4727: 580, 3258: 1384, 3962: 6749, 3701: 1571, 5090: 3543, 5715: 5762, 4163: 4741, 3630: 1007, 5619: 5982, 3444: 2375, 2208: 673, 1772: 935, 4426: 542, 5390: 5248, 4415: 4976, 888: 1206, 4260: 2979, 5120: 2183, 2787: 7308, 2113: 2159, 5094: 4662, 4827: 7726, 3457: 3860, 3156: 2515, 3220: 1668, 4445: 1065, 4719: 1793, 5066: 406, 5455: 2482, 5249: 7285, 3702: 6224, 5361: 4214, 4356: 3608, 3292: 3814, 5675: 4728, 2783: 4563, 3303: 3581, 4166: 1112, 5179: 3336, 4456: 4612, 4778: 2246, 1866: 3177, 4736: 751, 5728: 1948, 5550: 2391, 1666: 1564, 5657: 1338, 4933: 2125, 4729: 4471, 3141: 1982, 4760: 8870, 4219: 3130, 3753: 1606, 4126: 338, 4411: 3413, 2465: 3346, 4143: 775, 4578: 8204, 1674: 1219, 3075: 5823, 3222: 2394, 5464: 3389, 3533: 4508, 2281: 5856, 2168: 3314, 5199: 4937, 5177: 7223, 4620: 2001, 4857: 426, 5535: 5226, 5416: 2337, 2953: 7155, 5328: 5159, 5334: 7, 5783: 1932, 3617: 1031, 4535: 2028, 2190: 2817, 2446: 7889, 4204: 360, 4294: 2188, 5240: 2287, 4531: 4689, 3462: 8444, 5125: 3949, 4680: 3155, 5336: 3226, 5599: 5425, 4987: 3841, 4570: 9262, 1002: 7320, 4053: 3701, 4612: 176, 4058: 3168, 5302: 2279, 5601: 4319, 4320: 1741, 5727: 2645, 5406: 2936, 2575: 6630, 4945: 1421, 2555: 8376, 3986: 4401, 5306: 3466, 4043: 4955, 4843: 5796, 5558: 2332, 5052: 6400, 4966: 2260, 3767: 5110, 4377: 1151, 4524: 2826, 862: 4485, 5030: 3710, 3741: 5002, 1667: 8774, 1964: 536, 2201: 1840, 4078: 8856, 3747: 718, 5441: 3342, 4885: 4062, 4141: 6981, 3232: 537, 4525: 4375, 2788: 3639, 5035: 5116, 2058: 2261, 3642: 2854, 4084: 1964, 2972: 5251, 4523: 2682, 4425: 2864, 3907: 2152, 5838: 1537, 3472: 3348, 1426: 6350, 2735: 1874, 5319: 2404, 5685: 4169, 4963: 3721, 4835: 200, 5970: 528, 3662: 1827, 2365: 926, 1618: 1793, 5706: 2800, 4003: 339, 4919: 4660, 5117: 3466, 2640: 1994, 3850: 6834, 5580: 2729, 3122: 2931, 5137: 1334, 1700: 5987, 5105: 4162, 5067: 1180, 3191: 1455, 2396: 2061, 1893: 1601, 3693: 4945, 2773: 2603, 5017: 3942, 5409: 2785, 3530: 513, 5344: 1453, 4122: 2290, 1733: 5046, 3709: 710, 5385: 5082, 5332: 157, 4780: 5655, 1441: 7065, 3768: 6488, 1488: 3659, 5081: 4114, 2139: 962, 4196: 3780, 3077: 6493, 4824: 129, 4586: 5117, 4641: 971, 4421: 1010, 2146: 946, 5423: 1945, 1461: 5991, 2546: 2688, 4467: 5580, 5646: 2933, 1791: 5377, 5330: 4530, 5598: 3596, 2879: 499, 5165: 553, 4302: 4601, 5686: 3892, 4742: 4792, 5803: 6757, 2592: 5356, 3879: 2509, 3697: 5140, 2217: 197, 5222: 1322, 3916: 710, 4557: 2887, 3972: 6313, 6066: 5891, 4902: 3000, 2672: 1312, 2292: 1810, 1649: 2246, 4486: 3119, 3696: 3050, 5984: 3400, 4770: 914, 3423: 2925, 4508: 1301, 226: 3090, 5695: 3081, 2490: 2298, 3490: 450, 4295: 5352, 2275: 1956, 5072: 957, 3974: 738, 4911: 1553, 4096: 3431, 4016: 457, 5511: 5209, 3012: 1797, 1783: 5109, 2126: 4932, 4259: 1369, 6050: 4906, 4567: 2751, 4767: 3958, 6014: 4686, 5624: 6018, 2994: 98, 5629: 231, 5370: 3429, 1318: 4509, 2176: 2425, 4602: 115, 1259: 4768, 3796: 718, 3419: 3801, 3208: 5838, 1978: 381, 6075: 4173, 3090: 2281, 4568: 2631, 5299: 5325, 3468: 2962, 5495: 2358, 2835: 1143, 1713: 3801, 2456: 1539, 5381: 7451, 2398: 7693, 6184: 1745, 5252: 2106, 5769: 2197, 5871: 5205, 5182: 492, 4460: 7996, 5084: 2019, 5687: 4965, 5708: 8186, 4784: 3928, 1204: 4062, 5760: 1261, 3354: 5750, 1322: 4732, 5064: 373, 4233: 3555, 5436: 7086, 5504: 2996, 4148: 2851, 4036: 6680, 5227: 7167, 2395: 3243, 2001: 5034, 6021: 4645, 1452: 1614, 4691: 6832, 3317: 490, 5267: 885, 5597: 5683, 4647: 4222, 5976: 2229, 5863: 2730, 3557: 3190, 3121: 5268, 4792: 4413, 5029: 2807, 5413: 5102, 942: 8585, 3404: 2298, 1093: 2735, 3714: 4658, 5945: 309, 2880: 3849, 2572: 1995, 6175: 995, 4538: 5213, 5439: 5128, 5940: 3876, 2427: 328, 5116: 6650, 2374: 2325, 2221: 4653, 4830: 5269, 4532: 2416, 3547: 1650, 2559: 3596, 5445: 1255, 717: 5724, 3194: 5711, 6325: 3612, 6290: 7270, 3290: 315, 5586: 1795, 4611: 7388, 2733: 4784, 5170: 8115, 4370: 4819, 4962: 789, 1855: 929, 5664: 396, 2226: 7957, 5899: 2453, 4937: 1625, 5859: 1369, 3153: 6443, 6383: 7839, 4951: 4900, 5402: 3703, 4178: 3235, 4592: 8476, 5531: 3478, 2440: 5894, 5414: 6110, 5432: 7044, 5696: 1563, 6138: 413, 4192: 2057, 5191: 4377, 6086: 5243, 4977: 2114, 4449: 990, 4771: 421, 3195: 2752, 2043: 5437, 3918: 3616, 6062: 1327, 5183: 6850, 3519: 1403, 3762: 8134, 4200: 1130, 3223: 2145, 6096: 6293, 5028: 3203, 3861: 4706, 3960: 5356, 4103: 4978, 6181: 3191, 6242: 3112, 5396: 2633, 4803: 3244, 5392: 6354, 4401: 5890, 5309: 2476, 5526: 6695, 2003: 1328, 5680: 6715, 4503: 3383, 5542: 1841, 1464: 4891, 4357: 5588, 6323: 3001, 3606: 5848, 4465: 1788, 2847: 3681, 4345: 430, 5204: 2057, 3706: 3151, 3366: 1647, 3537: 7269, 5892: 896, 4676: 457, 3365: 2357, 1737: 4697, 4598: 3309, 1254: 4753, 4116: 4718, 5562: 3256, 4928: 4486, 4285: 5905, 2271: 1769, 2966: 2146, 5767: 7238, 6041: 809, 2819: 2744, 5118: 1904, 3149: 5089, 4042: 2016, 6130: 5583, 6384: 251, 4049: 2380, 5234: 5499, 6215: 2032, 4764: 231, 4487: 4635, 3782: 5712, 6317: 1719, 5293: 5783, 838: 2021, 2005: 1833, 4755: 8129, 6178: 8982, 1577: 6788, 4913: 5131, 6219: 5840, 3224: 2045, 3600: 4273, 2227: 4019, 5603: 6259, 6277: 1510, 2215: 390, 4029: 407, 4635: 6886, 5261: 2639, 3479: 3019, 4413: 7768, 6040: 4240, 1842: 3952, 6264: 5775, 6509: 2275, 1965: 4963, 6468: 6279, 4875: 1335, 3270: 2860, 4368: 4854, 5073: 1631, 2310: 5579, 3954: 4727, 5876: 8195, 3120: 3955, 6421: 6699, 3132: 5910, 4291: 323, 3271: 1207, 5585: 5881, 6161: 784, 2514: 4877, 5220: 2855, 3367: 1537, 5074: 604, 5054: 5363, 6180: 5160, 4375: 5896, 3757: 6615, 6334: 8807, 3976: 4240, 5215: 4743, 5189: 2996, 4343: 6300, 701: 6481, 5343: 1642, 2924: 1328, 4633: 5618, 5346: 2975, 3932: 815, 5501: 852, 1889: 5379, 4369: 3268, 5367: 3160, 4604: 2369, 4851: 2894, 6098: 7234, 6505: 6304, 4510: 8247, 4844: 6372, 1861: 6223, 4551: 3360, 5272: 4131, 5963: 4655, 4432: 7942, 2808: 5425, 3811: 7245, 3927: 2460, 5850: 3834, 3522: 3850, 5278: 4118, 1420: 6495, 3679: 6532, 2831: 5332, 5247: 7746, 2302: 4384, 2431: 6179, 5156: 4048, 6320: 5623, 4606: 6211, 5553: 3978, 2468: 3532, 5431: 2176, 2290: 3107, 6285: 3937, 3928: 2152, 4881: 2949, 5913: 1683, 4101: 822, 2948: 2403, 3666: 3008, 6282: 6455, 4898: 2931, 4057: 7133, 5150: 2551, 4800: 3610, 5393: 7265, 5741: 2844, 5941: 5754, 4868: 6728, 3571: 6064, 6363: 4603, 5658: 7874, 3546: 3086, 4184: 2870, 4820: 6493, 4167: 4720, 2035: 2231, 5208: 2255, 5473: 6626, 3305: 1272, 4064: 6632, 5731: 3378, 4313: 6574, 6760: 402, 6386: 4769, 6581: 2560, 6478: 941, 6804: 6533, 2809: 6141, 3815: 2838, 6835: 5800, 6617: 4548, 3605: 5572, 6662: 7371, 5415: 3056, 3641: 2357, 5001: 5094, 2919: 6270, 2061: 5986, 3608: 2225, 5148: 5571, 845: 5125, 6818: 3906, 4848: 5015, 5750: 5973, 5517: 3330, 2999: 798, 6417: 2877, 2611: 2288, 4953: 4386, 4340: 6209, 4526: 1802, 3399: 2228, 6543: 4536, 2358: 5253, 6018: 4742, 5180: 1104, 901: 653, 3148: 4523, 5138: 600, 887: 973, 3637: 1654, 5079: 4666, 5921: 3031, 6675: 5367, 4242: 782, 4393: 2957, 5333: 2516, 4883: 2515, 6392: 2406, 4283: 4738, 6373: 4225, 2362: 4366, 6176: 4748, 4842: 2554, 4950: 4688, 3948: 2110, 1936: 1766, 2731: 5619, 4399: 5552, 3298: 3512, 6470: 6397, 5124: 1814, 5176: 4044, 4769: 2499, 6890: 3913, 4010: 3382, 6789: 5258, 3717: 4897, 1731: 405, 2614: 4413, 5341: 5602, 5608: 614, 5824: 1109, 5792: 1201, 6278: 3051, 4853: 9526, 2942: 4014, 3669: 2641, 4405: 3946, 2781: 4380, 6726: 3104, 1851: 4368, 6559: 8333, 4904: 4181, 5668: 6558, 6026: 1334, 5513: 5039, 1616: 4809, 792: 4257, 5549: 5277, 3009: 4638, 2872: 2826, 6227: 7476, 6002: 4935, 5593: 6527, 6799: 3404, 6792: 6992, 1373: 5842, 4104: 675, 979: 1133, 2729: 2348, 2567: 6133, 2585: 5207, 4876: 6929, 5033: 1364, 5270: 5586, 4656: 6335, 5784: 4812, 5934: 6383, 5503: 566, 6676: 3306, 5833: 956, 3978: 2872, 6511: 1040, 6744: 1516, 5058: 4679, 5005: 3889, 1822: 36, 4621: 2164, 4517: 1264, 4952: 6983, 2741: 1256, 4222: 2034, 5070: 3005, 2415: 6776, 6973: 6971, 3048: 1085, 5112: 5324, 6670: 1421, 5762: 2463, 2865: 1292, 5587: 3090, 1922: 996, 6319: 2521, 6852: 6385, 4697: 5696, 3517: 554, 823: 401, 4550: 901, 6725: 5739, 6783: 5522, 5304: 1421, 4395: 1489, 5201: 3857, 7055: 3560, 2481: 9095, 5965: 1495, 4272: 2534, 2886: 2470, 2143: 1927, 5246: 5268, 2053: 3211, 5822: 1165, 5499: 3525, 5442: 2405, 3860: 4897, 6377: 2063, 4372: 3613, 2964: 1159, 7121: 3721, 5110: 5539, 577: 1287, 4045: 7110, 5547: 4147, 2243: 2017, 6283: 8633, 5802: 6463, 7021: 775, 4025: 4135, 4976: 8487, 6751: 4364, 6350: 6800, 6845: 830, 3387: 787, 2959: 6725, 6557: 6467, 4617: 6092, 542: 3783, 5263: 5993, 7042: 7009, 2399: 5076, 4039: 5449, 3471: 2960, 6497: 3273, 6964: 5446, 6952: 3121, 2856: 3367, 5338: 4538, 3083: 5957, 3829: 3178, 5848: 704, 6389: 339, 6958: 5984, 4054: 4592, 5372: 4088, 2755: 3758, 3072: 3941, 1708: 1925, 4111: 2447, 3901: 2583, 4905: 5476, 4008: 522, 4424: 2139, 4349: 717, 3282: 5156, 2907: 2309, 6012: 4300, 3185: 287, 5705: 66, 4085: 6139, 4498: 2969, 5133: 988, 2192: 5859, 4267: 2081, 3873: 4437, 6552: 1932, 6422: 816, 4128: 5582, 7144: 4248, 3382: 4789, 6035: 158, 598: 1677, 5901: 41, 5857: 6851, 6981: 6273, 2658: 3878, 5041: 1555, 5878: 1905, 5640: 609, 3470: 327, 6195: 7139, 6817: 601, 6625: 5952, 644: 2819, 6461: 171, 4358: 5455, 4684: 6349, 5908: 3446, 4014: 2558, 1764: 378, 5947: 591, 6644: 2412, 7090: 5036, 6513: 5151, 5843: 2544, 5505: 4765, 6684: 1233, 4813: 3597, 4074: 4449, 4682: 955, 2151: 3612, 7034: 1255, 3251: 7186, 3137: 5656, 5702: 6427, 6047: 6348, 3764: 2813, 5108: 5324, 4301: 2224, 4298: 153, 4643: 6667, 5937: 417, 7269: 39, 5524: 2212, 5478: 5657, 5793: 3732, 2922: 3557, 4081: 3262, 5975: 5028, 3358: 8852, 6517: 518, 5198: 217, 6079: 4222, 7339: 2767, 6322: 1409, 5751: 977, 7051: 4823, 7297: 5390, 2905: 3818, 4554: 683, 3946: 3007, 4564: 957, 2241: 4682, 7243: 2001, 6375: 3602, 2471: 4691, 3326: 5607, 3161: 5299, 5040: 1852, 2512: 7004, 7230: 3243, 5205: 2612, 5280: 6500, 5794: 1783, 323: 2553, 6945: 2547, 1593: 1324, 4967: 3648, 4971: 4089, 5484: 1673, 5953: 592, 6553: 7253, 7291: 1235, 4238: 4083, 5281: 274, 6316: 3951, 6563: 7096, 6584: 5161, 5289: 5264, 1462: 2980, 4677: 6724, 7199: 3916, 5143: 5721, 5472: 3533, 3458: 5081, 3528: 5812, 6081: 2584, 6738: 6592, 2309: 8319, 3236: 4146, 3874: 3057, 3854: 6382, 3484: 5654, 270: 3182, 7326: 2991, 5528: 2142, 4205: 2087, 2224: 5252, 6885: 4369, 7156: 2304, 6064: 578, 2866: 946, 5656: 3679, 6976: 5525, 5790: 1552, 3346: 7499, 7318: 1366, 2990: 6960, 5992: 3137, 5011: 256, 1690: 2399, 6708: 1295, 3868: 4886, 5978: 6554, 6545: 7231, 3453: 6774, 5974: 7457, 2162: 2611, 3880: 6720, 2444: 723, 6173: 1378, 3832: 1546, 2389: 5220, 3115: 7057, 6627: 6580, 5068: 6474, 3409: 1169, 3262: 2775, 5418: 5929, 6695: 2315, 5781: 5847, 6550: 3192, 6204: 3890, 7562: 689, 5738: 5443, 2234: 4042, 7309: 7359, 3056: 4422, 7196: 5043, 4795: 3126, 5900: 5766, 4658: 7200, 1640: 3748, 6542: 3720, 4462: 5485, 4717: 6414, 6663: 2043, 3005: 7518, 3659: 4401, 6540: 4706, 2532: 6406, 7539: 3350, 5021: 3453, 6396: 4301, 4679: 3538, 6946: 285, 3995: 6361, 3775: 2997, 2394: 1145, 3897: 6995, 3725: 352, 3357: 3784, 4572: 5900, 5384: 3253, 6961: 1007, 6701: 2725, 6657: 230, 5490: 5914, 5994: 4186, 7019: 3322, 6719: 6094, 3302: 6262, 4614: 3853, 4274: 5920, 4174: 531, 6432: 344, 6957: 3732, 3765: 5580, 7530: 6925, 2507: 2601, 7128: 6140, 1088: 2512, 6936: 8027, 4427: 6662, 5529: 296, 5904: 4740, 6529: 6829, 3887: 5722, 3139: 4936, 5275: 6470, 6948: 331, 7438: 2436, 7355: 1148, 4996: 1725, 7603: 2314, 4229: 1471, 6986: 3910, 4282: 5238, 4593: 2543, 7088: 8216, 7077: 3428, 1695: 4173, 5424: 5749, 7069: 2746, 6987: 957, 4469: 6864, 2483: 7439, 6165: 7804, 3827: 5841, 7474: 7678, 7396: 2244, 6739: 8045, 7143: 7498, 7028: 3245, 6286: 6244, 5060: 6145, 1589: 4040, 6787: 122, 4922: 4746, 4839: 3930, 7592: 4046, 1995: 5102, 7314: 3636, 5936: 754, 7617: 5828, 4118: 1512, 2522: 9143, 6240: 2749, 3975: 4284, 6106: 519, 6686: 5361, 7731: 1816, 4466: 5826, 2494: 1072, 7288: 2460, 6589: 3181, 7542: 3936, 7039: 4153, 7368: 2005, 2845: 7063, 2404: 3057, 6346: 4692, 1953: 2281, 4745: 5074, 5398: 6842, 294: 395, 7737: 4641, 7180: 5655, 5171: 5105, 5614: 7180, 617: 7697, 7527: 196, 5109: 2239, 2052: 355, 2898: 6180, 4475: 5826, 3018: 6861, 6640: 1479, 4338: 511, 6225: 7947, 2473: 1464, 6768: 1982, 7504: 6911, 7432: 2872, 6730: 4526, 7044: 5879, 4804: 133, 7805: 7015, 6710: 872, 4504: 195, 2638: 164, 5996: 2747, 2607: 3593, 1949: 6620, 5460: 720, 7597: 6603, 5339: 2999, 7124: 1196, 7390: 4474, 4726: 1059, 7280: 3917, 2568: 8219, 2244: 3323, 4974: 758, 7754: 5854, 5902: 6900, 3476: 5184, 7464: 7310, 6366: 1039, 7084: 7519, 3773: 1108, 2285: 7032, 6992: 3112, 3564: 1975, 6172: 6056, 4362: 194, 2467: 3867, 6857: 6743, 2923: 4071, 3653: 5570, 7424: 4947, 4269: 492, 6344: 704, 1507: 5645, 4227: 588, 5364: 4060, 7187: 2907, 6274: 2827, 7221: 3984, 940: 834, 5196: 1579, 1716: 3410, 574: 5430, 6141: 4503, 6359: 5830, 6052: 3173, 3323: 5700, 6979: 2564, 6615: 3339, 7188: 1138, 6314: 4358, 6059: 2449, 6984: 2707, 3107: 1205, 3921: 2032, 6834: 2410, 6301: 7152, 6492: 2185, 1789: 5922, 946: 5273, 2402: 2540, 7705: 3650, 4352: 276, 2376: 3789, 4915: 3479, 7439: 4898, 7928: 1056, 7774: 2149, 2370: 4410, 6127: 557, 4198: 4099, 5015: 2088, 7914: 374, 5037: 7477, 7049: 4184, 4889: 33, 5763: 6147, 3507: 5522, 2204: 624, 4316: 4530, 7138: 3074, 4811: 501, 6019: 846, 6679: 4574, 3039: 1367, 7002: 480, 4290: 2773, 3551: 4294, 7699: 2299, 6004: 4970, 6436: 5428, 7888: 1265, 7523: 57, 6903: 5768, 6753: 4713, 5667: 5238, 6192: 6477, 5552: 3533, 5454: 5134, 2528: 376, 3836: 7457, 5779: 5910, 7099: 2681, 7477: 6342, 5004: 4052, 6429: 3952, 6534: 1808, 7835: 1178, 7134: 8516, 5062: 5769, 6142: 1949, 2131: 3189, 7811: 3494, 5002: 5102, 6020: 533, 6385: 1284, 5967: 1805, 2612: 2961, 7894: 1055, 6841: 6873, 6881: 114, 7717: 8319, 7211: 5135, 5560: 4473, 7410: 4750, 6902: 588, 7308: 4425, 5422: 7450, 5739: 4044, 7974: 5779, 4569: 5746, 8026: 126, 6332: 5154, 6842: 5786, 3095: 7603, 7566: 787, 6772: 1872, 7672: 254, 7469: 2804, 6447: 2104, 5238: 972, 7333: 3325, 7347: 4701, 7052: 4189, 7878: 931, 7942: 81, 6410: 370, 6991: 3800, 7427: 2139, 3819: 1766, 2253: 1287, 5301: 5069, 7449: 7096, 4211: 6035, 7375: 2231, 3980: 170, 6476: 8608, 3621: 4915, 3375: 7380, 8081: 6274, 6440: 7895, 482: 6152, 2662: 4384, 7538: 385, 4918: 7448, 6855: 790, 2140: 4280, 7725: 1706, 4925: 1832, 6628: 2403, 7250: 3832, 1803: 7594, 7899: 3805, 2133: 8104, 4176: 7525, 7283: 3651, 6340: 5949, 4018: 6765, 5395: 6451, 7510: 2996, 3337: 8149, 3895: 7453, 4560: 1601, 2451: 5481, 6251: 7580, 5869: 2280, 5759: 2940, 6402: 3835, 2631: 4209, 7923: 1338, 2930: 6272, 8024: 7627, 2746: 1056, 1363: 7461, 4970: 3637, 3898: 3358, 4453: 6962, 7351: 5903, 3943: 1913, 5736: 3306, 5832: 7980, 7547: 5234, 7707: 23, 6273: 5261, 7854: 3776, 7023: 3573, 3707: 8071, 3931: 3671, 5083: 3307, 5426: 187, 7160: 7860, 7901: 199, 1805: 3916, 5959: 5947, 7209: 2550, 3376: 8005, 4926: 1905, 5998: 3148, 7551: 304, 6376: 6489, 6546: 3279, 7342: 7533, 4100: 2014, 5169: 7143, 2130: 1057, 7688: 2538, 5733: 1604, 4809: 8115, 7755: 1197, 6923: 7346, 5305: 8465, 1510: 4023, 7140: 7627, 4186: 657, 4287: 7452, 1597: 2114, 5014: 570, 7998: 2134, 5539: 3411, 1703: 944, 5786: 6784, 7730: 1860, 8040: 433, 6813: 1094, 7771: 4920, 4496: 7586, 7461: 1827, 6395: 1653, 3296: 3708, 5479: 5635, 5849: 4489, 7587: 7708, 3607: 7708, 2311: 7766, 8030: 6859, 3105: 7080, 6715: 7439, 4505: 5402, 4816: 3574, 3615: 3374, 8190: 5145, 6656: 4800, 8210: 7584, 7281: 7643, 8105: 2594, 6034: 6687, 4943: 5268, 7651: 681, 6607: 1526, 5979: 8022, 7804: 406, 2350: 2256, 5154: 3370, 4759: 6537, 2245: 1407, 2921: 4644, 3177: 2277, 1280: 5013, 3982: 623, 8230: 5070, 7511: 5198, 4541: 8157, 8310: 6214, 7770: 3628, 6171: 1086, 6641: 3191, 5404: 962, 4903: 7286, 4323: 7007, 1854: 6630, 7812: 567, 5288: 289, 7220: 5164, 2272: 1532, 6186: 6961, 7710: 115, 3640: 993, 8018: 8520, 3443: 3338, 6887: 1828, 4815: 1285, 8306: 2778, 1807: 1837, 2904: 50, 3758: 3689, 4994: 4638, 5897: 7572, 5929: 4483, 5692: 2108, 6135: 3041, 8345: 278, 8336: 3287, 3933: 2732, 7247: 5415, 6776: 4261, 5258: 3960, 6645: 414, 4420: 6099, 8194: 4865, 4638: 2055, 7697: 1262, 3592: 4107, 5172: 5920, 8390: 3936, 7431: 4066, 3304: 6587, 6803: 6867, 3086: 5878, 7514: 2998, 6379: 8322, 7889: 3160, 8460: 7245, 6502: 2609, 7675: 3379, 4837: 8047, 6621: 3459, 7545: 5482, 7780: 2900, 5210: 5360, 6196: 2437, 3694: 8342, 8396: 553, 7615: 5665, 4993: 6282, 5955: 1265, 7259: 662, 4847: 3299, 8304: 4964, 3754: 7045, 7337: 245, 174: 5610, 8262: 4193, 7492: 2220, 1711: 1877, 8334: 244, 5540: 8214, 2968: 8288, 7306: 1864, 7341: 270, 2006: 2465, 1620: 559, 7440: 1677, 6032: 3611, 7116: 2939, 2369: 6993, 8255: 1103, 805: 5663, 5575: 1467, 7300: 5171, 6939: 6922, 4596: 7348, 2521: 1100, 8207: 4537, 6115: 5336, 1248: 1449, 3004: 8359, 7909: 8173, 6702: 3578, 3133: 4388, 7248: 7729, 2600: 7574, 7932: 2967, 8096: 2923, 4980: 8336, 5625: 5617, 4825: 1592, 7261: 6369, 7515: 871, 2911: 8445, 4797: 694, 4262: 683, 6333: 742, 5474: 3866, 4461: 2442, 6329: 8719, 8196: 2007, 1275: 820, 2430: 5305, 7496: 5949, 8327: 1250, 7406: 4604, 4852: 4908, 3103: 3320, 3169: 7538, 7579: 3945, 7215: 6393, 6361: 7046, 2493: 7536, 8359: 2439, 6092: 6303, 3674: 7155, 7836: 634, 5076: 5564, 5987: 1488, 5721: 679, 6586: 7058, 7594: 4758, 5228: 2299, 8602: 6092, 8660: 5332, 2232: 4472, 3015: 7578, 8430: 7081, 3065: 4795, 6058: 5563, 7870: 4396, 7111: 1531, 7322: 4771, 6700: 3464, 6541: 2804, 8449: 2010, 3578: 1643, 7320: 3698, 3359: 1473, 7629: 1804, 7384: 33, 8088: 350, 5388: 1826, 7411: 5029, 7893: 2985, 7338: 8416, 2641: 1081, 5885: 2489, 6169: 2067, 4418: 1495, 7749: 1204, 8563: 4948, 5891: 7563, 5818: 8865, 3562: 2410, 8767: 6941, 5139: 4717, 6356: 6565, 8520: 6096, 4355: 5203, 8097: 3203, 1019: 7932, 3521: 1333, 1261: 2709, 4931: 4188, 4908: 7721, 1770: 6735, 5283: 5851, 3955: 8399, 8155: 3899, 6469: 8632, 8295: 8055, 4133: 5506, 8122: 3095, 1909: 732, 8038: 3392, 7783: 2499, 4444: 2126, 5545: 637, 5621: 1082, 7422: 3703, 7648: 6584, 4202: 5717, 4136: 341, 5615: 7349, 7517: 6039, 4703: 5918, 6292: 2963, 7574: 6197, 7612: 5176, 2955: 2259, 8424: 447, 6854: 1571, 7719: 8401, 3602: 7571, 8288: 1144, 2757: 697, 8023: 4227, 7437: 351, 8501: 6887, 5761: 6619, 7622: 489, 2588: 7681, 7412: 3268, 4438: 1942, 534: 8124, 8507: 8162, 6869: 4443, 5836: 1041, 1133: 2286, 6642: 1662, 5285: 1225, 3636: 2074, 2326: 1477, 7335: 3386, 3510: 7879, 5530: 8785, 8598: 8172, 7792: 4048, 8595: 5183, 8662: 517, 2100: 8420, 6767: 2807, 8706: 8419, 8532: 1246, 4367: 3177, 7257: 2186, 7704: 8215, 5709: 2477, 7512: 5663, 3552: 8316, 4630: 4944, 5699: 5104, 8633: 5074, 4666: 7604, 3631: 6251, 7324: 2939, 2425: 8265, 5618: 6416, 8313: 3678, 3264: 5156, 8601: 368, 476: 1411, 8535: 902, 6042: 2404, 7540: 4175, 8786: 6820, 5497: 7227, 8558: 1533, 7885: 8163, 7667: 1687, 7871: 4177, 8279: 7092, 8406: 8133, 3038: 687, 8703: 6598, 7585: 5043, 6331: 6455, 8882: 4626, 1596: 337, 3909: 6261, 4862: 4097, 6999: 3161, 8756: 7146, 4501: 5953, 1591: 6709, 6537: 2145, 6749: 762, 1627: 1891, 8042: 2577, 7519: 5284, 8580: 9, 4428: 6591, 7159: 1570, 7810: 1238, 4365: 3488, 5809: 8968, 1973: 1446, 8683: 5057, 7441: 3524, 6564: 8785, 8397: 4154, 1571: 4396, 6031: 7115, 8488: 2266, 3817: 5943, 7782: 391, 8909: 3622, 8364: 2847, 6906: 1776, 6131: 4868, 5561: 6183, 7911: 6724, 7171: 2836, 3242: 3478, 1841: 1278, 8454: 3960, 7087: 8281, 3878: 7991, 6521: 4173, 3720: 89, 9018: 1987, 8500: 7384, 6794: 2259, 8961: 3512, 7246: 6160, 653: 4635, 8757: 8174, 8775: 7280, 6446: 1094, 4613: 7074, 2696: 2822, 2557: 3643, 6238: 2736, 6807: 4452, 8480: 8845, 4066: 7717, 3585: 8426, 7208: 1462, 8029: 1972, 4958: 5110, 7400: 4486, 2510: 748, 7508: 2794, 3969: 5308, 6143: 5914, 7258: 210, 7925: 7542, 3379: 8919, 6762: 8591, 2747: 7761, 1808: 3659, 7662: 4473, 8407: 3864, 6105: 1063, 2581: 4245, 5448: 6194, 8377: 3485, 4021: 2771, 6206: 4750, 7689: 2490, 4992: 8695, 7108: 6596, 7700: 2067, 2380: 7201, 8244: 8593, 5827: 2611, 8521: 8412, 6660: 5427, 6488: 29, 2119: 8784, 512: 6600, 855: 7934, 5989: 1071, 8036: 584, 5476: 3509, 3787: 870, 1222: 8028, 6720: 4518, 8032: 5541, 8916: 5752, 9096: 4267, 7348: 2346, 6426: 8102, 4932: 5712, 3930: 3383, 8655: 3015, 4047: 1121, 5966: 4374, 6353: 3698, 8203: 6752, 7094: 2379, 6212: 3003, 4097: 8383, 7262: 1133, 5881: 9079, 7856: 8271, 3451: 9050, 8878: 3019, 3446: 7287, 1574: 3262, 4728: 7988, 8776: 3093, 7887: 1796, 8245: 4693, 4892: 1836, 5854: 2045, 7419: 1232, 6796: 1954, 8831: 1069, 3856: 8985, 6988: 6932, 2237: 2011, 1025: 7646, 8126: 7764, 9125: 7639, 3234: 4317, 5654: 702, 8012: 392, 9226: 7886, 5155: 84, 6982: 8278, 7988: 1800, 6811: 4890, 8490: 5010, 7497: 917, 7761: 9267, 7056: 8776, 6705: 8270, 9200: 7318, 6063: 3665, 8630: 3527, 2901: 4693, 7970: 5835, 9052: 425, 8755: 5367, 7015: 674, 4500: 9142, 2170: 3172, 3638: 1770, 6874: 3322, 7078: 2316, 8750: 1404, 7732: 7137, 7627: 8585, 6507: 9287, 7756: 6493, 9235: 8372, 6100: 4317, 8686: 7097, 7154: 259, 4751: 6967, 7135: 8125, 3947: 1399, 5308: 5870, 5864: 3220, 6122: 8535, 3473: 3183, 8516: 8582, 8995: 3736, 8597: 2627, 5375: 4953, 7722: 6842, 7198: 772, 4169: 8930, 6978: 706, 7179: 8747, 7949: 314, 5010: 126, 8974: 8712, 5134: 9292, 4005: 6020, 5042: 4828, 2368: 636, 4201: 8002, 8782: 9173, 8181: 8237, 8053: 7494, 5920: 8721, 3910: 6249, 7430: 4461, 7146: 9049, 8514: 8769, 8243: 5186, 1704: 557, 8628: 3709, 6431: 8552, 9291: 8959, 6808: 5202, 1013: 4944, 6441: 3822, 9074: 1198, 6465: 168, 7073: 1135, 6793: 623, 8098: 5885, 8844: 6290, 7206: 6048, 4077: 9348, 3437: 8013, 2899: 6773, 1379: 2616, 1675: 7843, 7907: 9051, 4599: 2874, 5520: 2886, 4626: 7006, 6575: 2335, 6620: 8398, 8319: 1178, 8666: 8241, 8701: 1571, 8617: 5520, 5162: 2913, 8134: 8315, 2807: 7002, 5251: 263, 671: 4955, 8337: 2725, 6931: 2233, 6053: 8434, 1232: 7056, 6661: 554, 8620: 5584, 2834: 2320, 5956: 2901, 5345: 7144, 2577: 9194, 5669: 1478, 5957: 1737, 7483: 8128, 4873: 3477, 5613: 1579, 4297: 8942, 6193: 6858, 8128: 6240, 7997: 4078, 9177: 7859, 9315: 1538, 6101: 2808, 2595: 672, 5554: 413, 3042: 8149, 7212: 9202, 5641: 6832, 8019: 8807, 7385: 5951, 2639: 6076, 9276: 4519, 8929: 5038, 6630: 699, 1741: 6493, 8799: 5829, 2815: 9337, 5466: 6298, 7757: 2091, 5874: 2279, 5013: 8072, 3029: 2939, 8080: 5958, 9419: 9297, 2601: 9436, 4244: 1482, 9048: 1307, 5846: 7831, 7505: 1064, 4038: 4366, 4439: 7617, 5187: 2804, 8550: 2642, 3196: 8877, 6907: 9334, 4412: 4259, 3824: 9430, 3474: 6404, 6217: 2054, 6119: 8328, 9522: 5545, 7736: 5099, 4901: 3284, 6732: 6665, 7451: 5013, 8774: 3433, 8817: 8670, 7358: 2111, 1960: 4560, 6724: 8509, 5433: 6737, 8606: 6477, 7057: 4425, 7748: 6898, 7175: 7799, 6594: 671, 7920: 7733, 4880: 4216, 7646: 1390, 2169: 1519, 1788: 5312, 9227: 6462, 8789: 3240, 6154: 1625, 6862: 2918, 8158: 8905, 2762: 7975, 3683: 9397, 8117: 4992, 4506: 1346, 4035: 249, 7407: 7825, 4473: 4355, 6558: 3906, 9400: 4942, 7641: 1854, 8688: 6668, 4209: 8542, 8803: 884, 7233: 103, 8888: 7666, 5131: 9144, 7621: 5157, 8680: 710, 5113: 8298, 9483: 4915, 6183: 3897, 7992: 6321, 5104: 9396, 7025: 3827, 7647: 1892, 4998: 3207, 9046: 2969, 7576: 7909, 7720: 5932, 1752: 4915, 9496: 5806, 6428: 5217, 7844: 7946, 8884: 6624, 3297: 9231, 5097: 5533, 6825: 67, 6388: 3104, 8770: 7270, 3886: 92, 1762: 5662, 8436: 6049, 4670: 1398, 7521: 8683, 9285: 6537, 9064: 7748, 7786: 3793, 8315: 1177, 6908: 7713, 6364: 6077, 6267: 116, 7921: 7344, 8256: 2896, 7176: 6076, 3965: 6540, 8975: 8924, 5919: 5634, 8431: 1539, 4150: 6477, 7486: 9431, 3398: 394, 7416: 814, 3942: 738, 8231: 2348, 1183: 3055, 1639: 7130, 8333: 7471, 2699: 9335, 8044: 3131, 7665: 4682, 7076: 9127, 7100: 4887, 8205: 6602, 4718: 4870, 7354: 8633, 6844: 2746, 7851: 4263, 9300: 4908, 8537: 3113, 4561: 3485, 8977: 8797, 5012: 6091, 7571: 5251, 7003: 2364, 2506: 3112, 5453: 653, 3184: 4290, 7286: 1529, 6576: 4459, 2848: 4742, 5085: 6608, 5581: 1369, 5971: 3088, 5678: 8682, 9214: 655, 5720: 3198, 8971: 793, 6304: 6376, 7693: 3631, 7185: 8474, 9582: 2789, 2739: 3601, 6826: 8898, 2334: 1171, 5212: 4106, 3313: 5969, 7966: 9765, 6786: 7659, 7167: 3272, 5756: 7387, 7789: 3020, 9416: 3118, 8522: 3849, 143: 6075, 7583: 6575, 6643: 586, 8777: 8345, 9625: 9326, 6456: 7901, 9595: 7579, 5583: 3132, 1423: 3660, 5312: 9689, 2605: 8440, 6544: 337, 6287: 3732, 5590: 3539, 6262: 1495, 9703: 8853, 6302: 139, 6830: 3038, 7234: 3113, 8422: 4295, 9464: 825, 3686: 3926, 2070: 6797, 6634: 7636, 9323: 1338, 5933: 1696, 4214: 5601, 5574: 700, 8035: 9002, 3157: 9125, 7204: 5453, 8093: 9618, 7881: 5408, 9667: 5471, 6997: 7617, 5207: 8771, 2379: 2520, 4022: 7666, 4063: 795, 8717: 7180, 5515: 945, 5776: 4403, 9528: 7226, 3312: 4352, 6674: 7792, 5405: 6164, 7178: 1246, 3560: 2083, 1986: 9368, 8981: 2147, 9171: 2977, 1794: 1299, 8361: 2603, 7968: 6082, 7817: 4138, 5870: 5164, 8816: 1845, 5379: 9694, 7816: 6103, 7601: 6248, 8360: 3392, 4579: 5795, 9206: 2580, 9875: 3535, 7061: 8454, 4002: 525, 6847: 7036, 5435: 6778, 6336: 4526, 4865: 2711, 1887: 8363, 6843: 7564, 6689: 6653, 7030: 3461, 9767: 851, 6518: 9641, 4754: 9631, 3214: 7091, 8649: 3783, 8970: 1824, 7043: 6435, 7445: 3885, 8292: 7396, 6397: 7596, 5467: 2379, 2239: 4960, 9829: 5915, 3708: 4656, 5023: 8674, 5086: 8714, 6814: 8084, 9241: 313, 5602: 3648, 4671: 7449, 2294: 7594, 8546: 8071}
    

    Les méthodes values, keys et items

    Dans cette partie , nous allons voir comment itérer sur un dictionnaire.

    La méthode values

    Pour obtenir l'ensemble des valeurs sous la forme d'une structure de données itérable d'un dictionnaire d, on utilise la méthode values.

    La donnée structurée ainsi récupérée est de type dict_values, c'est un objet itérable mais non indexé.

    **

    Déterminer la moyenne de bob à l'aide d'une fonction moy(res) Python

    La méthode keys

    Pour obtenir la liste (de type dict_keys) d'un objet dictionnaire d on écrit :

    d.keys()

    
    res={'nsi' :18,'maths':17,'svt':14,'français':14,'lv1':8,'physique':12,'HG':11}
    for i in res.keys():
    print(i)
    					

    La méthode items()

    Pour obtenir l'ensemble du dictionnaire sous forme d'une donnée itérable on utilise la méthode items

    d.items()
    
    res={'nsi' :18,'maths':17,'svt':14,'français':14,'lv1':8,'physique':12,'HG':11}
    for i in res.items():
    print(i)
    					

    Par défaut un dictionnaire est itérable mais alors on itère uniquement sur les clés. Ce qui justifie l'existence de la méthode items

    
    res={'nsi' :18,'maths':17,'svt':14,'français':14,'lv1':8,'physique':12,'HG':11}
    for i in res():
    print(i)
    					
    *

    Réaliser un affichage des notes de Bob qui ressemble à cela :

    Suppression d'une clé

    Pour supprimer une élément d'un dictionnaire on écrit :

    
    del(d[cle_a_suppr])
    			

    *

    Supprimer le Français des résultats de Bob.

    Opération sur les dictionnaire

    L'opérateur &

    L'opérateur & permet de trouver les valeurs communes des données obtenues avec les méthode keys, values ou items de deux dictionnaires.

    Il s'utilise ainsi :

    
    d1={'10km':'lundi','fractionné 1h ':'mardi','15km':'Jeudi', '1h':'Jeudi', 'tranquille':'Samedi'}
    d2={'15km':'lundi','fractionné 2h ':'mardi','10km':'Jeudi', '1h':'Jeudi', 'tranquille':'dimanche'}
    d1.keys() & d2.keys()
    d1.values() & d2.values()
    d1.items() & d2.items()
    

    Exercices

    **

    Voici une citation célèbre de Gandhi :

    La vie est un mystère qu'il faut vivre, et non un problème à résoudre.

    Créer un dictionnaire qui associe à chaque lettre (clé) son occurrence (valeur). Par exemple la lettre 'a' apparait deux fois.

    Par exemple dico= {'a':2, .........}

    ***

    Fichiers Exif

    • vidéo sur exif à visionner
    • récupérer photo et exif et envoyer sur open street map
    • le refaire en Python

    Structure de données : les ensembles

    Un ensemble est une collection non ordonnée d'objets, contrairement aux séquences comme les listes et les tuples dans lesquels chaque élément est indexé. Un ensemble ne peut pas contenir de doublon.

    Faire des recherches sur le web pour la notion d'ensemble set en python.

    En python un set se déclare entre accolades. Exemple : a={} # Un ensemble vide
    La notion d'ensemble est préférable à la liste pour effectuer un test d'appartenance.
    Python offre les mêmes opérations sur les ensembles qu'en mathématiques.
    On retrouve les notions d'appartenance in, d'union |, intersection &, de différence -

    Les ensembles de nombres vus à travers une activité sur les critères de divisibilité.

      Le but de ce TP est créer un ensemble de fonctions permettant de déterminer si :
    • un nombre est divisible par 2( nombre pair)
    • un nombre est divisible par 3
    • un nombre est divisible par 5
    • un nombre est divisible par 10
    • un nombre est divisible par 4
    Lien pour les définitions
      Par exemple un nombre est divisible par 2 si :
    • le reste de la division entière par 2 est 0
    • si le nombre se termine par 0,2,4,6,8
    Vous pouvez trouver différentes méthodes mathématiques, informatiques. Vous pouvez tester vos méthodes sur différents exemples.
      Rappels pour PYTHON :
    • a%b renvoie le reste de la division. Vous écrirez une fonction demo(n) qui teste tous vos critères de divisibilité et qui affiche une réponse pour chaque critère.
    • Vous pouvez écrire une fonction qui renvoie la liste des diviseurs d'un entier.
      Vous pouvez prolonger votre TP en cherchant des définitions de nombres remarquables :
    • Les nombres premiers
    • Les nombres parfaits
    • Les nombres aimables
    • Les nombres abondants
    • Les nombres...... Trouver des idées sur le web

    Quelques exemples de programmes

    La cryptographie

    Un aperçu des fichiers jupyter proposés en téléchargement.

    
    
    Le zip à télécharger ici

    Simulation d'une variable aléatoire

    Un aperçu du fichier jupyter proposé en téléchargement.

    
    
    Le zip à télécharger ici

    Une animation avec Python

    Fluctuation des frèquences de succès. Animation tirée de l'espace Eduscol. Ressources n°8 d'Eduscol

    				
    
    

    Ressources supplémentaires

    Des ressources eduscol

    Des ressources Eduscol

    Des vidéos

    Quelques espaces vidéos

    Un mémo Python

    Téléchargement du mémo en version pdf.
    Téléchargement du mémo en version docx.

    L'ensemble de ce site

    Le squelette complet de ce site .