Introduction au langage Un langage de programmation : de haut niveau interprété orienté objet si on le souhaite rapide à écrire et proche du pseudo-code simple tant qu on fait des choses simples Un programme basique en PYTHON exemple1.py print " entrez un entier " a = input () if a % 2 == 0 : print " pair " else : print " impair " pas de main : directement dans le fichier print affiche à l écran la chaîne de caractères donnée, et va à la ligne input attend des données au clavier pas de points virgules à la fin des lignes, on va à la ligne! pas d accolades, l indentation fait tout les variables ne sont pas déclarées! PYTHON n est pas trop pénible au niveau parenthèses et opérateurs
typage en PYTHON En PYTHON on ne déclare pas les variables et le type d une variable peut varier au cours du temps. Le typage est dynamique. ex2_2.py a = 3 print 5*a print type(a) a="bonjour" print a + " les gens" print type(a) résultat de l éxécution (terminal) : 15 <type int > bonjour les gens <type str > En PYTHON les types correspondent aux valeurs et non aux identificateurs À la ligne 1, un espace mémoire typé int est affecté au nom a. À la ligne 4, un nouvel espace mémoire, typé str, est affecté à a Souvenez vous que ce n est pas le cas en C!! Types à connaître en PYTHON (liste non exhaustive) types numériques int : entiers positifs ou négatifs - en théorie pas de limite de taille float : nombre réels "à virgule",ex. 345.3688 bool : booléen True / False types séquentiels str : string = chaine de caractères "papa" list : liste d éléments de tout type : notation entre crochets ; correspond au tableau ["papa",2,["b","c"],-3.2]
Opérateurs Opérateurs arithmétiques + addition - soustraction * multiplication / division % modulo ** puissance exemples 2**7-1 % 4 renvoie 3 4/2 renvoie 2 4.0/2 renvoie 2.0 Opérateurs de comparaison (de valeurs) == égal à!= différent de < plus petit que > plus grand que Opérateurs logiques and "et" logique or "ou" logique not "non" logique 4.0/2==2 renvoie True not((1+1==2) and (4>1)) renvoie False La boucle while en PYTHON while expression boolenne : bloc d instructions indenté print "entrez un nombre" x = input() print "quel exposant?" k = input() y = 1 i = 1 while i <= k: print y y = y * x i = i + 1 print "fin du programme"
La boucle for.. in La boucle for en PYTHON consiste à parcourir une séquence (suite) d éléments. Elle est très différente de la boucle for en C. for x in [2,10, -4]: print x**2, 4 100 16 for i in [2,7,4,1]: for j in [3,5,2]: print i*j, 6 10 4 21 35 14 12 20 8 3 5 2 for l in " abcd ": print l*5 aaaaa bbbbb ccccc ddddd for x in ["ba","go","lu"]: for y in ["ba","bi","do"]: print x+y baba babi bado goba gobi godo luba ludi ludo boucle pour i de 0 à n-1 La fonction range() permet d obtenir des listes d entiers range(n) renvoie la liste [0, 1, 2, 3,...,n-1] ex. range(5) renvoie la liste [0,1,2,3,4] range(n,m) ou n < m renvoie la liste [n,n+1,n+2,...,m-1] ex. range(3,9) renvoie la liste [3,4,5,6,7,8] for x in range (10): print x**2, résultat 0 1 4 9 16 25 36 49 64 81 for x in range (3): for y in range (4): print x+y, résultat 0 1 2 1 2 3 2 3 4 3 4 5
Tableaux : le type list Les objets de type list ressemblent aux tableaux du C : ils contiennent des éléments, indicés par des entiers positifs ou nuls. On peut imaginer (seulement) en mémoire les éléments d un tableau list comme placés dans des cases contiguës indices 0 1 2 t = [2,4,-2]... 2 4-2... t en mémoire A la différence du C, les éléments d un objet list peuvent être de tous type! maliste = [ 2, -3.4, [print, "salut", [0, -3] ] ] Tableaux : le type list En PYTHON : type list >>> t = [ 2, 4, -2 ] >>> t [1] 4 >>> t [2] = 5 >>> t [2,4,5] indice t[ 2 ] = 5 valeur à affecter Opérations sur les séquences opération type du retour description exemple retour x in s bool appartenance? -1 in [3,4,-1] True x not in s bool non-appart.? "c" not in "chat" False s+t type de la séquence concaténation [2,1]+[3,0] [2,1,3,0] len(s) int longueur len("paris") 5 min(s) type des éléments minimum min([3,5,2,4)] 2 max(s) type des éléments maximum max([3,5,2,4)] 5
création d un tableau Création d un tableau contenant les carrés des entiers de 1 à 100. Première possibilité : avec initialisation tab1 = [0] * 100 # 0 ou autre... for i in range ( len ( tab1 ) ): tab1 [i] = i*i Deuxième possibilité : sans initialisation tab1 = [] for i in range ( 100) ): tab1. append ( i* i ) # append = ajouter au bout En PYTHON la longueur des tableaux n est pas figée! On peut insérer, supprimer, ajouter à la fin... Très pratique mais algorithmiquement traître! parcourir un tableau Rien de plus simple : si tab est du type list version "parcours par les éléments" for x in tab : print x version "parcours par les indices" for i in range ( len ( tab )) : print "le tableau a l indice ",i," vaut ",tab [i]