Apprendre l'analyse scientifique avec Python
Un tutoriel de Yannick Copin
Le 2017-12-18 14:02:36, par yannick.copin, Membre habitué
Chers membres du club,
J'ai le plaisir de vous présenter ce tutoriel :
Bonne lecture
Retrouvez les meilleurs cours et tutoriels pour apprendre Python.
J'ai le plaisir de vous présenter ce tutoriel :
Ce cours est une initiation au langage Python et à son utilisation dans le domaine de l'analyse scientifique (manipulation de données numériques). Il a avant tout été développé comme support pour des enseignements en présentiel de 20h environ, et ne se veut donc pas complet : beaucoup d'éléments sont développés à l'oral, notamment les solutions des exercices.
-
disedorgueExpert éminent séniorBonjour,
Je trouve que vous êtes un peu sévère, ici, le responsable, ce n'est pas yannick.copin mais plus ceux qui lui on demandé de fournir son doc.
Le doc est concis, il bypass pas mal de concept, mais comme indiqué, en principe, ce n'est qu'un support de court et il fait le boulot.
Après le choix de la version python 2 au lieu de python 3 ne retire en rien le principe et si en tant que développeurs, vous n'êtes pas capable de vous adapter pour passer de l'un à l'autre, faut arrêter ce métier.
D'ailleurs une petite parenthèse:
Code : if ( i%3 !=0 )
Code : if not i%3
Tant que l'on est dans une phase de transition, ce qui est le cas pour au moins 3 ans, un doc sous python 2 est toujours d'actualité.
Surtout qu'ici, le doc n'est pas sur python en lui-même mais comment s'en servir...le 20/12/2017 à 11:16 -
martopiocheMembre éclairéBonjour,
je vais me permettre de rebondir sur ces remarques quand au choix Python 2 qui sont, je vais être direct, inacceptables.
donc j'en déduis que ce tuto a été écrit en 2012 et que c'est un simple rappel publicitaire sans valeur ajoutée ni maintenance depuis 6 ans.raison pratique: les enseignements se font sur des machines de l'université dont je n'ai pas le contrôle, et qui sont nativement équipées de Python 2.7
Quand bien même, ce tuto vous le publiez sur un site public hors université, il se doit d'être un minimum à jour. Et même si vous vous vous reposez sur des machines ne vous proposant que l'interpréteur Python 2, en bientôt 2018, vous devez au moins écrire du code compatible Python 3, donc inclusion de future. CarIl est clair que le portage à Python 3 est nécessaire à terme, mais il ne me semble pas crucial pour une introduction à Python.
Alors non, c'est inacceptable aujourd'hui de lire du code Python avec unCode : print ""
Code : print()
Code : list(range(10))
Je suis sévère et je ne prends plus de pincettes sur ce sujet. Je sais que c'est du boulot pour mettre tout un cours à jour…*Je le sais car je l'ai fait il y a un an. Mais je me permet d'être d'autant plus sévère que votre cours complet (celui de readthedocs) couvre un nombre pertinent de points.
Et c'est d'autant plus triste qu'il y a énormément de manque de rigueur… Énormément de violations de la PEP8 (déjà le choix d'une variable avec un caractère mais en particulierCode : l
). Un Code : if (i%3 != 0)
Code : if not i % 3
Code : for i in range(0, 10, 3)
Bref, si j'ai pris la peine d'intervenir certes de manière sévère, c'est que ce cours mérite d'être mis à jour et qu'aujourd'hui, aucune excuse de non-mise à jour n'est valable si vous voulez assurer un enseignement de qualité.le 19/12/2017 à 23:07 -
yannick.copinMembre habituéAvant de me faire allumer plus avant, je voudrais que les choses soient bien claires. Je n'ai rien demandé à personne: l'équipe de developpez.net m'a contacté pour mettre en ligne le cours de python (http://informatique-python.readthedocs.io/) que j'enseigne depuis quelques années. Je fournis donc ce matériel pédagogique à la communauté as it is: si vous avez des commentaires cordiaux et constructifs, ils sont les bienvenus; si vous avez des problèmes philosophiques avec mes méthodes d'enseignement, ma façon de coder ou le choix Python 2/3, ne perdez pas votre temps à me crier dessus.le 19/12/2017 à 23:49
-
marco056Membre chevronnéBonjour,
J'ai commencé à enseigner la programmation à la même époque.
Mes collègues et moi avons suivi une formation en python2 mais nous avons décidé d'enseigner la version 3 tout de suite.
Mon premier message indiquait un non intérêt pour cette version : je ne regarderai pas votre tuto parce qu'il est en python2.
Après, on peut quand même vous remercier de mettre à dispo ce cours (même s'il ne servira pas à grand monde et que je ne pourrai pas le conseiller à mes étudiants).
martopioche a raison sur le fond : sur la forme, on peut discuter
Bonnes fêtes de fin d'année à tous et toutesle 20/12/2017 à 7:38 -
MalickCommunity ManagerSalut à tous,
Merci pour vos différents retours.
Cela dit, j'ai moi-même contacté Yannick pour publier son cours, et à mon avis c'est toujours un plus pour ceux qui veulent s'initier à Python, d'autant plus que certains ne sont pas encore passé à Python 3.
Sinon, je remercie encore Yannick pour son tutoriel.le 20/12/2017 à 11:38 -
Julien NMembre éprouvéBonjour,
Votre tuto est concis, mais assez complet. Pas mal du tout! J'ai une interrogation tout de fois. Pourquoi Python 2?
Sinon sur la partie lecture/écriture fichier, même si je comprends la pédagogie derrière le choix open + close, si je devais ne mettre qu'un exemple je choisirais de le faire avec with :Code : 1
2
3
4outfile = open("carres.dat", 'w') for i in range(1, 10): outfile.write("{} {}\n".format(i, i**2)) outfile.close()
Code : 1
2
3for i in range(1, 10): with open("carres.dat", "w") as outfile: outfile.write("{} {}\n".format(i, i**2))
Jle 19/12/2017 à 8:50 -
marco056Membre chevronnéJe suis assez d'accord et le fait que ce soit en python2 fait que je n'ai pas cherché si cela était vraiment bien élaboré.
Question à Julien N : avec ta méthode (que j'utilise assez souvent), le fichier n'est-il pas ouvert 9 fois (contre 1 sinon) ?le 19/12/2017 à 11:38 -
Julien NMembre éprouvéSi
. J'ai été un peu vite, il faudrait ouvrir le fichier avant la boucle... Code : 1
2
3with open("carres.dat", "w") as outfile: for i in range(1, 10): outfile.write("{} {}\n".format(i, i**2))
le 19/12/2017 à 11:46 -
yannick.copinMembre habituéBonjour, et merci pour vos commentaires.
C'est simple:
- raison historique: j'ai commencé ce cours en 2012, à l'époque de Python 3.2 encore considéré comme "préliminaire"
- raison pratique: les enseignements se font sur des machines de l'université dont je n'ai pas le contrôle, et qui sont nativement équipées de Python 2.7
Il est clair que le portage à Python 3 est nécessaire à terme, mais il ne me semble pas crucial pour une introduction à Python. J'aborde ces questions en Sec. II.K.1 (http://yannick-copin.developpez.com/...python#LII-K-1)
Il y a un certain nombre de fonctionnalités Python que je passe sous silence dans cette introduction (cf. Sec. II.K), dont la gestion de contexte (with) qui ne me semble pas primordiale dans une introduction.
Cordialement,
Yannickle 19/12/2017 à 17:52 -
marco056Membre chevronnéPas de souci quant à la qualité du travail.
De mon côté, c'est simplement inutilisable pour mon enseignement mais ce n'est pas bien grave.le 20/12/2017 à 11:33