danvader99 escribió: ↑Dom 27 Feb, 2022 8:34 pm
una pregunta mas paco
cuando en Python hace algo de este estilo
For x=1 to 14000000
for y=1 to 1000
if lo que sea= lo que sea then
...mas cosas.....por ejemplo meter matrices(arrays),etc
end if
next y
next x
¿Lo haces mas o menos así? o hay algún diccionario, api, función directa en definitiva algo que haga que los bucles anidados vayan mas rápidos o simplemente es que pynthon es algo mas rápido que VBA, digo algo porque si probablemente sea algo mas rápido pero no creo que sea significativamente lo suficientemente mas rápido para decir guauuu que diferencia tan brutal ¿o si?
Un saludo
Hola,
los bucles son muy parecidos a VBA. Por ejemplo, un bucle "for":
for x_dsv in vector_dsv:
resultado_dsv = resultado_dsv + x_dsv
return(round(resultado_dsv,2))
(tan solo hay que añadir tabulador en la 2a y 3a líneas)
el "if" es:
if a==10:
entonces hace esto
else:
entonces hace esto otro
(tan solo hay que añadir tabulador en la 2a y 4a líneas)
Respecto la diferencia de velocidad. He buscado en internet, y veo la dos opiniones buscando "which is faster python vba":
In most operations, it's undeniable that VBA is faster than Python. From repeated observations from using both plain VBA and plain Python, it's obvious that Python is about two to three times slower than VBA. However, this is because both are not called directly from their native environment.
Y:
3. When Python calls compiled code from libraries such as Numpy and Scipy it can be hugely faster than the same operations in VBA (50-100 times faster).
En mi opinión, Python es mucho más rápido y sí merece la pena pasarse a él. Hace mucho tiempo que no uso VBA y no tengo nada para que me sirva de referencia.
Pero también te digo que va a depender del equipo/Sistema operativo que uses. Yo tengo un macbook (antiguo, pero con 16G RAM). Recuerdo que con este ordenador el VBA me iba bastante más lento que cuando usaba un portátil con windows. Y Python está incluido en el Sistema Operativo del mac. Y Python me va mucho más rápido que VBA.
Sin embargo, cuando uso Python para windows en un portátil con Windows, me va mas lento que con el mac. Pero, en mi opinión, más rápido que VBA.
Si quieres, me pasas un bucle anidado y lo ejecuto y comparamos.
Dicho todo esto, te añado que soy autodidacta para estos temas, no puedo ir mucho más allá de lo que utilizo.
Saludos,
Paco