Les bases
- Développé en 1989 par Guido van Rossum. Première version a été publiée en 1991.
- Open-source, le code source est disponible pour le public, et les utilisateurs ont la liberté de le modifier et de le distribuer)
- Portable, il peut être exécuté sur différentes plates-formes (systèmes d’exploitation).
- Orienté objet, il prend en charge les concepts tels que les classes et les objets, l’encapsulation, l’héritage et le polymorphisme.
- Dynamique : la gestion automatique de la mémoire.
- Extensible : Python est extensible, ce qui signifie que vous pouvez incorporer du code écrit dans d’autres langages (comme C/C++) dans vos programmes Python pour améliorer les performances ou accéder à des fonctionnalités spécifiques.
- Support pour l’intégration d’autres langages : Python offre des mécanismes pour intégrer du code provenant d’autres langages, par exemple via des interfaces comme ctypes pour C, Jython pour Java et autres.
- Python fonctionne par indentation.
Langages interprétés ou compilés ?
Imagine que tu es en train de préparer une recette.
- Langage compilé :
- C’est comme si tu avais une liste de courses détaillé.
- Tu prépares tout à la maison, tu mets les ingrédients dans des boites différentes..
- Une fois que tout est prêt, tu n’as qu’à apporter tes boîtes à la fête (l’exécution du programme).
- En programmation, on traduit tout le code en langage machine (le binaire) avant de l’exécuter.
- Langage interprété :
- C’est comme si tu lisais ta recette et cuisinais chaque étape directement à la fête.
- Tu n’as pas besoin de préparer à l’avance, tu fais juste ce qui est écrit au fur et à mesure.
- En programmation, le code est lu et exécuté ligne par ligne au moment où le programme tourne.
En résumé, avec un langage compilé, tu prépares tout à l’avance comme un super chef qui a tout organisé avant le grand jour. Avec un langage interprété, tu lis et fais chaque étape de la recette à la fête, sans préparation préalable.
Avantages / Risques langages interprétés ou compilé !
Un langage compilé est traduit en langage en machine une seule fois, et l’exécutable résultant peut être directement exécuté par la machine.
Les programmes compilés peuvent être moins portables, car l’exécutable généré peut être spécifique à une architecture matérielle ou à un système d’exploitation particulier.
Les langages interprétés permettent un développement plus rapide car le processus de compilation est évité. Les modifications peuvent être testées rapidement sans avoir à recompiler le code.
Les programmes interprétés sont souvent plus portables, car ils dépendent de l’interpréteur plutôt que d’un fichier exécutable spécifique à la machine.
Les programmes interprétés peuvent avoir des performances inférieures, car l’interprétation du code a lieu à chaque exécution plutôt qu’une seule fois comme dans le cas de la compilation.
Python, pour quel usage ?
Web :
- Django
- TurboGears
- Zope
- Plone
- Flask
- Pyramid
- Bottle
- CherryPy
Bases de données :
- MySQL
- PostgreSQL
- Oracle
- SQLite
- MongoDB
- Cassandra
- Redis
- CouchDB
Réseaux :
- TwistedMatrix
- PyRO (Python Remote Objects)
- Scapy
- Requests
- Socket (module standard pour les sockets en Python)
GUI (Graphical User Interface) :
- Gtk (PyGTK)
- Qt (PyQt)
- Tkinter (Tcl/Tk)
- WxPython (WxWidgets)
- Kivy
- PyQtGraph
- Dear PyGui
Représentation graphique :
- Gnuplot
- Matplotlib
- VTK (Visualization Toolkit)
- Seaborn
- Plotly
- Bokeh
- Pygame (également utilisé pour le développement de jeux)
Calcul scientifique :
- NumPy
- SciPy
- SageMath
- SymPy
- Pandas
- TensorFlow (utilisé pour le machine learning)
- scikit-learn (outil d’apprentissage automatique)
Les types
Les entiers (32 bits) int
entier_32_bits = 42
Les Réels (64 bits) float
reel_64_bits = 3.14
Les Complexes
complexe_nombre = 2 + 3j
Opérations de base
Affectations
>>> i = 3 # i vaut 3
>>> k = r = 2.15
Affichage dans l’interpréteur
>>> i
3
>>> print i
3
Opérateurs Arithmétiques
Addition, Soustraction, Multiplication, Division
# Exemple d'utilisation des opérateurs arithmétiques
a = 5
b = 2
addition_result = a + b
soustraction_result = a - b
multiplication_result = a * b
division_result = a / b
Opérateurs de Comparaisons
# Utilisation des opérateurs de comparaison numérique (>), (>=), (<), (<=), (==)
equal_result = x == y # Égalité
greater_result = x > y # Supérieur à
greater_equal_result = x >= y # Supérieur ou égal à
less_result = x < y # Inférieur à
less_equal_result = x <= y # Inférieur ou égal à
Manipulation des chaines de caractères
La concaténation en programmation consiste à combiner des chaînes de caractères (texte) ou des listes pour créer une nouvelle entité. En Python, nous utilisons principalement l’opérateur +
pour effectuer la concaténation.
# Exemple de concaténation de chaînes de caractères
prenom = "John"
nom = "Doe"
nom_complet = prenom + " " + nom
print(nom_complet)
Les structures de controle
Les structures de contrôle en programmation sont des mécanismes qui permettent de gérer le flux d’exécution du programme. En Python, les structures de contrôle principales sont les suivantes :
Conditionnelle (if-elif-else) : La structure conditionnelle permet d’exécuter un bloc de code sous certaines conditions.
if condition_1:
# Code exécuté si condition_1 est vraie
elif condition_2:
# Code exécuté si condition_2 est vraie (si condition_1 est fausse)
else:
# Code exécuté si aucune des conditions précédentes n'est vraie
Boucle for
: La boucle for
permet de parcourir des éléments d’une séquence (comme une liste, une chaîne de caractères, etc.) et d’exécuter un bloc de code pour chaque élément.
for variable in sequence:
# Code exécuté pour chaque élément de la séquence
Boucle while
: La boucle while
permet d’exécuter un bloc de code tant qu’une condition donnée est vraie.
while condition:
# Code exécuté tant que la condition est vraie
Instructions break
et continue
:
- L’instruction
break
permet de sortir d’une boucle prématurément. - L’instruction
continue
permet de passer à l’itération suivante dans une boucle.
for variable in sequence:
if condition:
break # Sort de la boucle
if autre_condition:
continue # Passe à l'itération suivante sans exécuter le reste du bloc
Les fonctions
Les fonctions peuvent prendre des paramètres (ici base) ou non. Une fonction qui n’a pas de return renvoie par défaut None.
def table(base):
n = 1
while n < 11:
print n*base,
n += 1
Les Classes
Les classes regroupent des fonctions.