{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
On présente ici les bases du langage Python : calculs, variables, affichage, saisie, type de données.\n", "Les fonctionnalités un peu plus avancées telles que les instructions conditionnelles, les boucles, les fonctions ou les listes seront étudiées dans les chapitres suivants.
\n", "Le langage Python a été créé par le néerlandais Guido van Rossum en 1991.
\n",
" Il existe de nombreux langages de programmation (voir ce site qui indique la popularité des langages au cours du temps). Parmi les avantages du langage Python, on peut citer :
Si le langage Python n'avait que des avantages, les autres langages concurrents auraient disparu. Le principal défaut de Python est sa relative lenteur par rapport à d'autres langages comme C/C++ ou Java. La vérification des types peut aussi poser quelques problèmes au niveau de la fiabilité des programmes (pas de compilation préalable donc détection de certaines erreurs au moment de l'exécution seulement) et de la maintenance. Enfin ce langage est peu adapté à la programmation sur smartphone.
int, abréviation de \"integer\") et les flottants (float, abréviation de \"floating number\" qui signifie \"nombre à virgule flottante\")."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"La fonction type() indique le type du nombre qu'on lui donne en paramètre :"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"trusted": false
},
"outputs": [
{
"data": {
"text/plain": [
"int"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"type(5)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"trusted": false
},
"outputs": [
{
"data": {
"text/plain": [
"float"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"type(5.0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**La division**"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Il existe deux types de division en Python : la division entière avec l'opérateur // et la division flottante avec l'opérateur / .Les fonctions concernant les nombres aléatoires ne font pas partie des fonctions de base du langage Python. Pour pouvoir les utiliser, on doit commencer par donner l'accès à une bibliothèque de fonctions appelée random (\"random\" signifie \"aléatoire\") au moyen de l'instruction import random.
random d'un seul coup, ce qui permet d'éviter d'écrire le préfixe random. lorsqu'on utilise une de ces fonctions :"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"trusted": false
},
"outputs": [
{
"data": {
"text/plain": [
"3"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from random import *\n",
"randint(2,9)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"random() renvoie une nombre aléatoire compris entre 0 et 1, de type float :"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"trusted": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.5798081527413247"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"random() # nombre aléatoire compris entre 0 et 1 "
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"trusted": false
},
"outputs": [
{
"data": {
"text/plain": [
"6.615012619849558"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"random() * 8 # nombre aléatoire compris entre 0 et 8 (de type float)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"a = a + 1, on peut écrire de façon plus courte : a += 1.+ , - , *, / , // et %."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"La fonction print() permet d'afficher une chaîne de caractères (\"string\" en anglais).\n",
"La chaîne de caractère que l'on souhaite afficher doit être écrite entre guillemets (simples ' double \" ou triples '''). Sans guillemets, c'est le contenu de la variable dont le nom est transmis en paramètre qui sera affiché.
print(). Par défaut, un espace sera inséré entre chaque chaîne :"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"trusted": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Vous avez 32 ans.\n"
]
}
],
"source": [
"age = 32\n",
"print(\"Vous avez\",age,\"ans.\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Plutôt qu'un espace, on peut insérer :\n",
"* un autre caractère (par exemple un point-virgule)\n",
"* plusieurs caractères (par exemple \" et \")\n",
"* aucun caractère (les chaînes seront \"collées\")\n",
"* un saut de ligne (que l'on écrit \"\\n\", et qui signifie \"new line\")"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"trusted": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Victor;Léa;Ninon\n",
"Victor et Léa et Ninon\n",
"VictorLéaNinon\n",
"Victor\n",
"Léa\n",
"Ninon\n"
]
}
],
"source": [
"print(\"Victor\",\"Léa\",\"Ninon\",sep=\";\") # le séparateur sera le caractère point-virgule (;)\n",
"print(\"Victor\",\"Léa\",\"Ninon\",sep=\" et \")\n",
"print(\"Victor\",\"Léa\",\"Ninon\",sep=\"\") # aucun sépérateur, pas même un espace\n",
"print(\"Victor\",\"Léa\",\"Ninon\",sep=\"\\n\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"print, on peut l'indiquer au moyen du paramètre end=\"\" :"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"trusted": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Victor\n",
"Léa\n",
"Ninon\n",
"VictorLéaNinon\n"
]
}
],
"source": [
"print(\"Victor\")\n",
"print(\"Léa\")\n",
"print(\"Ninon\")\n",
"print(\"Victor\",end=\"\")\n",
"print(\"Léa\",end=\"\")\n",
"print(\"Ninon\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"On peut **concaténer** (fusionner) plusieurs chaînes de caractère au moyen de l'opérateur + :"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"trusted": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Bonjour Madame\n",
"Bonjour Madame!\n"
]
}
],
"source": [
"message1 = \"Bonjour \"\n",
"message2 = \"Madame\"\n",
"message3 = message1 + message2\n",
"print(message3)\n",
"message3 += \"!\" # la syntaxe abrégée fonctionne aussi pour la concaténation de chaînes de caractères\n",
"print(message3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"On ne peut pas concaténer une chaîne de caractères avec une valeur numérique directement. Il faut au préalable transformer la valeur numérique en chaîne de caractères au moyen de la fonction str() :"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"trusted": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"J'ai 25 ans.\n"
]
}
],
"source": [
"âge = 25\n",
"début = \"J'ai \"\n",
"fin = \" ans.\"\n",
"phrase = début + str(âge) + fin\n",
"print(phrase)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"input(). La valeur renvoyée par la fonction input() est du type **chaîne de caractères** (string). On peut ajouter en paramètre facultatif un message qui donne des précisions sur la valeur attendue :"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"trusted": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"37\n",
"2\n"
]
}
],
"source": [
"a = input()\n",
"b = input(\"Entrez votre âge : \")\n",
"print(a)\n",
"print(b)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Si on souhaite utiliser la valeur saisie pour effectuer des calculs, on doit d'abord convertir cette chaîne en **entier** avec la fonction int() ou en **flottant** avec la fonction float() :"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"trusted": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dans 5 ans, vous aurez 23 ans\n"
]
}
],
"source": [
"réponse = input(\"Veuillez entrer votre âge :\")\n",
"âge = int(réponse)\n",
"âge += 5\n",
"print(\"Dans 5 ans, vous aurez\",âge,\"ans\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* / // % ** (exemple : 2**3 pour \"2 au cube\")\n",
"\n",
"a = a + 1a += 1\"bon\" + \"jour\" donne \"bonjour\"\n",
"\n",
"print()sep (séparateur) et end (fin).print(\"a\",\"b\",\"cd\",sep=\"-\",end=\"@\") donne\n",
" a-b-cd@\n",
" \n",
"réponse = input(\"Saisissez une valeur : \")int(chaine) : transforme une chaîne de caractère en intfloat(chaine) : transforme une chaîne en floatstr(nombre) : transforme un nombre en chaîne de caractères\n",
" \n",
"randomrandint(a,b) : renvoie un nombre entier aléatoire entre a et b (inclus).