Un extrait du code de pip :
Code : Tout sélectionner
def _package_versions(self, links, search):
result = []
for link in self._sort_links(links):
v = self._link_package_versions(link, search)
if v is not None:
result.append(v)
return result
Où l'on reconnaît bien sûr la structure générale
naturelle de construction d'une liste,
même en Python.
Bien que j'aime beaucoup ce document, encore une fois, ce n'est pas la première chose que j'exposerais à des débutants en informatique. Il s'agit d'astuces et de détails (importants certes) pour écrire du code plus rapide/efficace. Aucun intérêt pour un débutant, il est bien temps d'apprendre cela après, une fois que l'on maîtrise la structure générale.
fakbill a écrit :Je comprends bien que le but n'est pas d'en faire des experts en python mais on je pense qu'on peut leur donner les bons réflexes en python sans aucun overhead dans le cours.
C'est peut-être là où ce n'est pas si évident. Vous voyez bien que de nombreux étudiants sur le forum comprennent très bien les listes en compréhension et de nombreuses constructions pythoniques. Mais pour les élèves avec plus de difficultés, introduire ces spécificités peut s'avérer contre productif, par exemple donner lieu à des incompréhensions du genre
Chacun son avis, le mien est que "donner les bons réflexes" ce n'est pas montrer très tôt les spécificités de Python, mais asseoir les bases de manière durable. Je trouve bien plus important, à titre très personnel, de donner "les bons réflexes" sur les noms de variables, les commentaires, etc.
fakbill a écrit :Ils devraient par exemple être convaincus au bout de deux ans qu'une telle fonction (lire un fichier txt dans une list/matrice) ne peut pas ne pas exister déjà toute faite en python.
On ne va pas reprendre ce débat. Je vous rappelle également que certains étudiants ont très bien pu faire toute la partie analyse numérique en Scilab et ne jamais avoir entendu parlé de numpy.