Syntaxe de base =============== Assignation de variables ------------------------ :: >>> number = 10 >>> number 10 >>> name = 'Dupont' >>> name 'Dupont' >>> a, b = 3, 5 >>>a 3 >>>b 5 Swap ---- :: >>> a = 10 >>> b = 20 >>> a, b = b, a >>> a 20 >>> b 10 Types de base ============= - chaines "John Doe" - nombres 1 3.8 - listes [1, 4, 3, "John", variable - tuples (1, 4, 3, "John", variable) - dictionnaires { 'first\_name': 'John', 'last\_name': "Doe", 'age': 25} Strings ------- :: >>> last_name = 'Dupont' >>> first_name = "Jean" >>> full_name = '''jean dupont''' Multilignes ~~~~~~~~~~~ :: >>> long_str ="""une longue ... chaine ... de trois ... lignes""" >>> long_str 'une longue\nchaine\nde trois\nlignes' >>> print long_str une longue chaine de trois lignes Échappement ~~~~~~~~~~~~ :: >>> school = 'ecole d\'ingenieur' >>> print school ecole d'ingenieur Formatage de chaine ~~~~~~~~~~~~~~~~~~~ :: >>> name = 'Joe' >>> print ('Salut {0}'.format(name)) Salut Joe >>> print ('hello %s' % name) hello Joe >>> "{0} is easier than {1}".format("python", "java") 'python is easier than java' >>>name= "Jim" >>> `Bonjour {name}, comment ça va ?` 'Bonjour Jim, comment ça va ? Nombres ------- :: >>> age = 10 >>> price = 5.2 Incrémentation ~~~~~~~~~~~~~~ :: >>> a+=1 >>> a-=2 \*\* Attention à la précisions des flottants (cf IEE 754) *\** ## Booléens >>> a = True >>> b = False Réassigner ---------- :: >>> a = 20 >>> a = 'Dupont' Noms de variables ----------------- - minuscules - underscores - != keywords python Interdits :: >>> import keyword >>> print keyword.kwlist Dangereux :: >>> dir(__builtins__) Notamment: dict, file, id, list, str, type, sum Variables en détail ------------------- Les variables sont des étiquettes Obtenir l'id dune variable >>> id(a) 140654160195904 :: >>> a= 10 >>> id(a) 140654160195952 >>> c=a >>> id(c) 140654160195952 # même id Mutabilité ~~~~~~~~~~ :: >>> a = 12 >>> id(a) 140654160195904 #id a changé Le type ~~~~~~~ :: >>> a = 10 >>> type (a) Objets ------ Tout est objet :: >>> name ='toto' >>> name.capitalize() 'Toto' Obtenir les ---------- dir() :: >>> a = 5 >>> dir (a) ['__abs__', '__add__', '__and__', '__class__', '__cmp__', '__coerce__', '__delattr__', '__div__', '__divmod__', '__doc__', '__float__', '__floordiv__', '__format__', '__getattribute__', '__getnewargs__', '__hash__', '__hex__', '__index__', '__init__', '__int__', '__invert__', '__long__', '__lshift__', '__mod__', '__mul__', '__neg__', '__new__', '__nonzero__', '__oct__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdiv__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'bit_length', 'conjugate', 'denominator', 'imag', 'numerator', 'real'] help() :: >>> help(a) Help on int object: class int(object) | int(x[, base]) -> integer | | Convert a string or number to an integer, if possible. A floating point | argument will be truncated towards zero..... String methods -------------- :: >>> name = 'john doe' >>> name.startswith('joh') True >>> name.startswith('josh') False >>> name.startswith(('john', 'bill')) True >>> 'doe' in name True Listes ====== :: >>> [1, 2, 3, 9, 'abc', 2.8, name ] >>> [1, 2, 3, 9, ['abc', 2.8, name] ] >>> l = [ 'a', 'b', 'c', 'd', 'e', 'f'] Indices :: >>> l[0] 'a' >>> l[5] 'f' >>> l[-1] 'f' >>> l[-6] 'a' Slices :: >>> l[1:5] ['b', 'c', 'd', 'e'] >>> l[:3] ['a', 'b', 'c'] >>> l[:-2] ['a', 'b', 'c', 'd'] >>> l[2] = "X" >>> l ['a', 'b', 'X', 'd', 'e', 'f'] Syntaxe : :: seq = l[start:stop:step] Copier une liste :: >>> other_list = l[:] >>> another_list = list(l) Concaténation :: >>> k = ['q', 'r'] >>> l+k ['a', 'b', 'c', 'd', 'e', 'f', 'q', 'r'] Ajout :: >>> l = ['a', 'b'] >>> l.append('c') ['a', 'b', 'c'] Tri :: >>> l = [4, 7, 9, 0] >>> l.sort() >>> l [0, 4, 7, 9] Ordre :: >>> l.reverse() >>> l ['f', 'e', 'd', 'c', 'b', 'a'] Tuples ====== Listes immutables :: >>> t = (1, 2, 3) >>> t = tuple(l) >>> t ('a', 'b', 'c', 'd', 'e', 'f') >>> l = list(t) >>> l ['a', 'b', 'c', 'd', 'e', 'f'] constructeur = comma :: >>> t = (1) >>> t 1 >>> t = (1,) >>> t (1,) >>> t =1, >>> t (1,) >>> t =1, 2 >>> t (1, 2) Swap : ``a, b = b, a`` Assignation : ``x, y = 1, 2`` Dictionnaires ============= <=> Hashtable key: immutables (numbers, str, tuples) values: whatever :: >>> d = {'first_name' : 'john', 'last_name': 'doe'} >>> d['first_name'] 'john' >>> d['age'] Traceback (most recent call last): File "", line 1, in KeyError: 'age' >>> d.get('age', 'Inconnu') 'Inconnu' Delete :: >>> del d['last_name'] >>> d {'city': 'toulon', 'first_name': 'john'} Méthodes utiles :: >>> d.keys() ['first_name', 'last_name'] >>> d.values() ['john', 'doe'] >>> d.items() [('first_name', 'john'), ('last_name', 'doe')] Licence: CC-BY Providenz