Outils pour utilisateurs

Outils du site


issue76:python

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
issue76:python [2014/01/30 22:27] – [3] fredphil91issue76:python [2014/02/01 19:07] (Version actuelle) – [6] auntiee
Ligne 7: Ligne 7:
 The simplest way is to use lists and sets. We have already used lists in a number of the articles over the last four years, but Sets are a new data type to this series, so we'll examine them for a while. According to the “official documentation” for Python (docs.python.org), here is the definition of a set:** The simplest way is to use lists and sets. We have already used lists in a number of the articles over the last four years, but Sets are a new data type to this series, so we'll examine them for a while. According to the “official documentation” for Python (docs.python.org), here is the definition of a set:**
  
-Habituellement, mes articles sont assez longs. Toutefois, en raison de certains problèmes médicaux, celui de ce mois-ci sera assez court (dans le grand schéma des choses). Cependant, nous allons pouvoir continuer et approfondir notre série sur le programme de gestion de données.+Habituellement, mes articles sont assez longs. Toutefois, en raison de certains problèmes médicaux, celui de ce mois-ci sera assez court (dans le grand ordre des choses). Cependant, nous allons pouvoir continuer et approfondir notre série sur le programme de gestion de données.
  
-Une des choses que notre programme fera pour nous est de nous avertir si nous avons des épisodes manquants dans une des séries de la base de données. Voici le scénario. Nous avons une série, appelons-là « La série des années 80 », qui a duré trois saisons. Dans la saison 2, il y avait 15 épisodes. Cependant, nous n'en avons que 13 dans notre bibliothèque. Comment trouver quels épisodes manquent - informatiquement ?+Une des choses que notre programme fera pour nous est de nous avertir si nous avons des épisodes manquants dans une des séries de la base de données. Voici le scénario. Nous avons une série, appelons-la « La série des années 80 », qui a duré trois saisons. Dans la saison 2, il y avait 15 épisodes. Cependant, nous n'en avons que 13 dans notre bibliothèque. Comment trouver quels épisodes manquent - informatiquement ?
  
-Le plus simple est d'utiliser les listes et les ensembles. Nous avons déjà utilisé des listes dans un certain nombre d'articles au cours des quatre dernières années, mais les ensembles sont un nouveau type de données dans cette série, nous allons donc les examiner un peu. Selon la « documentation officielle » pour Python (docs.python.org), voici la définition d'un ensemble :+Le plus simple est d'utiliser des listes et des ensembles. Nous avons déjà utilisé des listes dans un certain nombre d'articles au cours des quatre dernières années, mais les ensembles sont un nouveau type de données dans cette série, nous allons donc les examiner pendant quelque temps. Selon la « documentation officielle » pour Python (docs.python.org), voici la définition d'un ensemble :
  
 ====== 2 ====== ====== 2 ======
Ligne 27: Ligne 27:
 set(['orange','pear','apple','banana'])** set(['orange','pear','apple','banana'])**
  
-« Un ensemble est une collection sans notion d'ordre et sans doublon. Les utilisations de base comprennent des tests d'appartenance et l'élimination des doublons. On peut également faire des opérations mathématiques sur les  ensembles comme l'union, l'intersection, la différence et la différence symétrique ».+« Un ensemble est une collection sans notion d'ordre et sans doublon. Les utilisations de base comprennent des tests d'appartenance et l'élimination des doublons. On peut également faire des opérations mathématiques sur les  ensembles comme l'union, l'intersection, la différence et la différence symétrique. »
  
 Je vais continuer à utiliser l'exemple de la page de documentation pour illustrer le processus.  Je vais continuer à utiliser l'exemple de la page de documentation pour illustrer le processus. 
Ligne 64: Ligne 64:
 ====== 4 ====== ====== 4 ======
  
-That's pretty simple and, hopefully, you are beginning to see where all this is going. Let's say we have a shopping list that has a bunch of fruit in it, and, as we go through the store, we want to check what we are missing – basically the items in the shopping list but not in our basket. We can start like this.+**That's pretty simple and, hopefully, you are beginning to see where all this is going. Let's say we have a shopping list that has a bunch of fruit in it, and, as we go through the store, we want to check what we are missing – basically the items in the shopping list but not in our basket. We can start like this.
  
 >>> shoppinglist = ['orange','apple','pear','banana','kiwi','grapes'] >>> shoppinglist = ['orange','apple','pear','banana','kiwi','grapes']
Ligne 77: Ligne 77:
  
 set(['orange', 'pear', 'grapes']) set(['orange', 'pear', 'grapes'])
 +
 +>>>**
 +
 +C'est assez simple et, je l'espère, vous commencez à comprendre où je veux en venir. Disons que nous avons une liste de courses qui contient plein de fruits et, en parcourant le magasin, nous voulons vérifier ce qui nous manque - c'est-à-dire les éléments de la liste de courses qui ne sont pas dans notre panier. Nous pouvons commencer comme ceci.
 +
 +>>> listecourses = ['orange', 'pomme', 'poire', 'banane', 'kiwi', 'raisin'
 +
 +>>> panier = ['pomme', 'kiwi', 'banane'
 +
 +>>> lc = ensemble (listecourses) 
 +
 +>>> p = ensemble (panier) 
 +
 +>>> lc-b 
 +
 +ensemble(['orange', 'poire', 'raisin']) 
  
 >>> >>>
Ligne 82: Ligne 98:
 ====== 5 ====== ====== 5 ======
  
-We create our two lists, shoppinglist for what we need and basket for what we have. We assign each to a set and then use the set difference operator (the minus sign) to give us the items that are in the shopping list but not in the basket.+**We create our two lists, shoppinglist for what we need and basket for what we have. We assign each to a set and then use the set difference operator (the minus sign) to give us the items that are in the shopping list but not in the basket.
  
 Now, using the same logic, we will create a routine (next page, bottom left) that will deal with our missing episodes. We will call our routine “FindMissing” and pass it two variables. The first is an integer that is set to the number of episodes in that season and the second is a list containing the episode numbers that we have for that season. Now, using the same logic, we will create a routine (next page, bottom left) that will deal with our missing episodes. We will call our routine “FindMissing” and pass it two variables. The first is an integer that is set to the number of episodes in that season and the second is a list containing the episode numbers that we have for that season.
  
-The routine, when you run it, prints out [5, 8, 15], which is correct. Now let's look at the code. The first line creates a set called EpisodesNeeded using a list of integers created using the range function. We need to give the range function the start value and end value. We add 1 to the range high value to give us the correct list of values from 1 to 15. Remember the range function is actually 0 based, so when we give it 16 (expected (15) + 1), the actual list that range creates is 0 to 15. We tell the range function to start at 1, so even though the range is 0 to 15 which is 16 values, we want 15 starting at 1.+The routine, when you run it, prints out [5, 8, 15], which is correct. Now let's look at the code. The first line creates a set called EpisodesNeeded using a list of integers created using the range function. We need to give the range function the start value and end value. We add 1 to the range high value to give us the correct list of values from 1 to 15. Remember the range function is actually 0 based, so when we give it 16 (expected (15) + 1), the actual list that range creates is 0 to 15. We tell the range function to start at 1, so even though the range is 0 to 15 which is 16 values, we want 15 starting at 1.** 
 + 
 +Nous créons nos deux listes, listecourses pour ce que nous voulons et panier pour ce que nous avons. Nous affectons chacune à un ensemble et utilisons l'opérateur d'ensemble « différence » (le signe moins) pour nous donner les éléments qui sont dans la liste des courses, mais pas dans le panier. 
 + 
 +Maintenant, en utilisant la même logique, nous allons créer une routine (page suivante, en bas à gauche) qui traitera de nos épisodes manquants. Nous allons appeler notre routine « RechercherManquants » et lui passer deux variables. La première est un entier réglé au nombre d'épisodes de cette saison et le second est une liste contenant les numéros d'épisodes que nous avons pour cette saison. 
 + 
 +La routine, lorsque vous l'exécutez, affiche [5, 8, 15] ce qui est correct. Maintenant, regardons le code. La première ligne crée un ensemble appelé EpisodesNecessaires qui est une liste de nombres entiers créée à l'aide de la fonction de plage de nombres. Nous devons donner à la fonction de plage la valeur de début et la valeur de fin. Nous ajoutons 1 à la valeur haute pour nous donner la liste correcte des valeurs de 1 à 15. Rappelez-vous que la fonction de plage part en fait de 0, donc quand nous lui donnons 16 (le 15 prévu + 1), la liste réellement créée va de 0 à 15. Nous disons à la fonction de plage de commencer à 1, puisque même si la plage est de 0 à 15, soit 16 valeurs, nous en voulons 15 à partir de 1.
  
 ====== 6 ====== ====== 6 ======
  
-Next we create a set from the list that is passed into our routine, which contains the episode numbers that we actually have.+**Next we create a set from the list that is passed into our routine, which contains the episode numbers that we actually have.
  
 Now we can create a list using the set difference operator on the two sets. We do this so we can sort it with the list.sort() method. You can certainly return the list if you wish, but in this iteration of the routine, we’ll just print it out. Now we can create a list using the set difference operator on the two sets. We do this so we can sort it with the list.sort() method. You can certainly return the list if you wish, but in this iteration of the routine, we’ll just print it out.
Ligne 96: Ligne 118:
 Well, that’s all the time in the chair in front of the computer that my body can stand, so I’ll leave you for this month, wondering how we are going to use this in our media manager. Well, that’s all the time in the chair in front of the computer that my body can stand, so I’ll leave you for this month, wondering how we are going to use this in our media manager.
  
-Have a good month and see you soon.+Have a good month and see you soon.** 
 + 
 +Ensuite, nous créons un ensemble avec la liste qui est passée à notre routine, qui contient les numéros d'épisodes que nous avons déjà. 
 + 
 +Maintenant, nous pouvons créer une liste en utilisant l'opérateur de différence d'ensemble sur les deux ensembles. Nous faisons cela pour pouvoir le trier avec la méthode list.sort(). Vous pouvez certainement renvoyer la liste si vous le souhaitez, mais dans cette itération de la routine, nous allons simplement l'afficher. 
 + 
 +Eh bien, me voici au bout du temps que mon corps peut supporter assis dans le fauteuil en face de l'ordinateur, donc je vais vous laisser pour ce mois-ci avec la question de comment nous allons utiliser tout ceci dans notre gestionnaire de médias. 
 + 
 +Passez un bon mois et à bientôt. 
 + 
 +====== 7 (code page 10) ====== 
 + 
 +  def RechercherManquants(attendus,dejapresents): 
 +  #=================================== 
 +  # attendus : numeros de tous les episodes requis 
 +  # dejapresents : liste des episodes que nous avons deja 
 +  # renvoie une liste triee des numeros manquants 
 +  #=================================== 
 +  EpisodesRequis = set(range(1,attendus+1)) 
 +  EpisodesPresents = set(dejapresents) 
 +  EncoreBesoin = list(EpisodesRequis - EpisodesPresents) 
 +  EncoreBesoin.sort() 
 +  print EncoreBesoin 
 +  RechercherManquants(15,[1,2,3,4,6,7,9,10,11,12,13,14])
  
issue76/python.1391117229.txt.gz · Dernière modification : 2014/01/30 22:27 de fredphil91