lambdacode |
f = lambda x : x * x |
Liste utile pour bien débuter en Python, notamment lorsqu’on vient d’un autre langage.
Bluffé par cet outil de scripting dont les arguments sont des captures d’écrans. Vite, vite, on teste.
Yep, de retour sur ce blog-là. J’ai pas chômé, j’ai seulement pas trouvé le temps de mettre en ligne mes derniers développements (peut-être très bientôt).
N’empêche, ce très utile article sur le problème d’un vrai shuffle (et globalement, ça dit : “Attention au piège des algorithmes naïfs”) vaut bien 12 de mes posts.
Grâce à monsieur Julien Bernet (frère de ce Bernet-là), me voilà pris dans la spirale de la résolution des problèmes proposés par le Projet Euler.
Ma résolution du premier (et plutôt trivial) problème, en Python :
#coding : utf-8 """ Solutions aux problèmes du Project Euler http://projecteuler.net/index.php?section=problems """ class Skeleton(): """Squelette pour les classes de résultat""" def __init__(self,label): print("Label : %s" %label) def printSol(self): print("Solution : %d" %self.res) class PE1(Skeleton): """Solution problème 1""" def addMult35(self): self.res = 0 for i in range(0,1000): if i % 3 == 0: self.res += i elif i % 5 == 0: self.res += i class PE2(): """Solution problème 2""" pass if __name__ == "__main__": label1 = "Add all the natural numbers below one thousand that are multiples of 3 or 5." p1 = PE1(label1) p1.addMult35() p1.printSol()
et en F# :
(*Solution au problème n°1*)
let addMult35 =
let l =
[
for i in [0..1000] do
if i%3 = 0 then
yield i
elif i%5 = 0 do
yield i
]
Seq.sum l
[[EDIT de 15h45 ]]
Encore plus élégant, en Python :
sum([x for x in range(0,1001) if x%3==0 or x%5==0])
Le code d’un petit utilitaire de création de mot de passe en javascript, avec jQuery et l’API Google de visualisation.
Le résultat ici (avec quelques petites modifs) : http://bksabir.appspot.com/getpass
Je vérifie chaque semaine que les sauvegardes de nos sites web se sont bien déroulées. Jusqu’à présent, je faisais ça manuellement, en me connectant sur le serveur et en vérifiant bien que les fichiers de sauvegarde se créaient. Boring.
Hop, hop, hop, un petit script Python pour automatiser tout ça.
C’est bien pratique, mais un peu bourrin, il faudra notamment que j’optimise la partie de vérification des dossiers (peut-être avec un peu de programmation fonctionnelle ?).
Depuis début septembre, je donne des TDs de Python à l’ENSAE.
Voici un sujet simple proposé par le professeur de la matière associée aux TDs, Xavier Dupré.
Et voici ma solution.
Une introduction à Haskell joliment faite (et puis l’éléphant est rigolo).
Je suis en ce moment le cours d’Erik Meijer sur Haskell et la programmation fonctionnelle, et je suis agréablement surpris par l’élégance de ce langage. Voici par exemple la définition d’une fonction factorielle :
factorial n = product [1..n]
avec :
factorial n : ma fonction
product : une fonction native qui multiplie les termes d’une liste
[1..n] : un raccourci syntaxique qui permet de produire une liste de n éléments, [1,2,3,…,n]
[Petite reprise en douceur après une longue hibernation]
Apprendre à coder en Python comme dans n’importe quel autre langage de programmation, ça veut dire lire beaucoup de code. Et dans mes lectures, je suis souvent tombé sur ces deux mots clés passés en argument de fonctions : *args et **kwargs.
Ce petit post explique rapidement ce qu’ils représentent et comment on les utilisent.