Langage Python:
Séance 1 - Les types

Introduction

Python est un langage de programmation créé en 1989 par le hollandais Guido van Rossum. Il est gratuit, sous licence libre et fait partie des langages les plus populaires. Il est par exemple utilisé en classe préparatoire ainsi qu'en université dès cette année.
Il a de nombreuses applications notamment dans le calcul scientifique, les graphiques, les traitements d'images et de sons, les jeux, les réseaux...

Il en est à sa version 3. Nous utiliserons le logiciel Edupython proposé par l'académie d'Amiens et construit sur la base de PyScripter.

Edupython

Il existe différents types de variables, voici les principaux:

Les nombres: type int et float

Le type int: nombres entiers

"int" vient de "integer" qui signifie nombre entier.
Voici un premier exemple:


 >>> note = 18 # affecter la valeur 18 à la variable nommée note 
 >>> print(note) # afficher la variable grâce à print 
 18 
 >>> print(type(note)) # afficher le type de la variable note 
 <class 'int'>

Le type float: nombres à virgule flottante

Exercice 1: Affecter la valeur 10.71 à la variable nommée moyenne, l'afficher puis afficher son type.

Opérations sur les nombres

- Additions, soustractions, multiplications, exposants:


 >>> print(note)
 18 

 >>> note = note+2  # ou note += 2
 >>> print(note)
 20 

 >>> note = note-13  # ou note -= 13
 >>> print(note)
 7 

 >>> note = note*2  # ou note *= 2
 >>> print(note)
 14 

 >>> 7**2  
 49 

- Divisions:


 >>> 7/3  
 2.3333333333333335 

 >>> 7//3  # quotient de la division 
 2 

 >>> 7%3  # reste de la division 
 1 

- Apport d'un module

La racine carrée d'un nombre se calcule à l'aide de la commande sqrt .
Que renvoie la commande suivante?


 >>> sqrt(2)  

La commande sqrt n'est pas implicitement définie dans python, il faut appeler un module, ici le module math pour que cela fonctionne. Voici les étapes:

 >>> import math   # on importe le module  math  
 >>> math.sqrt(2)   # on va chercher dans le module  math  la commande  sqrt   
 1.4142135623730951 

Remarque: Lorsque vous tapez "math." dans la fenêtre, le logiciel vous indique toutes les fonctions que contient le module math.

Exercice 2: Calculer sin(π/4), log(3,5) et exp(5,78).

Les chaînes de caractères: type str

"str" vient de "string" qui signifie chaîne.
Par exemple, affecter la valeur "Tu auras ton BAC!" à la variable nommée phrase:


 >>> phrase = "Tu auras ton BAC!"
 

Puis afficher son type.

On peut remplacer les guillemets par des apostrophes. Cela servira dans ces cas là:


 >>> print(' Jeanne dit: "On arrive bientôt?" ')
 

On peut égalemet écrire sur plusieurs lignes avec les triples guillemets ou apostrophes:


 print("""Coucou,
 ça va?""")

Opérations sur les chaînes

- Concaténation avec +:

 >>> prenom = "Jean-Jacques"  
 >>> nom = "Goldman"  
 >>> chaine = nom + prenom   # Concaténation de deux chaînes 
 >>> print(chaine)
 'Jean-JacquesGoldman' 

 >>> chaine = nom + " " + prenom    # Concaténation de trois chaînes dont un espace 
 >>> print(chaine)
 'Jean-Jacques Goldman' 

>>> chaine = chaine + " est un compositeur français"   # L'espace est dans la phrase ajoutée 
 'Jean-Jacques Goldman est un compositeur français' 

- Longueur d'une chaîne avec len() :

 >>> len(nom)   
 7 

- Elément d'une chaîne:

 >>> nom[0]   # Attention, les lettres sont indicées à partir de 0    
 'G' 
 >>> nom[1]   
 'o' 
 >>> nom[-1]   
 'n' 

Exercice 3: Réflechir à ce que vont renvoyer ces différentes commandes puis les taper pour vérifier.

 >>> nom[1:3]   
 >>> nom[0:len(nom)-1]   

Les listes: type list

On utilise des crochets: [ ].
Par exemple, créer la liste suivante nommée bulletin:

 >>> bulletin = ['Alix',18,7,20,14]  

- Elément d'une liste:

 >>> bulletin[0]     
 'Alix' 

Exercice 4: En travaillant dans la fenêtre principale, calculer la moyenne d'Alix.

- Créer des listes de nombres avec range:


 >>> liste = list(range(10))   # liste allant de 0 inclus à 10 exclus! 
 >>> print(liste)     
 [0,1,2,3,4,5,6,7,8,9] 

 >>> liste = list(range(1,10))   # liste allant de 1 inclus à 10 exclus!   
 >>> print(liste)     
 [1,2,3,4,5,6,7,8,9] 

 >>> liste = list(range(0,10,2))   # liste allant de 0 inclus à 10 exclus avec un pas de 2 
 >>> print(liste)     
 [0,2,4,6,8] 


Exercice 5: Créer la liste suivante: [4,11,18,25,...,95]

Les dictionnaires: type dict

Un dictionnaire sert à stocker des données sous la forme clé:valeur.

On utilise des crochets: { }.
Par exemple, créer le dictionnaire suivant nommé moyennes:

 >>> moyennes = {'prenom':'Alix', 'math':18, 'histoire': 12}  

- Elément d'un dictionnaire:

 >>> moyennes['math']     
 18 

Les booléens: type bool

Un booléen ne prend que deux valeurs: True ou False .

Les opérateurs de comparaison :

Opérateur Signification Remarques
< strictement inférieur
<= inférieur ou égal
> strictement supérieur
>= supérieur ou égal
== égal Attention : deux signes ==
!= différent
is identique Deux conditions : égal et même type
is not non identique

 >>> note=15  # On affecte la valeur 15 à la variable note
 
 >>> note==10  # On teste si la variable note est égale à 10
 False 

 >>> note>10
 True 

 >>> note>10 and note<16 
 True 

 >>> note>10 or note<8 
 True 

 >>> note!=15 
 False 

Exercice 6:

POO: la Programmation Orientée Objet

Lorsque vous créez une liste, de type list , nommée notes par exemple, vous créez en fait un objet de la classe list . Ainsi, vous pouvez appliquer à notes les méthodes de la classe list :

 >>> notes=[18,20,4,10]
 >>> notes.append(3)
 >>> print(notes)
 [18,20,4,10,3] 

 >>> notes.reverse()
 >>> print(notes)
 [3,10,4,20,18] 

Autres exemples sur d'autres types:

 >>> phrase="COUCOu"
 >>> phrase.lower()
 'coucou' 

 >>> moyennes = {'prenom':'Alix', 'math':18, 'histoire': 12}
 >>> moyennes.keys()
 ['prenom','math','histoire'] 
 >>> moyennes.values()
 ['Alix',18,12] 
 >>> moyennes.pop('math')
 18 
 >>> print(moyennes)
 {'prenom':'Alix','histoire':12} 

Mini-projet: Fréquence d'apparition

Choisir un poème de votre choix sur internet (en vous assurant de la liberté de copie du texte).
Ecrire un programme qui, à partir de ce poème, construit un dictionnaire dans lequel on stockera la fréquence d'apparition de chaque voyelle (en omettant les voyelles accentuées).