Scénario 1¶
L'alternance de cellules de code et de cellules de texte formaté pour expliquer un langage informatique.
Exemple¶
Une liste Python est un conteneur d'objets Python de type différent.
[1, 2, 3] # liste de trois entiers
[1, "bonjour", 3.2] # liste de trois éléments de type différent
[1, 2, ["a", "b", "c"]] # Liste contenant une liste comme élément
[1, 2, ['a', 'b', 'c']]
La méthode append() permet d'ajouter un élément à une liste.
l1 = [1, 2, 3]
l1.append(4)
Scénario 2¶
Utilisation des carnets Jupyter pour organiser des exercices de programmation en classe. Les instructions sont décrites dans des cellules de texte formaté et les étudiant(e)s sont invités à suivre ces instructions pour résoudre des problèmes dans des cellules de code vides ou partiellement remplies.
Exemple¶
Coder une fonction qui retourne la somme des entiers positifs pairs inférieurs ou égale à $n$. Le paramètre d'entrée de la fonction est $n$. Si ce paramètre n'est pas une valeur numérique positive ou nulle, la fonction renvoie $-1$.
def volume_cylindre(rayon, hauteur):
pass # placer le code ici à la placce de l'instruction pass
Pour tester votre code, exécuter les assertions suivantes, elles ne doivent pas lever d'exception si votre fonction répond au cahier des charges.
assert somme_paire(0) == 0
assert somme_paire(2) == 2
assert somme_paire(10) == 30
assert somme_paire(100) == 2550
assert somme_paire(12.2) == 42
assert somme_paire("8") == -1
Proposition d'une solution
def somme_paire(n):
"""Renvoie la somme des entiers positifs paires inférieur a n."""
res = -1
if isinstance(n, (float, int)):
if n >= 0:
res = sum([i for i in range(0, int(n)+1, 2)])
return res
Scénario 3¶
L'interactivité d'un carnet Jupyter permet des explorations de données en ligne.
Exemple¶
La base de toutes les adresses postales de France est disponible sur l'API http https://adresse.data.gouv.fr/api-doc/adresse
Le code suivant envoie une requête et affiche les 5 premiers résultats. La requête paramétrable en adaptant le dictionnaire params.
import requests
import pandas
api_url="https://api-adresse.data.gouv.fr/search/"
params = {
"q": "avenue",
"limit": 100,
"type": "street", # housenumber, street, locality, municipality
"postcode": 91190,
}
data_json = requests.get(api_url, params=params).json()
data_frame = pandas.json_normalize(data_json["features"])
print(len(data_frame), "réponses obtenues")
34 réponses obtenues
data_frame.head(5)
| type | geometry.type | geometry.coordinates | properties.label | properties.score | properties.id | properties.name | properties.postcode | properties.citycode | properties.x | properties.y | properties.city | properties.context | properties.type | properties.importance | properties.street | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Feature | Point | [2.116187, 48.704444] | Avenue du Génèral Leclerc 91190 Gif-sur-Yvette | 0.882027 | 91272_1260 | Avenue du Génèral Leclerc | 91190 | 91272 | 634963.33 | 6845286.41 | Gif-sur-Yvette | 91, Essonne, Île-de-France | street | 0.70230 | Avenue du Génèral Leclerc |
| 1 | Feature | Point | [2.115624, 48.694571] | Avenue du Panorama 91190 Gif-sur-Yvette | 0.877754 | 91272_1930 | Avenue du Panorama | 91190 | 91272 | 634909.61 | 6844189.27 | Gif-sur-Yvette | 91, Essonne, Île-de-France | street | 0.65529 | Avenue du Panorama |
| 2 | Feature | Point | [2.115367, 48.693057] | Avenue Centrale 91190 Gif-sur-Yvette | 0.876670 | 91272_0470 | Avenue Centrale | 91190 | 91272 | 634888.81 | 6844021.17 | Gif-sur-Yvette | 91, Essonne, Île-de-France | street | 0.64337 | Avenue Centrale |
| 3 | Feature | Point | [2.125022, 48.710608] | Avenue du Bois des Roches 91190 Gif-sur-Yvette | 0.875477 | 91272_0380 | Avenue du Bois des Roches | 91190 | 91272 | 635621.04 | 6845964.45 | Gif-sur-Yvette | 91, Essonne, Île-de-France | street | 0.63025 | Avenue du Bois des Roches |
| 4 | Feature | Point | [2.118026, 48.692642] | Avenue des Carrières 91190 Gif-sur-Yvette | 0.875477 | 91272_0450 | Avenue des Carrières | 91190 | 91272 | 635084.00 | 6843972.84 | Gif-sur-Yvette | 91, Essonne, Île-de-France | street | 0.63025 | Avenue des Carrières |