Les différents types 1. Entiers : Type int Les opérations de base : + , - , * , / ( division euclidiène ) , % ( reste de la division euclidienne), puissance : ** La taille « naturel » d’un entier codé en 32 bits est : 231 N 231 >>> (2**30)-1+2**30 2147483647 >>> (2**30)+2**30 2147483648L Au-delà, il est qualifié de long et est suivit d’un L. 2. Nombres réels : Type float Ce sont les nombres à virgules : 2.3 , -1051.26 , 10. , 5e15 (utilisé pour les exposants en base 10) Les opérations étant les opérations usuelles, ainsi que les fonctions classiques mathématiques du module math. Il est possible de changer les types : >>> float(3) 3.0 >>> int(5.15) 5 3. Les listes ou tableau : Type list On définit un tableau à l’aide de [argument]. >>> tab=[5,8.1,"coucou",[4,5]] >>> tab[0] #les indices d’un tableau commencent à 0 5 >>> tab[2] 'coucou' >>> tab[3][0] 4 On constate qu’un tableau peut être composé de différents types, même du type list… Il est possible de changer une valeur dans un tableau : >>> tab[0]=7 >>> tab [7, 8.1, 'coucou', [4, 5]] Exercice 1 : Ecrire la fonction permute qui prend en argument un tableau tab et deux entiers i et j et qui permute les valeurs des indices i et j. ( la fonction ne renvoie pas le tableau). 1 La taille d’une liste est obtenue avec la fonction len : >>> len(tab) 4 Exercice 2 : Ecrire une fonction somme qui renvoie la somme des valeurs d’un tableau. Ecrire une fonction moyenne qui renvoie la moyenne des valeurs d’un tableau. Exercice 3 : Ecrire une fonction qui donne le plus grand et le plus petit élément d’un tableau : Exercice 4 : Ecrire une fonction occurrences qui renvoie le nombre de a qui apparaissent dans un tableau. Exemple : >>> occurrence ( 6,[4,6,7,8,4,9,6,2,13]) il y a 2 fois 6 dans ce tableau >>> occurrence ( 5,[4,6,7,8,4,9,6,2,13]) il n'y a pas de 5 dans ce tableau Ecrire une fonction nb_note_au_dessus qui renvoie le nombre valeur supérieur à a qui apparaissent dans un tableau ; Exemple : >>> nb_note_au_dessus ( 10,[14,6,17,8,4,9,16,2,13]) il y a 4 valeurs au dessus de 10 dans ce tableau Il est possible de concaténer deux tableaux : >>> tab + [5,6,7,'pourquoi'] [49, [4, 5], 'coucou', 8.1, 94, 5, 6, 7, 'pourquoi'] Exercice 5 : Ecrire la fonction sub qui extrait le sous vecteur des éléments compris entre deux indices (inclus). Exercice 6 : Ecrire une fonction rand_vect qui crée un vecteur de taille n d’entier aléatoires inférieur à un x donnée. 4. Les booléens :Type bool Voir les conditionnelles du chapitre précédent. 2 5. Les chaines de caractères : Type string >>> mot = 'jeudi' >>> mot[2] #la troisième lettre 'u' >>> mot[1:4] # le sous-mot de l’indice 1 à 3 inclus 'eud' >>> mot+mot #la concaténation 'jeudijeudi' >>> len(mot) # la longueur d’un mot 5 Exercice 7 : Ecrire une fonction retourne qui prend en argument une chaine de caractère et la retourne. Ecrire une fonction palindrome qui retourne vrai si la chaine de caractère est un palindrome.( en supposant que cet chaine ne contient pas d’espace) Ecrire une fonction retire_espace qui prend en argument une chaine de caractère est retourne ce chaine privée d’éventuelle espace. En déduire une amélioration de la fonction palindrome. 6. Les dictionnaires : Type dict >>> personne = { 'Nom':'Dupont' , 'Prenom' : 'Jean' , 'Age':30,'adresse' : '26 rue de la Risle'} >>> type(personne) <type 'dict'> >>> personne['Age'] 30 Il est possible de rajouter une nouvelle entrée ( à la fois clé et valeur ) >>> personne['Sport']='tennis' >>> personne {'Nom': 'Dupont', 'Age': 30, 'Sport': 'tennis', 'adresse': '26 rue de la Risle', 'Prenom': 'Jean'} On remarque que l’ordre n’a pas d’importance. Nous avons utilisé ici, pour nos clés et nos valeurs, des chaînes de caractères. Ce n'est absolument pas obligatoire. Comme avec les listes, vous pouvez utiliser des entiers comme clés : >>> dico = {} >>> dico[0]="premier" >>> dico[1]="suivant" >>> dico[2]=665 >>> dico[3]=[5,6,8] >>> dico {0: 'premier', 1: 'suivant', 2: 665, 3: [5, 6, 8]} 3 Exercice 8 : Ecrire une fonction entree_des_notes qui crée un dictionnaire sur les matières :maths, physique, français et anglais, et demande à l’utilisateur de rentrer les notes et retourne le dictionnaire avec les notes entrées. >>> entree_des_notes() quelle note en maths : 15 quelle note en physique : 13 quelle note en français : 16 quelle note en anglais : 10 {'maths': 15, 'physique': 13, 'fran\xe7ais': 16, 'anglais': 10} 7. Programmation Orientée Objet (POO) ( source http://fsincere.free.fr/isn/python/cours_python_ch1.php ) Python est un langage de programmation orienté objet (comme les langages C++, Java, PHP, Ruby...). Une variable est en fait un objet d'une certaine classe. Par exemple, la variable amis est un objet de la classe list. On dit aussi que la variable amis est une instance de la classe list. L'instanciation (action d'instancier) est la création d'un objet à partir d'une classe (syntaxe : NouvelObjet = NomdelaClasse(arguments)) : >>> # instanciation de l'objet amis de la classe list >>> amis = ['Nicolas','Julie'] # ou bien : amis = list(['Nicolas','Julie']) >>> print(type(amis)) <class 'list'> Une classe possède des fonctions que l'on appelle méthodes et des données que l'on appelle attributs. La méthode append() de la classe list ajoute un nouvel élément en fin de liste : >>> # instanciation d'une liste vide >>> amis = [] # ou bien : amis = list() >>> amis.append('Nicolas') # synthase générale : objet.méthode(arguments) >>> print(amis) ['Nicolas'] >>> amis.append('Julie') # ou bien : amis = amis + ['Julie'] >>> print(amis) ['Nicolas','Julie'] >>> amis.append('Pauline') 4 >>> print(amis) ['Nicolas','Julie','Pauline'] >>> amis.sort() # la méthode sort() trie les éléments >>> print(amis) ['Julie', 'Nicolas', 'Pauline'] >>> amis.reverse() print(amis) # la méthode reverse() inverse la liste des éléments>>> ['Pauline', 'Nicolas', 'Julie'] La méthode lower() de la classe str retourne la chaîne de caractères en casse minuscule : >>> # la variable chaine est une instance de la classe str >>> chaine = "BONJOUR" # ou bien : chaine = str("BONJOUR") >>> chaine2 = chaine.lower() # on applique la méthode lower() à l'objet chaine >>> print(chaine2) bonjour >>> print(chaine) BONJOUR La méthode pop() de la classe dict supprime une clé : >>> # instanciation de l'objet moyenne de la classe dict >>> moyenne = {'sport': 11.0, 'anglais': 14.3, 'math': 12.5} >>> # ou : moyenne = dict({'sport': 11.0, 'anglais': 14.3, 'math': 12.5}) >>> moyenne.pop('anglais') 14.3 >>> print(moyenne) {'sport': 11.0, 'math': 12.5} >>> print(moyenne.keys()) # la méthode keys() retourne la liste des clés dict_keys(['sport', 'math']) >>> print(moyenne.values()) # la méthode values() retourne la liste des valeurs dict_values([11.0, 12.5]) 5