0 évaluation 0% ont trouvé ce document utile (0 vote) 4 vues 11 pages Base Python
Le document présente une introduction au langage de programmation Python, créé en 1989, et ses caractéristiques principales telles que sa gratuité, son interprétation et son orientation objet. Il décrit également l'environnement de développement Thonny, des exemples de commandes Python, ainsi que des exercices pratiques pour apprendre à programmer en Python. Enfin, il aborde la structure des scripts Python et les types de données, tout en proposant des exercices pour renforcer la compréhension des concepts.
Titre et description améliorés par l'IA
Copyright
© All Rights Reserved
Formats disponibles
Téléchargez aux formats PDF ou lisez en ligne sur Scribd
Go to previous items Go to next items
ot
Numérique et Sciences informatiques
Les bases de Python |
ACTIVITES DE PROGRAMMATION
1 Introduction
Le langage de programmation Python 2 été cr&é en 1989 par Guido van Rossum, aux Pays-Bas.
Lenom Python vient d'un hommage & la série télévisée Monty Python's Flying Circus dont G. van Rossum est fan.
La premiére version publique de ce langage a été publiée en 1981.
La derniére version de Python est a version 3, plus précisémentla version uia été publiée endacewbe (voir [Link]).
=\o-t 2024
La Python Software Foundation est association qu organise le développement de Python et anime la communauté de développeurs
et dutiisateurs.
Ce langage de programmation présente de nombreuses caractérstiques Intéressantes
‘© \Lestifiutiplatetorme: c'est-3-dire qu'llfonctionne sur de nombreux systémes é'exploitation : Windows, Mac OS X, Linux,
Android, iOS, depuis les mini-ordinateurs Raspberry Pl Jusqu’aux supercalculateurs.
!Vestgratuit: Vous pouver installer sur autant d'ordinateurs que vous voulez (méme sur votre téléphone I)
lest un langage dethautiniveau. II demande relativement peu de connaissance sur le fonctionnement d'un ordinateur pour
tre utilisé
‘+ Cest un langage-interprété: Un script Python n'a pas besoin d'étre compilé pour tre exécuté, contrairement & des langages
comme le Cou le C++.
* - llestorientéobjet. Cest-3cire quill est possible de concevoir en Python des entités avec un certain nombre de ragles de
fonetionnement et dinteractions.
© ILest elativementsimpie & prendre en main.
Toutes ces caractéristiques font que Python est désormais enseigné dans de nombreuses formations, depuis 'enseignement
secondaire jusqu'a lenseignement supérieur.
2. Distribution Thonny
Thonny est un environnement de développement intégré pour Python congu pour les débutants. II comporte un éciteur de
programmes, des modules et d'autres utilitaires.
ensemble permet d’écrre, de tester et de mettre au point les programmes écrts en langage Python,
nowy cosmo :
£
t
© La fenétre qui porte le nom de Shell est la console dans laquelle on peut saisir directement des commandes et obtenirle
résultat de l'nterprétation de ces commandes
Les trois signes >>> représentent'invice de commande, cest donc la que on saisi
es commandes que l'on souhalte exéeuter.
© Lafenétre qui porte 1e nom de Variables permet de visuaiser la valeur affectée aux variables utilisées.
© Cotte fenétre permet de saisr plusieurs commandes successives, 'est-A-dire un seript que 'on exéeutera en une fois
~PaseLUn shell est un interpréteur de commandes permettant d'interagir avec ordinateur. On utilsera le shell pour exécuter un script trés
‘court en Python. Un shell posséde toujours une invite de commande, clest&-cire un « symbole » qui saffiche avant I'endroit ot on
centre des commandes. Ic), cette invite est représentée par le symbole >>>
Par exemple, sion vous demande de lancer instruction suivante; >>> print("Bonjour") [SSS
|i faucra taper seulement print( Bonjour") sans le >>> ni 'espace apres le >>>,
puis actionner la touche « Entrée » pour valider la commande et 'exécuter.
>>> print(“Bonjour")
Bonjour
ou »|
1a eo i i osc ti sri
Dans la console, saisir les commandes cl-lessous, indiquer le résultat obtenu, conclure sur I'opération effectuée
Commande sir Résultat obtenu Opérationréalsée
me 35 allitian a
23> 7-4 | 3 seuckertiaan -
> 34 Vb mu thy Geodtian
3o> 23/3 67,7 aivisnen /
aes Ww dlunsven Ose res
>» BiB 20 Reste oe fa chvision />
>> 284 | Gaposalt ou puosemea TF
>>> 743%4. 1% mulligeater proritare suc [Link] eo
oa Yo |mlhplicalien prontarre sur additun uation de ()
D>» abs(-3.2) 3.) Valour absolve abs ()
3» Fomnd(3. 44) 5 artond & Pender inféneur sn parke cs meh (05
>>> reund(3.54) 4 wtonclt & Femtier supérieur s+ pale décimale ¥ = 0-45
>> round(3.57,1) oe: lartonch clunombre x. avec n dévimate (>)
>>> round(23/3,5) 47 lasioock che nombre x avee n décamele (s)
y>> 1080°2.26-3 412 |Corespond & Peciiture cu nombre Xs lo 7”
>>> pow(2,20) 1024 |eouresprd & Pécnture clenombe x" (comme Xf")
Les lignes ci-dessous uilsent des variables a et bauaquelles on affecte une valgur qu reste en mémoire
nee NS) _| Aeration tune voabe
ri % Taloiabraren = 50st Yetantles |p mémeer e
b> #245 4o les vabus damée add roat tousurs en nem
22 ai brates es?) (7255 | affectation simuitande de deux variables
o> print(ra + b = “,arb) pet 1'75° [Rest lotvon dau la censsk d'un texte ef d'une vesfeur
PAGE? -Lorsque l'on doit écrire plusieurs commandes successives, un programme par exemple, on 2 recours a I'éditeur qui permet en outre
de sauvegarder ensemble de la sais.
Créer un nouveau fichier «Fichier» «Nouveau » pus @Fichier» ——_« Enregistrer »
Le nommer [Link] en le sauvegardant dans un dossier h:\NSI\Python que vous aurez créé préalablement.
SaisirFintégralité du programme proposé ci-dessous. Les commentaires ne sont pas en option !!!
® membre = Setting "Entrez on robre enter conoris entre et 188 = “))
prive(-te nosore’yrantre,"est pele“)
1 PS espe te rasere*snmace, “est sie)
instruction if impose un bloc dindentation =a ligne d'instruction qui suit est décalée. ier
I peut y avoir plusieurs indentations, ce qui permet de structurer le programme. dai
Le schéma ci-contre en résume le principe. i ei
Tester et valider le fonctionnement de votre programme avec plusieurs valeurs numériques. ie)
Que se passe-til sil’on saisit du texte ?
input()
Demander une valeur & l'utilisateur et V’affecter 3 une variable a :
‘Toute entrée donnée avec instruction input est une chaine de caractéres
Sion veut que 2 contienne un nombre entier, on utilise
nput ("texte") of “texte est faculatit
= int(input(
rexte"))
Sion veut que 2 contienne un nombre rée!(flottant), on utilise a = float(input("texte"))
Sion veut que @ contienne un nombre sans préciser le type, on utilise a = eval(input(“texte"))
if .. else
if condition:
Instruction2 si condition vérifée (une instruction par ligne)
Instruction? si condition vérifiée
else:
Instruction3 si condition non vérifiée (une instruction par ligne)
ir as oublier les «la fin ds lignes if et ote
indentation est obligatoire, le retour au bord indique a sortie dui ou duelse
| Test digalité 2
\ Testdenon égalité: al
| ests de comparalon: ach aceS aS a
Pusieurs conditions possibies avec les opérateurs booléensor ou) et and et): 25. and ac10
Ecrre un programme [Link] qui vous demande votre prénom et votre ge puis qui vous affiche un message pour vous saluer et
‘vous indiquer s vous tes mineur ou majeur.
Ajouter ensuite une phrase qui vous indique depuis combien d’années vous &tes majeur cu combien d'années attendre avant de le
devenie
Page 3 -5 Ecriture de scripts cor Véditeur
1 faut prendre de bonnes habitudes de structuration des scripts ds le départ: avec Python, nous allons créer des fonctions qul
‘ermettent 'exécution d'une ou plusieurs tiches. es fonctions sont définies au début du fichier py et on les appellera& partir d'un
programme principal (main) qul sera défini plus bas dans le fichier.
La structure d’un programme complet ressemblera & quelque chose comme ¢a =
emetesesstor
2 from bibliotheque import *
© def fonction4():
5 **" Docunentation sur 1a fonction 1°"
> return
®
© def fonction2(argument1,argument2):
8 “** Documentation sur Ja fonction 2 """
na
mt
53 return variable
”
26 def main():
47 **" Documentation sur Ia fonction main “*"
i
38 fonctiona()
= .
2 T= Fonction2(x,¥)
23
me ’ _
25 Af _name_.
26 “wain()
Explications sur la fonction main :
Vastuce consiste 8 utiliser la variable __name__ qui est une variable automatiquement créée par Python, toujours disponible,
rfimporte cil, dans tous les scripts. Cette variable contient le nom du script courant. Ainsl, Cans n’importe quel code, on peut vérifier
on est. C’est utile lorsque l'on importe d/autres scripts dans le script que l'on écrit (comme 8 la ligne 2)
Sile script est le script principal, alors_name__ne contient pas le nom du scrip, il contient la chaine_main__
Les lignes 25 et 26 disent : Si ce cade est exécuté en tant que script principal, appelé directement avec Python et pas importé, alors
cexécuter cette fonction main.
Exercice 2
Ecrice, en respectant la structure présentée ci-dessus un programme [Link] qui vous demande deux nombres puis qut vous
affiche un message pour vous indiquer lequel est le plus grand des deux.
eo
Veuillez saisir un premier nombre SVP : 12.4568 |
Veuillez salais sn Second noehee QVE_: 75.1286
Le plas grana acsbre saist est 15.1256
(On utilisera une fonction plus_srand{nombre1,nombre2) qui sera appelée dans la fonction main
ase 4 -6 Les types jables
‘Avec Python, le programmeur ne déclare pas le type des variables & utiliser. La déclaration peut se faire Implicitement lorsque l'on
affecte une valeur la variable, Les quatre types de base sont les suivants,
* bool booléen (True ou False)
© int nombre entier
= float nombre réel ou flottant
© str chaine de caractars (string)
Siun traitement nécessite un changement de type, Python peut Ieffecuer dans certaines mesures (parfois, une erreur se produit)
{tout moment, on peut abtenir le type d'une variable var en salsissant dans la console type(var)
Saisir dans la console les commandes suivantes,consigner le résultat obtenu et conclure.
>>> type(b)
>>> bsint(b)
>>> b
>>> type(b)
hc lass
(es TE
Commande @ salsir Résultat obtenu Explication ou conelusion
eons << das ‘int’ > La variable a est un entier
>>> be3.14 5 Peak 5 HILT
ol (lass *feP OL Samah b okun fleHant (reef)
35> c=(acb) es \ bool
arc (elas ce et un booleen
>>> type(c)
>>> c=(a>b) False "y ble d I d4
> € class ool er dears possibles cl uit Heoteens Son! Jat
Se ates (class ley ceux vadeus Fessible Jj tebe
>>> d="bonjour™ Clas At 7
>>> type(d) boon yey
doo dele | ban eee bavaar”
>» d
am (dass AF
>>> type (a! ‘ 4
>>> asae.d ( (qaat'y
>>> type(a) iets
>>> be3.14
m1,
>>> a=3
>>> type(a)
>>> a=float(a)
>>> a
>>> type(a)
>>> d=6.35,
>>> type(d)
>>> s="Valeur de d = “+repr(d)
s
| >>> type(s)
> s="1628"
>>> type(s)
>>> asint(s)
|ooa
>>> type(a)
Gelass.‘flest ?
>>> @=3
>>> bed
>>> c=(ae=b)
>>> €
>>> type(e)
>>> beb-1
>>> ca(aneb)
>>> €
>>> cact2
39> type(c)
[ue
(dass
at
oh
Q=2b La compivaison se ate aver
chu signes (42 77
THRE, be > lan seul signe cox ve acl a ofc
tun call
Pace 5Exercice 3
Ecrire dans éditeur un script Caleuls py de six ligne:
1. quiaffecte un nombre 8 une variable x -
2. qui ajoute 7 au triple du nombre donné
3. qui multiplie le résuttat par le nombre donné
4, qui soustrait au résultat le nomiore donné
5. quiaffiche le résultat obtenu
(class
6. quiaffiche le type du résultat obtenu
Conseils: Créer le minimum de variables. Tester avec un nombre enti, puis avec un nombre réel
wee “y x
y
Caleuler y= ffx) pour que I"équation tienne sur une seule ligne
Ajouter la suite de votre script, dans le main, la ligne c-contre
et une seconde ligne qui affiche la valeur de 2.
Exécuter le script pour x=5.2, que constatez-vous ?
1# fonction obtenue pour y
Exercice 4 :
Ecrire dans éditeur un script [Link] qui vous demande & quelle altitude h vous 6tes (en métres) puls qui calcule et affiche dans
tune phrase Vintensité de la pesanteur g avec son unité.
Gx mrerre
Crarre th)?
4 (G esta constante universelle de gravitation)
‘ee
On rappelle que g =
G=6.674x10 USI rae =
50x 10" kg
Quelle est Laitituce, en mitres, 4 laquelle vous vous trouver 7 67
En valeur de g 4 lvaltivude de 67 matres est 5.044 m/s"?
Conseil : pour obtenir un format d’affichage lisible de la valeur de g, vous utliserer la commande adéquate,
def maint)
Calcul de la pesanteur en fonction de Faltitude "
altitude =
Terre
PAGE 6 -Exercice 5
Ecrire dans éciteur un script [Link]
‘© quivous demande la base d'origine du nombre & convertir (2 ou 16)
‘+ quivous demande un nombre binaire ou hexadécimal 8 convertir
© quieffectue ia conversion en base 10 de ce nombre
Vous écrirez deux fonctions TwoTaTen(nombreBincire) et HexToTen(nombreHexadecimal)
‘Vous appellerez une ou l'autre selon le choix fat par utilisateur
‘Avant d’écrire le script, essayer dans la console les commands proposées ci-dessous :
>>> int(“zeieeaee", base=2)
)
>>> int("Fe", bas
Lastructure du script est donnée ci-dessous, complétez les sixlignes manquantes. Saisirle script et vader le fonctionnement.
def TwoToTen(nombreBinaire):
convertit la chatne nombreBingire en un nombre en base 18 *"
return nombreDecimal
def HexToTen(nombreHexadecimal):
""" convertit La chaine nombreHexadecimal en un nombre en base 18 "*"
return nonbreDecimal
def main(
"*" Benande La base d'origine du nonbre @ convertir (2 ou 16)
Demande Le nombre binaire ou hexadécimal a convertir
Effectue La conversion en base 19 du nombre saist """
maBase = _ _
nombre =
if maBase
resultat=TwoToTen( nombre) # appel. de La fonction de conversion
resultat=HexToTen(nonbre) # appel de La fonctton de conversion
els!
print("Tu dois choisin uniquement la base 2 ou la base 16 |")
if _name_=='__main_':
main()
Question : Aurions-nous pu simplifier le script en utilisant une seule fonction de conversion ?7 Opérations sur les chaines de caractéres
Les types bool, int et float sont des types simples. Le type strest un type simple particulier, chaque caractére de la chaine a un indice
propre qui permet d’accéder directement & sa valeur (voir exemples ci-dessous).
‘Avec Python, le programmeur déciare une chaine de caractéres entre guillemets ou entre deux apostroghes.
Python est sensible & la casse, il distingue les minuscules et les majuscules.
‘Commande & saisir Résultat obtenu
Explication ou conclusion
>>> prenom="sean™ .
>>> prenon | Seon
Affectation d'une variable de type chaine
>>> hom = "Dupont™ |
2a es [© Dupant |_| Affecation tune variable de type caine
>>> prenontnom “Sean Dupent' | +Canutenahen de chaines de caaclire
>>> print(prenon,non) Sean Dupont — [le gant que un enpuce entre chaque variable|
>>> print (prenom+nom) DeanDopet ff riya pas d ‘xpee $1 0n ceoncaléie hue
Heednes
ob se trouve l’université 7" [trove
>>> phrase
>>> prine(orenane’ “+008) [Samm Dopast |Dn dal ayer [expace
>>> Ten(non) )/ov< 0 € tent fonsueue de fk chine ok cacucléra (bry)
De ophrase="Banjour, Sopot, a oe
2} Affectation d'une variable de type chaine
neltedle
>>> phrase[@] ae = Homer carcclere ch a Ghaine
sreenieeate ‘o° H = Dowriime caactive cle la hire
>>> phrase[3:7] "Your ! tn n= che mn carcechere (ni) csrabive
eee 2 =A Dernier cuculie ch & dhtine
>>> phnase[ -12:] vaivestér” — [Dewae chemer caraclor oh fh thai
prea a i sates Cumvohs Caine ple oh Sm D prrnvies canactiles
o> dates Aujourd\ "hal 7 °
>>> date Nuyoar cd “hut \\_ estle caractére d’échappement
spine honenyy | Dupont slower esa méthode gu ae tous scarce de
aad peacti DUPONT *
Supper() est la méthode qui place tous les caractéres de Ie
chaines en
>>> [Link](12,
Dap?
scenter(ncar) est la méthode qui permet de
>>> phrase=' Bonjour,
oli se trouve Ouagadougou ?*
Bonen, ut se teseve
‘Affectation d'une variable de type chaine
>>> [Link]('o",'i") | tiuve
boo. phrase Ouaacaugen
>>> [Link](‘ou") 4 ‘[Link](sub) est la méthode qui permet de_
UBijior yh se
Overy?
[Link](old,new) est la méthode qui permet de
PAGES8 Structures itératives : les boucles
Lorsque fon doit répéter un traitement plusieurs fois, on a recours & une structure algorithmique appelée « boucle »
8.1 LES BOUCLES CONDITIONNELLES
La structure est while condition :
instruction1
instruction2
La condition est une expression dont la valeur interprétée est True ou False
Tant que la condition est vérifiée (True), les instructions sont exécutées. Au moins 'une de ces instructions modifie une variable qui
va amener la condition a ne plus étre vérifiée (False) aprés un nombre d'itérations sinon on ne sort plus de la boucle.
Exercice 6
Saisicet compiéter le script [Link] donné ci-dessous, on veut obtenit, aprés saisi de deux entiers Iaffichage sulvant :
Neuliles saisir on Secons nossee” sv? = 10
H2 Elas peel soauee cadet oot
def plus_grand(nombre1, nonbre2):
Gétermine quel est le plus grand nombre et 1'affecte a 1a variable
détermine quel est le plus petit nombre et 1'affecte 3 1a variable min"
if nombret > nonbre2:
maxi =
mini =
else:
maxi =
return maxi,mini
def main(’
* Demande de saisir deux nonbres entiers
Affiche le plus grand et le plus petit
Affiche le nombre de fois que l'un contient l'autre et le reste’
q=@ # initialisation du quotient
x = int(input( # demande un premier entier
y = int(input( # demande un second entier
a,b = plus_grand( # appel de la fonction
print(" # affiche le plus grand des deux nombres
print(” # affiche le plus petit des deux nombres saisis
ainitial = ®
Sauvogarde 2 avant les traitements
sia est plus grand que b ou égal 8b
on retranche ba a
incrémente le quotient de 1
# affiche les résultats
“PAGES -8.2 LES BOUCLES NON CONDITIONNELLES
Une boucle non conditionnelle permet de répéter un nombre de fois connu un bloc instructions.
La structure est “for i in range(n)
instruction
instruction2
La variable i est créée, elle va prendre successivement les valeurs 0, 1, 2,3, .., m1
Les instructions serant donc exécutées n fois,
Exercice : Tester avec la console cu avec un petit script les instructions sulvantes, consigner les résultats obtenus :
instruction Séquence des nombres obtenus
range(5) 01234
range(3,8) > 456 F
range(2,12,3) 4.5 45
range(20,5,-5) qo-1S- 1O7
La syntaxe compte est range(d, #,p) quirenvoie la séquence des entiers ded inclu &f exclu avec un pas égal&p
Avec def et p>O oubien d>f et p<0
par défaut d=0 et
. >o> for Lettre an “Bonjour: *
Remarque : La boucle for peut éte utilise avec une liste ou une chaine de caractéres. rint(25'* Lettre)
Tester le script suivant >>> for lettre in "Bonjour": svsnoonanaosssnssszsunes
print(25 * lettre)
Exercice 7
Ecrire dans Véditeur un script [Link]
2 puissance 0 = 1
2 puissance 1 = 2
+ quipermet 'afcher la valeur des puissances de 2 de 2°82" 2 puissance 2 = 4
“Yous présenterer is résultats sous la forme présentée c-contre E eee Ot
f 2 puissance 5 = 32
Joe in ange, A 2 puissance 6 = 64
2 puissance 7 = 128
2 puissance 3 ~ 25¢
Python supporte le formatage de valeurs en chines de caractbres, usage le plus simple consiste & insérer des valeurs dans des
chaines & aide de marques %s. Modifier votre programme pour utiliser la ligne print() proposée ci-dessous =
etn he tO BEY Ben ce
puissance 11
-print ("2 puissance Xs = Xs" %(n,puissance)) ..
Pour aller plus loin: Utliser la fonction len() pour formater V'afichage des valeurs et ies [7
aligner verticalement comme présenté ci-contre : 2
2 puissarce 16
ance 1
2 puissance 20 = 164857
Vous devrez insérer un nombre d’espaces ié la longueur des nombres n et 2°
page 10 -for n in range(2a)
puissance = 2*n
JongueurExposant = len(str(n))
espacel = (2-longueuréxposant)*”
Jongueurkesultat = len(str(puissance))
espace2 = (7-longueurResultat)*” "
print ("2 puissancess %s =s %s" X(espacet,n, espace2, puissance))
2 puissance 0 = 1
2 puissance 1 = 2
2 puissance a
2 puissance 8
2 puissance 16
2 puissance 2
2 puissance 64
2 puissance 128
2 puissance 256
2 puissance 312
2 puissance 3024
2 puissance 2088
2 puissance 4996
2 puissance 13 = 8192
2 puissance 14 = 16384
2 puissance 15 = 32768
2 puissance 16 = 65536
2 puissance 17 = 131072
2 puissance 18 = 262148
2 puissance 19 = 524288
2 puissance 20 = 1048576
>>>
Pace Ll -
Vous aimerez peut-être aussi