9
1 Suivez notre actualité sur ATELIER TICE DU 19/09/2018 PYTHON ET EDUPYTHON POUR LES MATHS Sommaire Pages 1-2 : Présentation PYTHON et EDUPYTHON Page 6 : Modules MATH et RANDOM Page 3 : Affichage, Variable, Chaîne de caractère, Demande Page 7 : Modules NUMPY et MATPLOTLIB Page 4 : Aide, Condition, Test Page 8 : Modules TURTLE et CMATH Page 5 : Fonction, Variables globale et locale, Liste Page 9 : Module SYMPY et Compléments GENERALITES Quelques connaissances théoriques sur le langage python Un peu d’histoire sur le langage Python * Langage de programmation * Première version en 1991 * Créateur : GUIDO VAN ROSSUM, programmeur néerlandais (1956) * Associé une organisation à but non lucratif : Python Software Foundation (2001) * Nom en hommage aux «Monty Python» Pourquoi le langage Python ? * Langage puissant, facile à apprendre et riche * Nombreuses fonctionnalités intégrées dont des bibliothèques pour créer des projets * Nombreuses extensions destinées au calcul numérique * Licence libre * Fonctionnement sous Windows, Linux, MacOS, Android, iOS … * Langage interprété : chaque ligne d’instruction envoyée est transcrite en langage machine au fur et à mesure de sa lecture Utiliser le langage Python * Attention aux versions : PYTHON 3 * Site officiel pour télécharger le langage Python : https://www.python.org/ * Choix pédagogique EDUPYTHON, logiciel téléchargeable et portable sur une clé : https://edupython.tuxfamily.org/ * Fichier enregistré avec l’extension : .py Présentation de trois activités en ligne pour découvrir le langage python CODECADEMY INFORMATIQUE AU LYCEE https://www.codecademy.com/fr/tracks/python http://www.ac-grenoble.fr/disciplines/informatiquelycee/python_ISN_a1.html FRANCE IOI * Site d’entraînement à la programmation et à l’algorithmique (association agréée par l’Education Nationale) * Apprentissage progressif de la programmation avec choix du langage dont Python, cours et exercices à vérification automatique * Organisation de l’enseignant par groupe classe pour un suivi des élèves avec un système d’entraide http://www.france-ioi.org/algo/chapters.php Présentation du logiciel EDUPYTHON Cliquer sur le lien : https://edupython.tuxfamily.org/ puis sur l’onglet Téléchargement (en haut à droite). Télécharger le logiciel suivant votre environnement (ici Windows). Présentation de l’interface Choisir : Fichier/Nouveau/Nouveau Fichier Choisir : Python 3.4 puis Créer On vous propose aussi deux bibliothèques : lycée et tortue qui donnent des nombreuses fonctionnalités mathématiques déjà codés.

ATELIER TICE DU 1 9/0 2018 PYTHON ET EDUPYTHON POUR LES …€¦ · ATELIER TICE DU 1 9/0 2018 PYTHON ET EDUPYTHON POUR LES MATHS Sommaire Pages 1-2 : ... Erire un programme qui vérifie

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ATELIER TICE DU 1 9/0 2018 PYTHON ET EDUPYTHON POUR LES …€¦ · ATELIER TICE DU 1 9/0 2018 PYTHON ET EDUPYTHON POUR LES MATHS Sommaire Pages 1-2 : ... Erire un programme qui vérifie

1

Suivez notre actualité sur

ATELIER TICE DU 19/09/2018 PYTHON ET EDUPYTHON POUR LES MATHS

Sommaire

Pages 1-2 : Présentation PYTHON et EDUPYTHON Page 6 : Modules MATH et RANDOM

Page 3 : Affichage, Variable, Chaîne de caractère, Demande Page 7 : Modules NUMPY et MATPLOTLIB

Page 4 : Aide, Condition, Test Page 8 : Modules TURTLE et CMATH

Page 5 : Fonction, Variables globale et locale, Liste Page 9 : Module SYMPY et Compléments

GENERALITES

Quelques connaissances théoriques sur le langage python

Un peu d’histoire sur le langage Python

* Langage de programmation * Première version en 1991 * Créateur : GUIDO VAN ROSSUM, programmeur néerlandais (1956) * Associé une organisation à but non lucratif : Python Software Foundation (2001) * Nom en hommage aux «Monty Python»

Pourquoi le langage Python ?

* Langage puissant, facile à apprendre et riche * Nombreuses fonctionnalités intégrées dont des bibliothèques pour créer des projets * Nombreuses extensions destinées au calcul numérique * Licence libre * Fonctionnement sous Windows, Linux, MacOS, Android, iOS … * Langage interprété : chaque ligne d’instruction envoyée est transcrite en langage machine au fur et à mesure de sa lecture

Utiliser le langage Python

* Attention aux versions : PYTHON 3 * Site officiel pour télécharger le langage Python : https://www.python.org/ * Choix pédagogique EDUPYTHON, logiciel téléchargeable et portable sur une clé : https://edupython.tuxfamily.org/ * Fichier enregistré avec l’extension : .py

Présentation de trois activités en ligne pour découvrir le langage python

CODECADEMY INFORMATIQUE AU LYCEE https://www.codecademy.com/fr/tracks/python http://www.ac-grenoble.fr/disciplines/informatiquelycee/python_ISN_a1.html

FRANCE IOI * Site d’entraînement à la programmation et à l’algorithmique (association agréée par l’Education Nationale) * Apprentissage progressif de la programmation avec choix du langage dont Python, cours et exercices à vérification automatique * Organisation de l’enseignant par groupe classe pour un suivi des élèves avec un système d’entraide

http://www.france-ioi.org/algo/chapters.php

Présentation du logiciel EDUPYTHON

Cliquer sur le lien : https://edupython.tuxfamily.org/ puis sur l’onglet Téléchargement (en haut à droite). Télécharger le logiciel suivant votre environnement (ici Windows).

Présentation de l’interface

Choisir : Fichier/Nouveau/Nouveau Fichier Choisir : Python 3.4 puis Créer

On vous propose aussi deux bibliothèques : lycée et tortue qui donnent des nombreuses fonctionnalités mathématiques déjà codés.

Page 2: ATELIER TICE DU 1 9/0 2018 PYTHON ET EDUPYTHON POUR LES …€¦ · ATELIER TICE DU 1 9/0 2018 PYTHON ET EDUPYTHON POUR LES MATHS Sommaire Pages 1-2 : ... Erire un programme qui vérifie

2

Pour nommer un projet python (module), il faut l’enregistrer ou le sauvegarder.

Pour

exécuter le

programme.

Pour exécuter

jusqu’au curseur.

Pour enregistrer

le ou les projet(s)

(modules).

Retour

arrière/avant

Pour

indenter.

Pour

zoomer.

Pour transformer une ligne

en commentaire : utile pour

neutraliser une ligne de code.

Zone d’écriture du

programme.

Zone d’exécution

du programme.

Page 3: ATELIER TICE DU 1 9/0 2018 PYTHON ET EDUPYTHON POUR LES …€¦ · ATELIER TICE DU 1 9/0 2018 PYTHON ET EDUPYTHON POUR LES MATHS Sommaire Pages 1-2 : ... Erire un programme qui vérifie

3

PREMIERES FONCTIONNALITES

Affichage

Affiche la valeur prise par la variable x Affiche le texte âge Affiche le texte et la valeur

print(x) print("âge") print("Son âge est ",x)

Affectation, variable et calculs de base Attention : on utilise le point à la place de la virgule !

Affecte la valeur 5 à la variable n

Compare Donne le type d’une variable Calcule n + 1 et l’affecte à la variable n

n=5 == Egal à int(x) x est un nombre entier n=n+1

La variable n prend la valeur 5

!= Différent de float(n) n est un nombre décimal n augmente de 1

< Inférieur str(a) a est une chaine de caractère Autre syntaxe souvent utilisée :

n+=1 >= Supérieur ou

égal bool() Un booléen n’a que deux

valeurs : False et True

Pour chaque opérateur mathématique + ; - ; / ; * ; **, il existe un opérateur d’affectation augmenté : += ; -= ; /= ; *= ; **=.

Chaine de caractère

La variable de type "chaîne de caractères" est notée str pour string. str(a) signifie la variable a est une chaîne de caractères.

Donne la longueur d’une chaine Choisit un élément d’une chaine Extrait un ou des élément(s) d’une chaine

Ici, on obtient 15 car les espaces sont comptés !

En [5], on a un espace d’où on obtient :

On obtient ci-contre car on extrait les éléments 4, 5, 6 et pas le 7. On part de 0 et non de 1 !

Regroupe deux chaines : CONCATENATION Change la casse d’une chaine

Avec des chaines seulement, on obtient :

On obtient : On obtient :

Indique la position d’element dans chaine et renvoie −1 s’il n’apparait pas

Remplace tous les element1 par element2 dans chaine

Compte le nombre de fois où element est dans chaine.

chaine.find(‘’element‘’) chaine.replace(‘element1’,’element2’) chaine.count(‘’element’’)

Demande

Demande un nombre entier ou décimal et stocke la réponse dans une variable

Demande une réponse sous forme chaîne de caractère (texte) et stocke la réponse dans une variable

La question s’affiche. La réponse est attribuée à la variable numérique age qui est un entier (int) ou un nombre décimal (float). Attention, si vous rentrez une chaîne de caractère, le programme ne fonctionne pas.

La question s’affiche. La réponse est attribuée à la variable N qui par défaut est une chaîne de caractère.

Effectue les opérations de base

Calcule des puissances

Donne le reste d’une division euclidienne

Donne le dividende d’une division euclidienne

Donne l’arrondi de a au ième

2+1 4-2 3*4 4/9

3**2 13%5 12//5 round(4.173,2)

Calcule 32= 9 Donne le reste 3 Donne le dividende 2 Donne l’arrondi : 4,17

Page 4: ATELIER TICE DU 1 9/0 2018 PYTHON ET EDUPYTHON POUR LES …€¦ · ATELIER TICE DU 1 9/0 2018 PYTHON ET EDUPYTHON POUR LES MATHS Sommaire Pages 1-2 : ... Erire un programme qui vérifie

4

Activité : PRINT, VARIABLE, TYPE DE VARIABLE, INPUT ET CHAINE DE CARACTERE

Voici un programme de Magie Mathématique en langage Python :

A FAIRE

1) Réaliser ce programme avec EDUPYTHON et le faire tourner. 2) Quelles sont les entrées et les sorties ce programme ? Que fait-il ?

3) A quoi sert : a) l’instruction int(input …)) de la ligne 3 ? b) la ligne 5 ? c) l’instruction len et les crochets des lignes 6 et 7 ?

Commentaire et aide

Aide à la compréhension d’un programme Aide la compréhension d’une fonctionnalité

Attention : on utilise des guillemets.

On peut insérer un commentaire qui débute par un dièse # et se termine par un saut de ligne : tout ce qui est entre ce # et ce saut de ligne est ignoré par l’interpréteur.

On obtient une aide sur la fonctionnalité pow. Activité : AIDE

Taper la ligne de code donnée ci-dessus puis répondre aux questions. Questions : A quoi sert la fonctionnalité pow ? A quoi correspondre les nombres utilisés dans la syntaxe de pow ?

Condition et test

• Possibilité de passer des lignes pour plus de clarté (pas pris en compte lors de l’exécution du programme).

• ATTENTION, ajouter un espace en début de ligne a une signification : L’INDENTATION. L’indentation est le décalage vers la droite d’une ou de plusieurs lignes du programme, ce qui permet de délimiter un bloc d’instructions dans une boucle ou une exécution conditionnelle.

• La ligne précédent l’INDENTATION se finit toujours par DEUX POINTS « : ». L’indentation est automatiquement effectuée en même temps que le passage à la ligne.

si alors

if contition : ………….. else : ……………

si sinon alors

if contition 1 : ………….. elif contition 2 : ………….. else : ……………

ou contition 1 or contition 2

et contition 1 and contition 2

Activité (niveau seconde) : CONDITION IF, OR ET AND

Ecrire un programme qui vérifie la colinéarité de deux vecteurs non nuls. L’utilisateur devra entrer les coordonnées de chaque vecteur. Le programme doit indiquer à l’utilisateur qu’il doit recommencer si des coordonnées entrées sont celles du vecteur nul.

Boucle

tant que while condition : instruction 1 instruction 2

pour i variant entre les entiers a INCLUS et b EXCLUS

for i in range(a,b) :

Info : Les boucles FOR et WHILE sont interchangeables mais WHILE est utilisée quand on ne connait pas à l'avance le nombre de "tours" que devra effectuer la boucle. Question : Il y a une erreur. Dans quel programme ?

Question : Quelle est la sortie de ces deux programmes ?

INFO : Dans, "\nVous avez", \n

renvoie ce texte à la ligne.

Page 5: ATELIER TICE DU 1 9/0 2018 PYTHON ET EDUPYTHON POUR LES …€¦ · ATELIER TICE DU 1 9/0 2018 PYTHON ET EDUPYTHON POUR LES MATHS Sommaire Pages 1-2 : ... Erire un programme qui vérifie

5

Activités (niveau terminale) : BOUCLES WHILE ET FOR, exercice du bac ES Antilles Guyane septembre 2017

ENONCE : On modélise l'évolution du nombre de vélos utilisables par une suite (un) dans laquelle, pour tout entier naturel n, un est le nombre de vélos le 1erjanvier de l'année 2017 + n et on a : un = 50 × 0,8n + 150. 1) La municipalité décide de maintenir ce service de location tant que le nombre de vélos reste supérieur à 160. En quelle année ce service s'arrêtera-t-il ?

Ecrire un programme qui demande à l’utilisateur d’entrer le nombre de vélos seuil (ici 160) et qui détermine l’année d’arrêt du service.

2) Pour l'aider à maintenir ce service de location, la municipalité a obtenu une subvention de la région qui sera versée de 2017 inclus à 2017 + n inclus. Cette subvention s'élève à 20 euros par vélo et est versée le 1er janvier de chaque année. Déterminer la somme totale perçue grâce à cette subvention du 1er janvier 2017 au 1er janvier 2025 inclus.

Ecrire un programme qui demande le nombre d’années à l’utilisateur (ici 8) et qui calcule la somme perçue arrondie au centime.

Fonction

Définit une fonction

def nom_fonction(paramètre 1,…,paramètre N) : instruction 1 …. return expression ou variable de cette fonction

3 questions : Qu’affiche précisément le programme ci-dessus ? A quoi sert end =’’ ’’ dans ce programme ? L’affichage est-il différent si « print » n’est pas indenté ?

Variable locale, variable globale

Variable locale

a est une variable locale. Elle n’existe que pour la fonction incrémente.

Variable globale

a est une variable globale. Elle existe pour tout le programme.

Question : Un de ces deux programmes ne fonctionne pas. Lequel et pourquoi ?

Activités : VARIABLE LOCALE, VARIABLE GLOBALE ET FONCTION

Activité 1 : voici 4 programmes de structure très proche.

Question : Qu’affiche chacun des programmes en sortie ? Les réaliser pour vérifier vos réponses.

Activité 2 (niveau seconde) : Calculs d’image Activité 3 (niveau seconde) : Dichotomie

Réaliser un programme pour calculer et afficher les valeurs de la fonction f définie par f(x) = -x² + 2x + 1 sur [-2 ; 4] sous la forme f(-2) = …. avec un pas de 0,25. Arrondir ces images à 10-2. Pour aller plus loin : Ecrire un programme qui demande les coefficients de la fonction du second degré f, les bornes, le pas et l’arrondi à l’utilisateur.

Réaliser un programme de dichotomie pour déterminer un encadrement des éventuelles racines de la fonction f définie sur ℝ par f(x) = x² - 10 Demander à l’utilisateur de rentrer les deux bornes et la précision.

Liste

Une liste est une suite d’éléments (nombre, chaine de caractère, liste, tableau …) modifiable et ordonnée dont le premier indice est 0, séparés par une virgule et délimités par des crochets.

Attention : Ne pas confondre PRINT avec RETURN qui renvoie 0.2x + 1 à la fonction f.

INFO : round(f(x),2) donne

l’arrondi de f(x) à 10-2.

Page 6: ATELIER TICE DU 1 9/0 2018 PYTHON ET EDUPYTHON POUR LES …€¦ · ATELIER TICE DU 1 9/0 2018 PYTHON ET EDUPYTHON POUR LES MATHS Sommaire Pages 1-2 : ... Erire un programme qui vérifie

6

Activités : LISTE ET IF

Activité 1 (niveau seconde) : Moyenne pondérée Activité 2 (niveau seconde) : Médiane

Réaliser un programme qui demande à l’utilisateur les valeurs de la série et les effectifs correspondants puis qui calcule la moyenne pondérée.

Réaliser un programme qui demande à l’utilisateur les valeurs et les effectifs de la série puis qui détermine sa médiane.

LES MODULES : bibliothèques de fonctions

Module MATH : fonctions mathématiques de base

ATTENTION : écrire la ligne de code suivante lors de la première utilisation des fonctions du module MATH :

qui vous importe automatiquement toute la librairie mathématique.

Puissance Racine carrée Exponentielle Logarithme népérien Valeur absolue Partie entière

pow(x,a) sqrt(x) exp(x) log(x) abs(x) floor(x)

Module RANDOM : fonctions aléatoires

ATTENTION : écrire la ligne de code suivante lors de la première utilisation des fonctions du module RANDOM :

Renvoie un nombre entier aléatoire de la forme a + kc compris entre a et b exclus

Choisit un élément au hasard dans une liste L

Renvoie un nombre décimal aléatoire de

l’intervalle [0 ; 1[

Renvoie un nombre décimal suivant une loi uniforme sur

l’intervalle [a ; b[

randrange(a,b,c) choice([L]) random()

uniform(a,b)

randrange(3,101,2) choice([4,’’ch’’,3.2]) uniform(0.3,7)

Activité (niveau première S) : UNIFORM

Méthode de Monte - Carlo pour PI Par une simulation, elle permet la résolution approchée de problèmes numériques déterministes : ici, le nombre π. A l'intérieur d’un carré de côté 2, on inscrit un disque de rayon 1. La méthode consiste à tirer au hasard des nombres x et y dans l'intervalle [-1 ; 1[. Si x2 + y2 ≤ 1, le point M(x ; y) appartient au disque. La probabilité d'obtenir un point dans le disque est égale au rapport des aires du disque de rayon 1 et du carré de côté 2 soit π/4. Réaliser un programme qui demande à l’utilisateur le nombre de points et qui calcule une valeur approchée de π. Ici, pour 1000 points.

ATTENTION : diviser un entier

le transforme TOUJOURS en

décimal !

Page 7: ATELIER TICE DU 1 9/0 2018 PYTHON ET EDUPYTHON POUR LES …€¦ · ATELIER TICE DU 1 9/0 2018 PYTHON ET EDUPYTHON POUR LES MATHS Sommaire Pages 1-2 : ... Erire un programme qui vérifie

7

Module NUMPY : tableaux de valeurs et calculs matriciels

ATTENTION : écrire la ligne de code suivante lors de la première utilisation des fonctions du module NUMPY :

Crée un tableau de valeurs comprises a et b avec un pas p Crée un tableau ligne(liste) par ligne

np.arange(a,b,p) np.array([[a,b,…],[c,d,…],[…],...])

ATTENTION : b non compris !

Crée un tableau de n valeurs uniformément réparties de a à b Transpose, inverse une matrice (tableau) et multiplie 2 matrices np.linspace(a,b,n)

np.transpose(matrice) np.linalg.inv(matrice)

np.dot(matrice,matrice1)

Tutoriel : http://math.mad.free.fr/depot/numpy/essai.html Module MATPLOTLIB : représentations graphiques 2D (enregistrables au format : PNG, JEPG, PDF …)

ATTENTION : écrire la ligne de code suivante lors de la première utilisation des fonctions du module MATPLOTLIB :

On obtient la figure ci-contre : La barre d’outils située au-dessus permet de modifier le graphique : échelle, couleur, axe …

Activité (niveau première S) :

Compléter le programme de la méthode de Monte-Carlo pour réaliser une figure identique à celle proposée.

INFO : plt.axis('equal') donne un repère

orthonormé.

Page 8: ATELIER TICE DU 1 9/0 2018 PYTHON ET EDUPYTHON POUR LES …€¦ · ATELIER TICE DU 1 9/0 2018 PYTHON ET EDUPYTHON POUR LES MATHS Sommaire Pages 1-2 : ... Erire un programme qui vérifie

8

Module TURTLE : tracés géométriques

Activité : TURTLE

Réaliser un programme créant une spirale qui change de couleur de manière aléatoire tous les 90°. Ce programme demande à l’utilisateur le nombre de quarts de cercle à effectuer pour former cette spirale.

Module CMATH : fonctions pour les nombres complexes

Activité (niveau terminale S) : CMATH ET MATPLOTLIB

Réaliser un programme qui place sur un cercle le point M associé au complexe z = x + iy. x et y sont entrés par l’utilisateur.

Page 9: ATELIER TICE DU 1 9/0 2018 PYTHON ET EDUPYTHON POUR LES …€¦ · ATELIER TICE DU 1 9/0 2018 PYTHON ET EDUPYTHON POUR LES MATHS Sommaire Pages 1-2 : ... Erire un programme qui vérifie

9

Module SYMPY : calcul formel

Tutoriel très détaillé : http://www.asmeurer.com/sympy_doc/dev-py3k/tutorial/tutorial.fr.html

D’AUTRES PROGRAMMES

BOUCLE Algorithme issu de l’ex 3 de

spécialité de TS, nouvelle Calédonie 11/17

ENCADREMENT D’INTEGRALE FONCTION EXPONENTIELLE SUR [0 ; 1]

Exemple pour n = 20

N ← 0 B ← 1000 C ← 500 Tant que B > 2 ou C > 2 N ← N + 1 R ← B B ← 0,3R + 0,5C C ← −0,5R + 1,3C Fin Tant Que Afficher N Ecrire le programme correspondant.

Ecrire un programme qui permet d’encadrer l’intégrale de exponentielle sur [0 ; 1] par la méthode des rectangles. Ce programme doit demander le nombre de rectangles et réaliser le graphique.

POUR ALLER PLUS LOIN

Documentation EDUPYTHON

Cours pour enseignant

Activités MATHS

http://download.tuxfamily.org/edupython/EduPython.pdf

http://python.lycee.free.fr/ EN VIDEO :

https://www.apmep.fr/Prendre-en-main-Python

http://www.math93.com/index.php/lycee/seconde/algorithmes-en-2nd

http://eric.berthomier.free.fr/IMG/pdf/exos_corriges.pdf

Ce document a été créé par Maryline Querry et mis à disposition suivant la licence Creative Commons : Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 France (CC BY-NC-SA 3.0 FR)