Python syntaxe élémentaire Marie Pierrot – Lycée général et technologique du Rempart Opérateurs mathématiques symbole effet exemple + addition 6+4 == 10 - soustraction 6-4 == 2 * multiplication 6*4 == 24 / division 6/4 == 1.5 ** élévation à la puissance 12**2 == 144 // division entière 6//4 == 1 % reste de la division entière 6%4 == 2 Opérateurs mathématiques + * / ** // % A vous de jouer ! addition soustraction multiplication division L'interpréteur de l'IDLE permet de se servir de python comme d'une calculatrice... Ouvrez l'IDLE et testez chacun de ces opérateurs. élévation à la puissance division entière reste de la division entière >>> (8-2.5*4)**2 4.0 >>> 45/8-3*12 -30.375 >>> ● ● Pour obtenir le résultat on appuie sur Les règles de priorité sont les mêmes que celles des Mathématiques : 1) parenthèses 2) multiplication et division 3) addition et soustraction Opérateurs mathématiques Comment expliquer ça ? >>> 58/3 19.333333333333332 >>> 58//3 19 >>> 58%3 1 >>> 25**1*3 75 >>> 25**(1*3) 15625 >>> 48/3 16.0 >>> 4*4 16 >>> 4*4.0 16.0 >>> 4//3**2 0 >>> 8%7-8//7 0 >>> 8%(7-8)//7 0 >>> 8%7**8//7 1 >>> 45/3,5 (15.0, 5) >>> 45/3.5 12.857142857142858 >>> -2 + 93 91 >>> 9.5 + 2 11.5 >>> 3.11 + 2.08 5.1899999999999995 Opérateurs de comparaison symbole < > <= >= == != X is Y X is not Y signification strictement inférieur >>> 5<=6 True strictement supérieur inférieur ou égal >>> 6==9 False supérieur ou égal >>> 6.0==6 True égal différent X et Y X et Y représentent le même ne représentent pas objet le même objet >>> type(6.0)==type(6) False Affectation de variables ' = ' est l'opérateur d'affectation Affectation simple >>> maVariable = 38 Affectation multiple >>> x = y = z = 3 Affectation parallèle >>> x , y = 1 , 0.5 Les noms de variables commencent généralement par une lettre minuscule et surtout ils ne doivent pas faire partie de la liste des mots réservés par le langage python.... Affectation de variables Les mots réservés par python : and , del , from , none , true , as , elif , global , nonlocal , try , assert , else , if , not , while , break , except , import , or , with , class , false , in , pass , yield , continue , finally , is , raise , def , for , lambda , return Une variable doit respecter quelques règles de syntaxe incontournables : ● ● ● Le nom de la variable ne peut être composé que de lettres, majuscules ou minuscules, de chiffres et du symbole souligné « _ » Le nom de la variable ne peut pas commencer par un chiffre. Le langage Python est sensible à la casse, ce qui signifie que des lettres majuscules et minuscules ne constituent pas la même variable Conventions des programmeurs : mon_age , monAge. Affectation de variables >>> monAge = 10 >>> print(monAge * 4) 40 >>> monAge+3 = 13 SyntaxError: can't assign to operator >>> monAge = monAge+3 >>> print(monAge) 13 >>> a=5 >>> b=-2 >>> c=7 >>> a+b+c 10 >>> a,b=b,a >>> print(a) -2 >>> print(b) 5 >>> x=3 >>> y=-4 >>> x=y >>> y=x >>> print(x,y) -4 -4 >>> r, pi, t = 4, 3.14, "périmètre : " >>> print (t, 2*pi*r) périmètre : 25.12 Types de données int float complex str bool list dict file function Nombre entier optimisé Nombre à virgule flottante Nombre complexe Chaîne de caractère Booléen (True, False) Liste de longueur variable dictionnaire Fichier fonction La fonction type(maVariable) permet de connaître le type d'une variable Types de données Sous Python il suffit d'assigner une valeur à un nom de variable pour que celle-ci soit automatiquement créée avec le type qui correspond le mieux à la valeur fournie : >>> a=15 >>> type(a) <class 'int'> # nombre entier >>> a=15.0 >>> type(a) <class 'float'> # nombre réel >>> a='15' >>> type(a) <class 'str'> # chaine de caractères Types de données Les ENTIERS → Le type INTEGER >>> a,b,c = 3,2,1 >>> while c<17 : # A vous d'essayer jusqu'à 28 ou 30... print(c," : ",type(b)," ; ",b) a,b,c = b, a*b, c+1 Pour des valeurs entières comprises entre : -2147483648 et + 2147483647, les données sont encodées sur un bloc de 4 octets (ou 32 bits). 1 : <class 'int'> ; 2 2 : <class 'int'> ; 6 3 : <class 'int'> ; 12 4 : <class 'int'> ; 72 5 : <class 'int'> ; 864 6 : <class 'int'> ; 62208 7 : <class 'int'> ; 53747712 8 : <class 'int'> ; 3343537668096 9 : <class 'int'> ; 179707499645975396352 10 : <class 'int'> ; 600858794305667322270155425185792 11 : <class 'int'> ; 107978831564966913814384922944738457859243070439030784 12 : <class 'int'> ; 64880030544660752790736837369104977695001034284228042891827649456186234582611607420928 13 : <class 'int'> ; 700566989011183200292376413995762169216245450579726979173836923132717548836212350644346734002689652046961030088325062490084374 2470237847552 14 : <class 'int'> ; 454528076456265799856362940482493512051682398707229461514016556556583986422276163358151238257824601969802061415367471160941735 505142279479530059170096950422693079038247634055829175296831946224503933501754776033004012758368256 15 : <class 'int'> ; 318427365944011000106567818452634974304444178854915195324932364763562084960825141613372157614498508540004400933871602414510379 428457156931528882381845765302177654153606518817219180677991673695040257468073976709887381877507938941261929015645442782729397 6600351421389529829761457294069326870531776761014180770945376422950382981730735281584751589821127786977204109312 16 : <class 'int'> ; 144734178133566760419873029143113996406179774284232434495706290081168960115277142830418810447628296300457203939855532986643988 107411489164838754787984312499784789298432773344653648365259443241392242908558814535219330404271497704808384043817755440652876 630550065370367676327961575346806129787065316267816963545132743255275593871525929793205628958911052972272286588583185421829952 911965106518423502075017154885655023629140602459402276434514497682774018376000799603699475147403512890467304541055775049369700 4242362490477459068162282052700352929034054135439001247770927194025224351878974799872 Lorsque les valeurs traitées sont des nombres entiers se situant au-delà de ces limites, leur encodage dans la mémoire de l'ordinateur devient plus complexe, ce qui nous apparaît uniquement par le temps de calcul qui s'en trouve augmenté... Ce qui compte beaucoup ! Types de données Les nombres REELS → Le type FLOAT >>> a,b,c = 3.,2.,1 >>> while c<17 : print(c," : ",type(b)," ; ",b) a,b,c = b, a*b, c+1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 : : : : : : : : : : : : : : : : <class 'float'> <class 'float'> <class 'float'> <class 'float'> <class 'float'> <class 'float'> <class 'float'> <class 'float'> <class 'float'> <class 'float'> <class 'float'> <class 'float'> <class 'float'> <class 'float'> <class 'float'> <class 'float'> ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 2.0 6.0 12.0 72.0 864.0 62208.0 53747712.0 3343537668096.0 1.797074996459754e+20 6.008587943056673e+32 1.079788315649669e+53 6.488003054466074e+85 7.005669890111831e+138 4.545280764562657e+224 inf inf Pour qu'une donnée numérique soit considérée par Python comme étant du type float, il suffit qu'elle contienne dans sa formulation un élément tel qu'un point décimal ou un exposant de 10. Par exemple, les données : 3.14 10. 1e100 .001 3.14e-10 sont interprétées par Python comme étant du type float . Les nombres trop grands sont tout simplement notés « inf » (pour « infini »). Le type float utilisé dans notre exemple permet de manipuler des nombres (positifs ou négatifs) compris entre 10-308 et 10308. Ces nombres sont encodés sur 8 octets (64 bits) dans la mémoire de la machine Types de données Les chaines de caractères → le type STRING Un "string" est une chaine de caractères. On peut délimiter une telle suite de caractères, soit par des apostrophes (simple quotes), soit par des guillemets (double quotes). Exemples : >>> phrase1 = "c'est le salut" >>> phrase2 = 'des programeurs...' >>> phrase3 = 'Disons "Hello world !" voilà,' >>> print( phrase3, phrase1, phrase2 ) Disons "Hello world !" voilà, c'est le salut des programeurs... >>> Remarquez l'utilisation des guillemets pour délimiter une chaîne dans laquelle il y a des apostrophes, ou l'utilisation des apostrophes pour délimiter une chaîne qui contient des guillemets. Remarquez aussi encore une fois que l'instruction print insère un espace entre les éléments affichés. Types de données Les chaines de caractères → le type STRING >>> salut = "Hello world !" >>> print(salut*3) Hello world !Hello world !Hello world ! >>> salut+" comment ça va ?" 'Hello world ! comment ça va ?' >>> passageLigne ="\n" >>> print((salut+passageLigne)*3) Hello world ! Hello world ! Hello world ! >>> >>> o c e >>> JJJJJ >>> 8 p = 'Jocelyne' print(p[1],p[2],p[3]) print(p[0]*5) len(p) Un « string » peut être vu comme une « liste » de caractères... Importation de modules Exemples de modules : string Contient les opérations communes sur les chaînes de caractères datetime Regroupe les fonctions traitant les variables « temps » et les dates math Fonctions mathématiques (sqrt, cos, sin, etc... ) cmath Les ajouts pour prendre en compte les nombres complexes random Gestion du hasard time Accès au temps et à ses convertions turtle Faire des graphiques avec Turtle tkinter Bibliothèque permettant de faire des interface graphiques pyGame Pygame est une bibliothèque d'extension de Python pour faire des jeux en 2D avec musique Pillow bibliothèque de manipulation d’images très populaire Python comporte des « fonctions » prédéfinies comme par exemple print() et len() que nous avons déjà vues... Il est aussi possible d'importer des modules dans un programme pour ajouter des fonctions. Les modules sont des fichiers qui regroupent un ensemble de fonctions. Importation de modules >>> pi=3.14116 >>> pi 3.14116 >>> sin(pi) Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> sin(pi) NameError: name 'sin' is not defined >>> from math import sin >>> sin(pi) 0.0004326535762950563 >>> from math import * # importe toutes les fonctions du module math >>> dir(math) Traceback (most recent call last): File "<pyshell#6>", line 1, in <module> dir(math) NameError: name 'math' is not defined >>> import math >>> dir(math) ['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'hypot', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc'] >>>