Une très très courte introduction à Python

Cette introduction est conçue pour être présentée en un cours (3h) à des étudiant.e.s de littérature, sans aucune connaissance informatique. Pour une introduction plus approfondie cf l’introduction à python de Romain Tavenard.

  • Un langage de haut niveau: donc proche du langage naturel.

Commençons avec notre premier programme:

print("Il dit: \"Je t\'aime\"")
Il dit: "Je t'aime"

Pour faire la même chose en Assembly - un des langages de programmation de niveau plus bas - il aurait fallu écrire quelque chose du type):

section .text
   global _start    
    
_start:             
   mov  edx,len     
   mov  ecx,msg     
   mov  ebx,1       
   mov  eax,4       
   int  0x80        
    
   mov  eax,1       
   int  0x80        

section .data
msg db 'Hello, world!', 0xa  
len equ $ - msg     

Variables

Une variable est un objet auquel on attribue une certaine valeur. Il y a plusieurs types en python, pour l’instant nous considérérons

  1. la chaîne de caractères (string) : str

  2. le nombre naturel (integer): int

  3. le booléen (vrai ou faux): bool

Par exemple:

mon_texte = 'Voici mon beau texte' #ça c'est un commentaire. Python n'interpète pas ce qui suit un #

mon_nombre = 2 # voici une variable qui a un type  "int"

mon_operateur_booleen = True
print(mon_nombre)
2

Si je veux savoir le type de chaque variable je peux faire:

print(type(mon_texte))
print(type(mon_nombre))
print(type(mon_operateur_booleen))
<class 'str'>
<class 'int'>
<class 'bool'>

Je peux faire des opératoins avec les variables. Par exemple je peux concatener deux chaînes de caractères ou additionner deux nombres.

mon_texte + ' - et voici sa continuation'
'Voici mon beau texte - et voici sa continuation'
mon_nombre * 3
6

Structures conditionnelles

On vérifie si une condition est remplie pour réaliser une opération.

Par exemple: s’il pleut, prend ton parapluie, s’il ne pleut pas, laisse-le à la maison.

il_pleut = True


if il_pleut:
    print('Prends ton parapluie!')
else:
    print('Laisse ton parapluie à la maison!')
        
Prends ton parapluie!

Attention à l’indentation! elle est interpétée par python!

Nous pouvons définir une fonction:

def parapluie(x):
    if x:
        print('Prends ton parapluie!')
    else:
        print('Laisse ton parapluie à la maison!')
    

Et ensuite lui passer des valeurs:

il_pleut = True
il_pleut_2 = False

parapluie(il_pleut)

parapluie(il_pleut_2)
Prends ton parapluie!
Laisse ton parapluie à la maison!

On peut attribuer de nouveaux valeurs à la même variable:

il_pleut = True
parapluie(il_pleut)

il_pleut = False
parapluie(il_pleut)
Prends ton parapluie!
Laisse ton parapluie à la maison!

Les listes

Une liste est une collection ordonnée de valeurs. Elle s’exprime avec des crochets []. À l’intérieur des crochets il y aura les valeurs séparées par des virgules. Nous pouvons avoir des listes de chaînes de caractères, de nombres, de booleens… ou aussi mélangées

Par exemple:

ma_liste = [1,3,5,8,9] #une liste de nombres
ma_liste_cc = ['Jean','Marie','Pierre','Délphine','Joseph']
ma_liste_miste = [1, 'Marie', '4 pommes', True]

Maintenant nous pouvons parcourir une liste et afficher chaque valeur. On utilisera une boucle:

for valeur in ma_liste:
    print(valeur)
1
3
5
8
9
for valeur in ma_liste_cc:
    print(valeur)
Jean
Marie
Pierre
Délphine
Joseph
for position, valeur in enumerate(ma_liste_cc):
    print(position)
    print(valeur)
0
Jean
1
Marie
2
Pierre
3
Délphine
4
Joseph
ma_liste_cc[2]
'Pierre'

Attention, le premier élément est l’élément 0 (et non 1)!

Le dernier élément est le -1

ierrema_liste_cc[-1]
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-16-90f3eb0c6786> in <module>
----> 1 ierrema_liste_cc[-1]

NameError: name 'ierrema_liste_cc' is not defined

Dictionnaires

Admettons d’avoir des informations sur une personne:

  • prénom

  • nom

  • téléphone

info_pers_1 = {'prenom' : 'André', 'nom' : 'Bouchard', 'tel' : '514 000 000' }

Accédons maintenant à ces informations:

print(info_pers_1['prenom'])
André
info_pers_1['tel']
'514 000 000'

Et si on en a plusieurs? On peut faire une liste de dictionnaires:

list_dict = []
list_dict.append(info_pers_1)

info_pers_2 = {'prenom' : 'Josephine', 'nom' : 'Autel', 'tel' : '438 111 111' }

list_dict.append(info_pers_2)
list_dict
[{'prenom': 'André', 'nom': 'Bouchard', 'tel': '514 000 000'},
 {'prenom': 'Josephine', 'nom': 'Autel', 'tel': '438 111 111'}]

Et maintenant on fait une boucle:

for personne in list_dict:
   # print(personne['prenom'] + ' ' + personne['nom'] + ' ' + personne['tel']) # le + ' ' sert juste à ajouter un espace blanc 
    print(personne['tel'])
    if '514' in personne['tel']:
        print('Montréal')
514 000 000
Montréal
438 111 111
list_dict[1]['prenom']
'Josephine'
dict_aristote = {'nom': 'Aristote', 'ville de naissance': 'Stagire', 'naissance' : '-384', 'mort': '-322', 'ville de mort': 'Calcis', 'oeuvres': [{'titre': 'Métaphysique', 'sujet' : 'principes premiers'},{'titre': 'Physique', 'sujet' : 'la nature'}, ]}
dict_aristote['nom']
'Aristote'
dict_aristote['oeuvres']
[{'titre': 'Métaphysique', 'sujet': 'principes premiers'},
 {'titre': 'Physique', 'sujet': 'la nature'}]
for oeuvre in dict_aristote['oeuvres']:
    print(oeuvre['titre'])
    print(oeuvre['sujet'])
Métaphysique
principes premiers
Physique
la nature
dict1 = {'titre': 'mon titre', 'texte' : 'letexteduroman'}

dict1.update({'date': '1962'})
dict1
{'titre': 'mon titre', 'texte': 'letexteduroman', 'date': '1962'}
dict1.update({'titre': 'L\'avalée'})
dict1
{'titre': "L'avalée", 'texte': 'letexteduroman', 'date': '1962'}
dict2 = {'titre': "Va savoir", 'texte': 'letexteduroman', 'date': '1972'}
maliste= [dict1]
maliste[-1]['titre']
"L'avalée"
maliste.append(dict2)
maliste[1]['titre']
'Va savoir'
for cle in dict1.keys():
    print(cle)
titre
texte
date
dict1.update({'titre': 'blabla', 'date': '182'})
dict1['titre2']
'blabla'