Python – Les Bases Attention à lʼindentation, les espaces et tabulations permettent de définir les blocs. #Ceci est un commentaire Types de base: int, float ; Opérateurs: +, -, *, /, ** (pour puissance, ab sʼécrit a**b ) bool (True, False) ; Opérateurs: or, and et not Opérateurs de comparaison : <, >, <=, >=, ==, != Tests et boucles if: if test: #do stuff if test is true elif test 2: #do stuff if test2 is true else: #do stuff if both tests false for: for x in aSeq: #faire pour chaque elt de aSeq for x in xrange(10): #faire 10 fois (x va de 0 à 9) for x in xrange(5,10): #faire 5 fois (x va de 5 à 9) while: while test: #keep doing stuff until #test is false Chaînes de caractères création: accès: Découpage: str = “Hello World!” str = ‘Hello World!’ str[4] str.split(" ") str.split("r”)! returns ‘o’ returns [‘Hello’, ‘World!’] returns [‘Hello’, ‘Wo’, ‘ld!’] Pour transformer une liste en une chaîne de caractères, il faut utiliser la fonction join(). Il faut préciser le séparateur. words = [“this”, ‘is’, ‘a’, ‘list’, ‘of’, “strings”] ‘ ‘.join(words) returns “This is a list of strings” ‘ZOL’.join(words) returns “ThisZOLisZOLaZOLlistZOLofZOLstrings” ‘’.join(words) returns “Thisisalistofstrings” Formatage: similaire à printf() en C str = “there” print “Hello %s!”%str a=5 print “Hello %s %d %f”%(str, a, a) affiche “Hello there!” affiche “Hello there 5 5.000000” Python Tuples Un tuple est composé de valeurs séparées par des virgules. Ces valeurs une fois définies ne sont pas modifiables. Les tuples sont surtout utilisés pour retourner des valeurs dans les fonctions. création: accès: emptyTuple = () singleItemTuple = (“spam”,) Ne pas oublier la virgule ! thistuple = 12, 89, ‘a’ thistuple = (12, 89, ‘a’) thistuple[0] returns 12 thistuple[1]=5 INTERDIT Dictionnaires Un dictionnaire est un ensemble de paires clé:valeur. Toutes les clés doivent être uniques. création: accès: délétion: recherche: emptyDict = {} thisdict = {'a':5, 'b':23, 'c':'eggs'} thisdict[‘a’] returns 5 del thisdict[‘b’] supprime la paire ('b':23) thisdict.has_key(‘e’) returns True 'e' in thisdict returns True thisdict.keys() returns [‘a’, ‘c’] thisdict.items() returns [(‘a’, 5), (‘c’, ‘eggs’)] Manipulation des listes Un des types de données les plus importants : très flexible et ayant beaucoup de fonction prédéfinies. création: accès: découpage: thelist = [5,3,‘p’,9,‘e’] thelist[0] thelist[1:3] thelist[2:] thelist[:2] thelist[2:-1] taille: len(thelist) tri: thelist.sort() ajout: thelist.append(37) supprime et retourne: thelist.pop() thelist.pop(1) insertion: thelist.insert(2, ‘z’) suppression: thelist.remove(‘e’) concaténation: thelist + [0] recherche: 9 in thelist [5,3,’p’,9,’e’] returns 5 [5,3,’p’,9,’e’] returns [3, ‘p’] [5,3,’p’,9,’e’] returns [‘p’, 9, ‘e’] returns [5, 3] returns [‘p’, 9] returns 5 no return value [3,5,9,’e’,’p’] [3,5,9,’e’,’p’,37] returns returns X X returns returns 37 5 [3,5,9,’e’,’p’] [3,9,’e’,’p’] [3,’z’,9,’e’,’p’] [3,’z’,9,’p’] [‘z’,9,’p’,0] [‘z’,9,’p’] True [‘z’,9,’p’] Listes de listes (tableaux à 2 dimensions ou plus) création: accès: l2 = [[1,2], [‘a’,’b’],‘p’] l2[1] returns [‘a’,’b’] l2[1][0] returns ‘a’ Création dʼun tableau de taille 3x2 m=[0]*3 for i in xrange(3): m[i]=[0]*2 print m affiche [[0, 0], [0, 0], [0, 0]] Fonctions def myFunc(param1, param2): #indented code block goes here spam = param1 + param2 return spam Appel : a=spam(5,7) print a returns 12 affiche 12 Lecture et écriture de fichiers Lecture: thisfile = open(“datadirectory/file.txt”, ‘r’) lesLignes=thisfile.readlines() #Parcourt le fichier et retourne la liste des lignes. thisfile.close() monTexte=’’ for l in lesLignes: #Traiter chaque ligne print l[0] #Va afficher le 1er caractère de chaque ligne) monTexte=monTexte+l[:-1] #Concatène le texte du fichier dans la variable monTexte #Le :-1 permet d’enlever les retours à la ligne Ecriture: a= ʻtotoʼ b=5 thisfile = open(“datadirectory/file.txt”, ‘w’) thisfile.write(a) #L’argument doit être une chaine de caractères thisfile.write(‘b : %d\n’%b) #\n est un passage à la ligne thisfile.write(‘b : %d a : %s\n’%(b,a)) thisfile.close() Conversion chaîne de caractere vers un autre type: float("5.6") returns 5.6 int("7") returns 7 bool("True") returns True Scripts Ils doivent commencer par les deux lignes suivantes: #!/usr/bin/python # -*- coding: utf-8 -*# maFonction1: Expliquer ce que fait maFonction1 #ce que sont ses arguments... def maFonction1(arg1, arg2, arg3) : return arg1+arg2+arg3 #Expliquer ce que fait maFonction2 et ses arguments def maFonction2(n) : return n*n #Appels de mes fonctions print maFonction1(5,6,7) b=maFonction2(5) print b1 1 Fiche fortement inspirée de http://www.cogsci.rpi.edu/~destem/gamedev/python.pdf