Les types de données

les données numériques

Les données numériques utilisées jusqu'à présent sont soit du type integer ou du type float.

On considère le script suivant:
 >>>a=123
 >>>b=2.1416
 >>>c=35e-4
 >>>type(a)
 >>>type(b)
 >>>type(c)
 
Exécuter ce script.
On peut observer que a est considéré par python comme un entier (integer)alors que b et c comme des nombres à virgule flottante (float).
Pour q'une donnée numérique soit considérée comme étant du type float, il suffit qu'elle contienne dans sa formulation un élément tel qu'un point décimal ou un exposant de 10.

Exercices

  1. Ecrire un programme qui convertisse un temps donné en heures, minutes, secondes en secondes.
  2. Ecrire un programme qui convertisse un temps en secondes en heures, minutes, secondes.
  3. Ecrire un programme qui convertisse en degrés Farhenheit une température donnée au départ en degré Celsius. La formule de conversion est TF=TC x 1,8 + 32.
  4. Ecrire un programme qui convertisse en degrés Celsius une température donnée au départ en degrés Fahrenheit.

Les chaînes de caractères

Un programme d'ordinateur peut également traiter des caractères alphabétiques, des mots, des phrases, ou des suites de symboles quelconques. Dans la plupart des langages de programmation, il exites des structures particuluères que l'on appelle "chaînes de caractères".

Le type String

Dans un script python, les chaînes de caractères sont délimitées par des guillements ou apostrophes.
On considère le script suivant:
>>>phrase1="s'est"
>>>phrase2="Ma journée"
>>>phrase3='bien passée'
>>>print(phrase2,phrase1,phrase3)
Remarques: A l'intérieur d'une chaînes de caractères, l'antislash \ permet d'insérer un certain nombre de codes spéciaux: sauts à la ligne (\n), apostrophes, guillemets, etc.

Accés aux caractères individuels d'une chaîne.

On considère le script suivant:
 >>>ch="Pourquoi?"
 >>>print(ch[0])
 >>>print(ch[3])
 >>>print(ch[8])
 
Exécuter ce script.
Pour accéder à un caractère bien déterminé, on utilise le nom de la variable qui contient la chaîne et on lui accole, entre deux crochets, l’index numérique qui correspond à la position du caractère dans la chaîne.
l'indexation des caractères débute à partir de zéro.

Opérations élémentaires sur les chaînes

On considère le script suivant:
>>>a="tortue"
>>>b="corbeau"
>>>print(len(a))
>>>print(len(b))
Exécuter ce script.
On peut déterminer la longueur d'une chaîne de caractères, en faisant appel à la fonction intégrée len()
On considère le script suivant:
>>>a="Rien ne sert de "
>>>b="courir"
>>>c=a+b
>>>print(c)
Exécuter ce script.
On peut assembler des chaînes de caractères en utilisant le symbole +. Cette opération s'appelle la concaténation
On considère le script suivant:
>>>ch="6587"
>>>print(ch+45)
Exécuter ce script.
**ERREUR**, on ne peut ajouter une chaîne de caratères et un entier. 
Il est nécessaire de convertir la chaîne de caractères en utilisant int(). Corriger ce script.
Remarque: La fonction float() existe également pour convertir en un nombre à virgule flottante.

Exercices

  1. Écrivez un script qui compte le nombre d’occurrences du caractère « e » dans une chaîne
  2. Écrivez un script qui recopie une chaîne (dans une nouvelle variable), en insérant des astérisques entre les caractères. Ainsi par exemple, « gaston » devra devenir « g*a*s*t*o*n »
  3. Écrivez un script qui détermine si une chaîne contient ou non le caractère « e ».
  4. Écrivez un script qui recopie une chaîne (dans une nouvelle variable) en l’inversant. Ainsi par exemple, « zorglub » deviendra « bulgroz ».
  5. En partant de l’exercice précédent, écrivez un script qui détermine si une chaîne de caractères donnée est un palindrome (c’est-à-dire une chaîne qui peut se lire indifféremment dans les deux sens), comme par exemple « radar » ou « s.o.s ».

Les listes

On considère le script suivant:
>>>fruit=["pomme","poire","orange","kiwi","citron"]
>>>print(fruit)
>>>print(fruit[3])
Exécuter ce script.
Dans cet exemple, la valeur de la variable fruit est une liste. Dans Python, une liste est un ensemble ordonné d'éléments séparés par des virgules et délimité par des crochets.
Pour accéder à un caractère bien déterminé, on utilise le nom de la variable qui contient la chaîne et on lui accole, entre deux crochets, l’index numérique qui correspond à la position du caractère dans la chaîne. l'indexation des caractères débute à partir de zéro.
On considère le script suivant:
>>>fruit=["pomme","poire","orange","kiwi","citron"]
>>>fruit[3]="ananas"
>>>print(fruit)
Exécuter ce script.
Contrairement aux chaînes de caractères, il est possible de changer les éléments individuels d'une liste.
On considère le script suivant:
>>>fruit=["pomme","poire","orange","kiwi","citron"]
>>>print(len(fruit))
Exécuter ce script.
La fonction intégrée len() renvoie le nombre d'éléments présents dans la liste.
On considère le script suivant:
>>>fruit=["pomme","poire","orange","kiwi","citron"]
>>>del(fruit[3])
>>>print(fruit)
Exécuter ce script.
la fonction intégrée del() permet de supprimer un élément d'une liste.
On considère le script suivant:
>>>fruit=["pomme","poire","orange","citron"]
>>>fruit.append("banane")
>>>print(fruit)
Exécuter ce script.
La méthode append()permet d'ajouter un élément à la fin de la liste. L'élément à ajouter est mis dans les parenthèses.
D'autres méthodes existent pour les listes, elles sont toujours appliquées à la variable qui référence la liste, puis le point, puis le nom de la méthode, cette dernière toujours accompagnée d'une paire de parenthèses.

Exercices

  1. Soient les listes suivantes : t1 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
    t2 = ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre']
    Écrivez un petit programme qui crée une nouvelle liste t3. Celle-ci devra contenir tous les éléments des deux listes en les alternant, de telle manière que chaque nom de mois soit suivi du nombre de jours correspondant :
    ['Janvier',31,'Février',28,'Mars',31, etc...].
  2. Écrivez un programme qui affiche « proprement » tous les éléments d’une liste. Si on l’appliquait par exemple à la liste t2 de l’exercice ci-dessus, on devrait obtenir :
    Janvier Février Mars Avril Mai Juin Juillet Août Septembre Octobre Novembre Décembre
  3. Écrivez un programme qui recherche le plus grand élément présent dans une liste donnée.
    Par exemple, si on l’appliquait à la liste [32, 5, 12, 8, 3, 75, 2, 15], ce programme devrait afficher :
    le plus grand élément de cette liste a la valeur 75.
  4. Ecrivez un programme qui inverse la liste [32, 5, 12, 8, 3, 75, 2, 15].
  5. Écrivez un programme qui analyse un par un tous les éléments d’une liste de nombres (par exemple celle de l’exercice précédent) pour générer deux nouvelles listes. L’une contiendra seulement les nombres pairs de la liste initiale, et l’autre les nombres impairs. Par exemple, si la liste initiale est celle de l’exercice précédent, le programme devra construire une liste pairs qui contiendra [32, 12, 8, 2], et une liste impairs qui contiendra [5, 3, 75, 15].
    Astuce :pensez à utiliser l’opérateur modulo (%) déjà cité précédemment.
  6. Écrivez un programme qui analyse un par un tous les éléments d’une liste de mots (par exemple : ['Jean', 'Maximilien', 'Brigitte', 'Sonia', 'Jean-Pierre', 'Sandra']) pour générer deux nouvelles listes.
    L’une contiendra les mots comportant moins de 6 caractères, l’autre les mots comportant 6 caractères ou davantage.