Fichier:Python logo and wordmark.svg — Wikipédia

Les bases du langage

Algébrie

Opérateur Usage
+ Additionne deux nombres
- Soustrait deux nombres
* Multiplie deux nombres
/ Divise deux nombres
// Retourne le nombre entier d'une division
% Retourne le reste d'une division

Exemple :

>>> 2+3
# Le résultat sera 5
>>> 3*3
# Le résultat sera 9

 

Les variables

Les bases

nom_variable = valeur

 

  1. Le nom de la variable ne peut être composé que de lettres, majuscules ou minuscules, de chiffres et du symbole souligné « _ » (appelé underscore en anglais).
  2. Le nom de la variable ne peut pas commencer par un chiffre.
    3.Le langage Python est sensible à la casse, ce qui signifie que des lettres majuscules et minuscules ne constituent pas la même variable (la variable AGE est différente de aGe, elle-même différente de age).

Il existe 2 conventions principales pour nommer une variable :

  1. On remplace les espaces par un _ : mon_age
  2. On écrit le début de chaque mot, sauf le premier, avec une majuscule : monAge
    Pour affecter une valeur à cette variable :
monAge = 19

On peut interagir avec cette variable en modifiant son contenu comme bon nous semble :

monAge = 19
# monAge vaut 19
monAge = monAge + 4
# monAge vaut 23
monAge = monAge * 2
# monAge vaut 46

 

Différents types de données

Type de donnée Commentaire
Nombres entiers (int) Nombre sans virgule : 3
Nombres flottants (float) Nombre avec virgule : 3.2442
Chaine de caractères Contient des lettres, des phrases : Bonjour !

Pour les chaines de caractères, il faut faire attention aux types de guillements utilisés :

maPhrase = 'J'aime le python'
# Syntaxe incorrecte !
# Pour corriger cela, il faut échapper le ' :
maPhrase = 'J\'aime le python'
# Affiche bien la phrase

maPhrase = "j'aime le python"
# J'aime le python

maPhrase = """j'aime
              le
              python"""
# Les trois guillemets permettent de ne pas avoir à échapper les caractères, et permettent de faire un retour à la ligne sans utiliser \n

 

trucs et astuces

Incrémenter des variables

Lorsqu'il s'agit d'incrémenter des variables, on peut faire de plusieurs façons :

# Méthode 1 : Rajouter la valeur à la variable
maVariable = 1
maVariable = maVariable + 1
# Méthode 2 : Incrémenter directement la variable
maVariable = 1
maVariable += 1

 

Permutation de variable

>>> a = 5
>>> b = 32
>>> a,b = b,a # permutation
>>> a
32
>>> b
5
>>>

 

Affecter la même valeur à plusieurs variables

>>> x = y = 3
>>> x
3
>>> y
3
>>>

 

Les fonctions

Syntaxe d'une fonction :

nom_de_la_fonction(parametre_1,parametre_2,…,parametre_n)

 

Fonctions de base

a=3
type(a)
# retourne <class 'int'>

 

>>> a = 3
>>> print(a)
>>> a = a + 3
>>> b = a - 2
>>> print("a =", a, "et b =", b)

 

choix = input("Faite votre choix : ")

 

Par défaut, la valeur sera une chaine de caractères. Pour la convertir en entier, on peut utiliser ceci :

annee = input("Saisir une annee : ")
annee = int(annee)

 

Structures conditionnelles

IF

La structure conditionnelle IF permet de faire un choix. Cela permet de rendre le code intelligent.
Dans un langage courant, cela donnerait ceci :

Si <réfrigérateur_vide = 1>
  Alors Afficher "Faire des courses"
Fin si

En python, cela donnerait :

refrigerateur_vide = 1
if refrigerateur_vide=1:
  print "Faire des courses"

 

Attention : Dans d'autres langages de programmation tel que le C#, la fonction est délimitée par {}. En python, la fonction commence par : et c'est l'indentation qui délimite.

Démonstration :

refrigerateur_vide = 1
if refrigerateur_vide=1: #Je débute le IF
  print "Aller faire des courses" # Je suis dans le IF
  print "Je suis encore de le IF"
  print "Ici aussi"
print "Ici non, mon IF est terminé"

 

IF ELSE

Je peux également grâce au ELSE définir une action si ma condition est fausse.

refrigerateur_vide = 1
if refrigerateur_vide=1: # Si le frigo est vide, alors ...
  print "Faire des courses"
else: # Sinon ...
  print "Ne pas faire de courses"

 

ELIF

Cette condition permet d'avoir plusieurs conditions dans une clause IF.

refrigerateur_vide = 1
if refrigerateur_vide=1: # Si le frigo est vide, alors ...
  print "Faire des courses"
elif refrigerateur_vide=0.5: # Si le frigo est presque vide, alors ...
  print "Faire de petites courses"
else: # Sinon ...
  print "Ne pas faire de courses"

 

Opérateurs de comparaison

Opérateur Signification
< Strictement inférieur à
> Strictement supérieur à
<= Inférieur ou égal à
>= Supérieur ou égal à
== Égal à
!= Différent de

Attention : Pour tester l'égalité de deux valeurs, on utilise == et non = qui lui sert à l'affectation de valeurs

Info : Une condition renvoie uniquement deux valeurs : True ou False (vrai ou faux). Si le test est correcte, il renverra True, sinon False.

 

Plusieurs conditions pour une clause IF

Si un test à besoin de plusieurs conditions pour être vrai, on peut combiner plusieurs conditions pour une seule clause IF.

permis=False
majeur=True
if permis==True and majeur == True: # Pour que je puisse conduire, il faut que j'ai mon permis et que je sois majeur
  print "Je peux conduire"
else:
  print "Je ne peux pas conduire"

 

Les boucles

La boucle WHILE

La boucle while (ou tant que) répète une série d'instructions tant qu'une condition n'est pas vraie.
Syntaxe :

while condition:
  instruction1
  instruction2
  ...

Exemple : Je veux répéter une instruction tant que i n'est pas égal à 10 :

i = 0
while 1 != 10:
  print ("i ne vaut pas 10")
  i+=1

 

Attention : Il ne faut pas oublier d'incrémenter le compteur, sinon la boucle sera infinie !

 

Fonctions avancées

Le constructeur

Un constructeur est une méthode spéciale d'une classe qui permet de construire un objet, de lui donner des attributs.

Le nom de cette méthode est “ __init__ ” et prend en premier argument “ self ”, qui représente l'objet courant, qui est cours de création.

Exemple : je crée un constructeur permettant de définir une personne 

class People:
    def __init__(self,firstname,lastname,age):
        self.firstname = firstname
        self.lastname  = lastname
        self.age       = age

Notre fonction init demande 3 paramètres, “ self ” étant un paramètre spécial. 

Grâce à ce constructeur il ne reste qu'à créer des objets : 

>>> chuck = People("Chuck","Norris",81)

L'objet “chuck” a été créé, on peut désormais accéder à ses différents attributs, les lire et les modifier.

>>> chuck.firstname
'Chuck'
>>> chuck.firstname = "Chucky"
>>> chuck.firstname
'Chucky'

Le représentateur

Reprenons l'exemple précédent. Lorsque l'on souhaite afficher notre objet, la valeur retournée n'est pas tout à fait celle attendue.

>>> chuck
<__main__.People object at 0x03C12820>

Nous allons donc utiliser un représentateur pour mettre en forme l'objet.

Cette méthode se définit “ __repr__ ”.

class People:
    def __init__(self,firstname,lastname,age):
        self.firstname = firstname
        self.lastname  = lastname
        self.age       = age

    def __repr__(self):
        return "Nom : %s , Prenom : %s , Age : %s" % (self.lastname, self.firstname, self.age)

 

>>> repr(chuck)
'Nom : Norris , Prenom : Chuck , Age : 81'

Le décorateur

Le décorateur est une fonction permettant de modifier le comportement d'autres fonctions, évitant la répétition de code. Il est appelé par “ @nom_décoraeur ”.

def title_decorator(function):
    def wrapper(*args, **kwargs):
        print("*"*30)
        print("-"*30)
        function(*args, **kwargs)
        print("-"*30)
        print("*"*30)
    return wrapper

@title_decorator
def title(titre):
    print(titre)

>>> titre = "Ceci est mon texte décoré"
>>> title(titre)
******************************
------------------------------
Ceci est mon texte décoré
------------------------------
******************************

Ce décorateur permet simplement de mettre en forme un titre. Mais le décorateur, critiqué pour son nom ne définissant pas assez clairement sa fonction, peut avoir bien d'autres usages.

Par exemple, dans le cadre du développement web, les décorateurs sont très utilisés. Typiquement, pour les pages nécessitant une authentification, le décorateur “ @login_required ” du framework Django est très utile.

from django.contrib.auth.decorators import login_required

@login_required
def my_page(request):
    ...

Tout comme “ @login_required ”, beaucoup de décorateurs sont déjà développés, nécessitant un simple import.