IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Apprendre l'analyse scientifique avec Python
Un tutoriel de Yannick Copin

Le , par yannick.copin

285PARTAGES

14  0 
Chers membres du club,

J'ai le plaisir de vous présenter ce tutoriel  :

Apprendre l'analyse scientifique avec Python
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.
Bonne lecture

Retrouvez les meilleurs cours et tutoriels pour apprendre Python.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de disedorgue
Expert éminent sénior https://www.developpez.com
Le 20/12/2017 à 11:16
Bonjour,

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 : Sélectionner tout
if ( i%3 !=0 )
n'est pas
Code : Sélectionner tout
if not i%3
Et faut arrêter de dire que python 2 est dépassé: il tourne encore beaucoup en entreprise. Python 3 n'est que très rarement installé de base sur un serveur à l'heure actuelle.

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...
3  0 
Avatar de martopioche
Membre éclairé https://www.developpez.com
Le 19/12/2017 à 23:07
Bonjour,

je vais me permettre de rebondir sur ces remarques quand au choix Python 2 qui sont, je vais être direct, inacceptables.

Citation Envoyé par yannick.copin Voir le message
raison historique: j'ai commencé ce cours en 2012, à l'époque de Python 3.2 encore considéré comme "préliminaire"
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
D'une part, vous ne pouvez sérieusement pas demander à avoir des machines à jour de moins de 6 ans ?

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. Car

Il est clair que le portage à Python 3 est nécessaire à terme, mais il ne me semble pas crucial pour une introduction à Python.
et bien si c'est pour de l'enseignement autre que l'archéologie des langages, si. Nous sommes bientôt en 2018, le support de Python 2 prends fin en 2020. Les dépendances principales commencent à abandonner le support de Python 2 (Django 2 sorti il y a quelques jours a ouvert ce bal). Vous parlez de Python scientifique, Numpy abandonnera le support de Python 2 en 2019, Scipy lui emboitera le pas

Alors non, c'est inacceptable aujourd'hui de lire du code Python avec un
Code : Sélectionner tout
print ""
au lieu d'un
Code : Sélectionner tout
print()
et toutes les autres incompatibilité Python 3. Oui, il va être compliqué d'expliquer pourquoi écrire
Code : Sélectionner tout
list(range(10))
vu que range en Python 2 génère une liste.

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 particulier ). Un
Code : Sélectionner tout
if (i%3 != 0)
avec des parenthèses redondantes qui peut se simplifier en
Code : Sélectionner tout
if not i % 3
et dans ce cas particulier en
Code : Sélectionner tout
for i in range(0, 10, 3)
… Ok, je sais, c'était là pour l'exemple du filtre de la liste en intension.

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é.
1  0 
Avatar de yannick.copin
Membre habitué https://www.developpez.com
Le 19/12/2017 à 23:49
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.
1  0 
Avatar de marco056
Membre chevronné https://www.developpez.com
Le 20/12/2017 à 7:38
Citation Envoyé par yannick.copin Voir le message
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.
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 toutes
1  0 
Avatar de Malick
Community Manager https://www.developpez.com
Le 20/12/2017 à 11:38
Salut à 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.
1  0 
Avatar de Julien N
Membre éprouvé https://www.developpez.com
Le 19/12/2017 à 8:50
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 : Sélectionner tout
1
2
3
4
outfile = open("carres.dat", 'w')
for i in range(1, 10):
    outfile.write("{}  {}\n".format(i, i**2))
outfile.close()
Devriendrait:
Code : Sélectionner tout
1
2
3
for i in range(1, 10):
    with open("carres.dat", "w") as outfile:
        outfile.write("{}  {}\n".format(i, i**2))
Ciao ciao

J
0  0 
Avatar de marco056
Membre chevronné https://www.developpez.com
Le 19/12/2017 à 11:38
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) ?
0  0 
Avatar de Julien N
Membre éprouvé https://www.developpez.com
Le 19/12/2017 à 11:46
Citation Envoyé par marco056 Voir le message
Question à Julien N : avec ta méthode (que j'utilise assez souvent), le fichier n'est-il pas ouvert 9 fois (contre 1 sinon) ?
Si . J'ai été un peu vite, il faudrait ouvrir le fichier avant la boucle...

Code : Sélectionner tout
1
2
3
with open("carres.dat", "w") as outfile:
    for i in range(1, 10):
        outfile.write("{}  {}\n".format(i, i**2))
0  0 
Avatar de yannick.copin
Membre habitué https://www.developpez.com
Le 19/12/2017 à 17:52
Bonjour, et merci pour vos commentaires.

Citation Envoyé par Julien N Voir le message

Votre tuto est concis, mais assez complet. Pas mal du tout! J'ai une interrogation tout de fois. Pourquoi Python 2?
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)

Citation Envoyé par Julien N Voir le message

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
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,

Yannick
0  0 
Avatar de marco056
Membre chevronné https://www.developpez.com
Le 20/12/2017 à 11:33
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.
0  0