En un problema que resolvi recientemente en el proyecto euler, descubrí
un algoritmo sencillo para calcular numeros primos: la criba de
eratóstenes El cual inicialmente traduje a python como:
1 def eratostenes(m):
2 primos = set(range(2,m+1))
3 for i in xrange(2,int(sqrt(m))+1):
4 if i in primos:
5 for j in xrange(2,m/i+1):
6 primos.discard(i*j)
7
8 return primos
No comento el código por …continue.
En el weekly python newsletter, enlazaban al problema de sacar la
suma máxima, dado un árbol y utilizando el movimiento del clásico
videojuego qBert (no del todo cierto porque qBert sí podía subir,
pero eso son tecnicismos). El árbol en concreto sería así:
chrismasTree = [
[75],
[95,64],
[17,47,82],
[18,35,87,10],
…continue.
he decidido mejorar un poco el codigo de una de las funciones heredadas
de alguien que ni siquiera conozco (por suerte) y he decidido
convertirlo de
buf.write(" WHERE 1=1 ")
for col in to.pk:
buf.write( " AND " )
buf.write( col )
buf.write( " = %s" )
par.append( getattr( obj, to.map[ col ] ) )
a esto otro
buf.write("WHERE %s" % " AND ".join(["%s = %s" % (col,getattr(obj,to.map[col])) for col in to.pk])