# Cours, pour Coco Voici le petit cours d'informatique pour Coline que j'ai préparé au fur et à mesure des vacances d'Octobre. # Fondamentaux ## Types de Variables [...] ### Listes #### Méthodes - `list[i]` renvoie le `i`ème élément d'une liste - `list.append(x)` ajoute l'élément `x` à la fin de la liste. - `list1.extend(list2)` ajoute `liste2` à la fin de `liste1` # Control Flow ## Tests [...] ## Boucles En python, il y a 2 types de boucles: - ### Forloops #### Définition Une forloop permet d'exécuter un bloc indenté pour chaque valeur d'un itérateur, en la nommant. #### Syntaxe ```py for name in iterator: run_code() ``` #### Itérateurs Utiles Quelques itérateurs prédéfinis existent en Python: - `range(n)` -> `0, 1, ..., n-1` - `range(a, b)` -> `s, s+1, ..., e-1` - `range(a, b, c)` -> `a, a+c, ..., b` - `enumerate(I)` -> `(0, I[0]), (1, I[1]), ..., (n, I[n])` #### Exemples ```py= # affiche tous les nombres de 0 à 11 for n in range(12): print(n) # affiche tous les nombres pairs de 0 à 143 for n in range(0, 144, 2): print(n) # calcule la moyenne d'une liste de donnée data = read_data_from_somewhere() sum = 0. # initializes a var to store the sum for val in data: sum += val # adds the value to the sum mean = sum / len(data) print(mean) # Donne un bonbon à tout le monde pour Halloween for person in [Maxime, Coline,]: # ici, les personnes sont des objets définis autre part person.bonbons += 1 ``` #### Cas Utiles Les boucles sont utiles pour faire des totaux, ou effectuer un changement sur toute une série de données. #### Exercices 1. On vous donne le programme suivant: ```python= my_list = [48, 26, 44, 32, 78, 54, 61] def one_more(l): result = [] for item in l: result.append(item + 1) return result ``` Prédire le résultate de `one_more(my_list)`, de `one_more(one_more(my_list))` et de `one_more(3)`. Écrire un programme qui renvoie une liste constituée du double de chaque élément d'une liste d'entrée. ```python= def double_elem(input_list): ... for ... in ...: ... return ... ``` 2. Voici un programme calculant une suite $s$ telle que $s_n = s_{n-1} * 2$ et que $s_0 = 1$, jusqu'à l'élément $x$: ```python= def suite_double(x): suite = [1, ] for n in range(x): # suite[n] est l'élément généré juste avant next = suite[n] * 2 suite.append(next) return suite suite_double(3) == [1, 2, 4, 8] # True ``` Calculer, de la même façon la suite de Fibonacci telle que $F_n = F_{n-1} + F_{n-2}$, sachant que $F_0 = 0$ et que $F_1 = 1$. Indice: `suite[n]` et `suite[n-1]` correspondent à $F_{n-1}$ et $F_{n-2}$ #### Approfondissements [...] - ### Whileloops [...] ### Boucles Récursives Et voici un concept plus difficile...