Vous êtes sur la page 1sur 28

PI11 - INITIATION A LA

PROGRAMMATION
(PYTHON)

CM1 - Notions de base


Semestre 1

Eric Desblache
CM1 - Notions de base
Sommaire
I.Présentation
I.1.Généralités
I.2. Les versions de Python
I.3. Télécharger et Installer Python
II. Utiliser Python
II.1. Les différents moyens
II.2. La console python
II.3. L’environnement de développement
III. Les opérations élémentaires
IV. Les types de données
IV.1. Les entiers IV.2. Les booléens
IV.3. Les flottants IV.4. Les chaînes de caractères
IV.5. Le transtypage dynamique
V. L’affectation
V. Les Entrées-Sorties
Application : premier programme
I. Présentation
I.1.Généralités

1991
Langage de programmation :
● interprété
● impératif
● orienté objet

Guido Van Rossum (1956)


Dictateur bienveillant à vie
Navigateur Grail (=>1999)
Google (2005-2012),
Dropbox(2012-2019)
Microsoft (2020- )
I.2. Les versions de Python

Python 2.7.x :
● 2010 - 2015
● arrêt 2020 (2.7.18)
● pas de compatibilité ascendante (print, input, / , …)

Python 3.x.x :
● 3.6.x 2016 - 2021
● 3.8.x 2019-2024
● compatibilité ascendante avec les autres versions
● pas de compatibilité descendante avec python 2.7.x
I.3. Télécharger et Installer Python

La Python Software Foundation :


● le site de python.org
https://www.python.org/downloads/
○ Linux/Unix
○ Mac OS X
○ Windows
○ IOS,...
● le Google Playstore, les sites Apk4k, Apkpure,
Apkmonkey,...
○ Android (Qpython, Pydroid 3, Termux, Pyonic
python 3 interpreter,...)
II. Utiliser Python
II.1. Les différents moyens
Accès à un Interprète :
● en ligne https://replit.com/
multiplateforme, gratuit, inscription obligatoire
(sauvegarde), données personnelles ?
● via un terminal Linux :
● via un Environnement de Développement Intégré
(EDI ou IDE) :
○ IDLE (Monty Python ?): Guido Van Rossum,
coloration syntaxique, auto-complétion,
indentation automatique, Tkinter
○ Pyzo : Pyzo Team (Pays Bas)
○ Spyder : Pierre Raibaut, NumPy, SciPy,
Matplotlib
○ Sublime Text, Pycharm, Atom, ...
II.2. La console python

Le terminal et l’interprète :
● résultat immédiat
● pas de persistance
● pour les tests et codes courts

>>> 1*2
2
>>> (1+2-4)/3
-0.3333333333333333
>>> 0.1+0.2
0.30000000000000004
II.3. L’IDE (Spyder)
Fonctionalités :
● créer, ouvrir, enregistrer un fichier python
(extension .py, .pyc)
● coder (coloration syntaxique, indentation,
numérotation des lignes)
● exécuter le code (interprète)
● débugger le code (repères, aide syntaxique,
explorateur de variables)
● mode console (tests, sortie par défaut)
● importer des bibliothèques (fonctions étendues)
III. Les opérations élémentaires

● addition, soustraction, division, division entière,


modulo (reste) : + - / // %
● puissance : **
racine carrée **(1/2), puissance négative autorisée
● rappel de la dernière valeur calculée : _

Attention aux règles de priorités dans les calculs !


Attention au codage des réels (pour les tests)
IV. Les types de données
IV.1. Les entiers
● nombre entiers relatifs (positifs ou négatifs)
● type “int”
● codés sur 32 bits soit 4 octets
● utilisés pour les compteurs
● utilisés pour référencer les positions dans une liste
● utilisés pour référencer les positions dans une
chaîne de caractères
● se codent sans approximation par une somme de
puissances de deux
● s’obtiennent en base 10 comme résultat de la
fonction int()
IV. Les types de données
IV.2. Les booléens

● 1854, algèbre de Boole


● type “bool”, sous-type des entiers
● True ou 1
● False ou 0
● s’inverse à l’aide de l’opérateur not
● opérateurs de comparaison ==, <, >, <=, >=, !=
Attention à la gestion des priorités (parenthèses)
IV.3. Les flottants

● nombre réels
● type “float”
● notation décimale ou exponentielle
● précision limitée (codage des réels)
● séparateur décimal “.”
● mantisse “e” ou “E” (!!! pas d’espace)

>>> 1e8
100000000.0
>>> 1E8
100000000.0
IV.4. Les chaînes de caractères

● caractère (lettre)
● codage UTF-8 (1 à 4 octets)
● !!! caractères spéciaux (\n,...)
● identificateur “”” “”” ou “ “ ou ‘ ‘
● nombre de caractères ( fonction len() )
● concaténation (+)
● répétition (*)

>>> len("Informatique")
12
IV.5. Le transtypage dynamique

● changement de nature de la donnée (entier, réel,


chaîne de caractères,...)
● conversion de données
● !!! implicite
● vérification( fonction (type() )

>>> a=1
>>> b=2
>>> c=a/b
>>> type(c)
<class 'float'>
V. L’affectation

● signe “=” simple


● donnee ⇔ adresse mémoire
● table de référence
● identifiant interne ( fonction id() )
● valeurs prédéfinies (caractères standards, premiers
nombres entiers

>>> a=1 >>> a=”1”


>>> id(1) >>> id("1")
9752160 140070962978928
>>> id(a) >>> id(a)
9752160 140070962978928
Attention, python ne conserve pas forcément l’adresse
mémoire d’une variable lors d’une affectation !
on peut utiliser la fonction dis() de la bibliothèque dis
pour visualiser à bas niveau les tâches effectuées par
le processeur lors d’une affectation
V. Les Entrées-Sorties

● l’entrée standard :
○ clavier
○ invite de commande
○ fonction input()
● la sortie standard :
○ console
○ fonction print()

>>> ch=input("Quel est ton prénom ? ")


Quel est ton prénom ? Eric
>>> print("Bonjour "+ch)
Bonjour Eric
là aussi on peut utiliser la fonction dis() pour
visualiser à bas niveau les tâches effectuées
Premier programme

Problématique :
Créer un programme permettant d’afficher le jour Julien
(CNES), c’est à dire le nombre de jours écoulés depuis le
1er Janvier 1950 jusqu’à la date saisie par l’utilisateur

● connaître la gestion du temps sous python


● choisir la bibliothèque à utiliser
● créer l’algorithme du programme
○ fixer l’origine des temps
○ saisir la date choisie
○ calculer la durée
○ formater la sortie
La gestion du temps sous python :
● dépend du système d’exploitation
● dépend de la bibliothèque utilisée

Choix :
● Linux
● bibliothèque datetime

Fixer l’origine des temps :


● CNES : 1er janvier 1950
● fonction date()
● affecter une date au format datetime à la variable
date0
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Tue Sep 8 11:16:12 2020
@author: eric
"""

from datetime import date

# affectation de l’origine des dates


date0=date(1950,1,1)
Saisir la date choisie :
● fonctions input()
● transtypage à l’aide de la fonction int() (chaîne de
caractères par défaut)
● affecter l’année, le mois et le jour

# saisie et affectation de l’année


annee=int(input(“Entrez l’année : ”))

# saisie et affectation du mois


mois=int(input(“Entrez le mois (1...12) : ”))

# saisie et affectation du jour


jour=int(input(“Entrez le jour (1...31) : ”))
Calculer la durée :
● affecter une date au format datetime à la date saisie
● soustraire deux “objets” dates
● extraire le nombre de jour écoulés d’une date au format
datetime à l’aide de la méthode days

# affecter une date système à la date saisie


date1=date(annee,mois,jour)

# calculer la durée écoulée


duree=date1-date0

# extraction du nombre de jours écoulés


JJ=duree.days
Formater la sortie : Méthode 1
● construire le message à afficher
● utiliser la fonction print()

# formater la sortie
message="Le Jour Julien (CNES) correspondant au
"+str(jour)+"/"+str(mois)+"/"+str(annee)+" est "+str(JJ)

# afficher le message
print(message)
Formater la sortie : Méthode 2
● créer un champ par donnée à afficher dans la fonction
print()
● séparer ces champs par une virgule

# appel de la fonction print


print(“Le Jour Julien (CNES) correspondant au”, jour, "/",
mois, ”/", annee, "est ", JJ)

Vous aimerez peut-être aussi