No importa en que plataforma estés, ya que puedes desarrollar aplicaciones en Python desde Mac, Linux, Windows, o etc. por ser multiplataforma. Así mismo, si te preocupa su poder, te comento que empresas como Google, Yahoo, NASA, entre otras lo utilizan para desarrollar algunas de sus aplicaciones.
#3:
Ya podrían haber meneado el cursillo directamente en lugar del articulo del blog. Existe un libro sobre pyhon que también esta muy bien http://es.diveintopython.org/
#2 No hacen falta diccionarios, yo lo hago así:
if opcion==1:
print "opcion1"
elif opcion==2:
print "opcion2"
elif opcion==3:
print "opcion3"
else:
print "esto seria el default en un switch"
PD:Veo que meneame se come las tabulaciones/espacios(una de las cosas que en su momento no entendía de Python)
#7:
A primera vista, la guia está bien, pero no respeta algunos estándares de la programación en Python (definidas en el PEP8), como por ejemplo el espaciado entre operadores:
Ya podrían haber meneado el cursillo directamente en lugar del articulo del blog. Existe un libro sobre pyhon que también esta muy bien http://es.diveintopython.org/
#2 No hacen falta diccionarios, yo lo hago así:
if opcion==1:
print "opcion1"
elif opcion==2:
print "opcion2"
elif opcion==3:
print "opcion3"
else:
print "esto seria el default en un switch"
PD:Veo que meneame se come las tabulaciones/espacios(una de las cosas que en su momento no entendía de Python)
A primera vista, la guia está bien, pero no respeta algunos estándares de la programación en Python (definidas en el PEP8), como por ejemplo el espaciado entre operadores:
Adjunto pantallazo de mi entorno de trabajo ahora mismo (desenfocado, como entenderás). Es del primer día de una web para una multinacional, con lo que el código aun no anda muy allá. Uso Vim 6 horas al día (+2 de ssh en servidores normalmente) y en mi empresa hacemos proyectos a un nivel bastante alto. Con Vim tengo los ctags de Zend Framework, que es lo que más usamos, y es muy cómodo. Tengo programado un keybinding para hacer un commit de la raiz del proyecto activo, otro para hacer un update. Otro para comprobar la sintaxis del fichero que estoy editando, y mil cosas más. No veo porqué debería usar un IDE, la verdad.
Llevo más de 15 años programando y desde hace 2 sólo uso Vim. Y he pasado por Eclipse, Netbeans, Textmate, Notepad++, Visual Studio... Y no, lo siento pero no lo cambio. Quizás cuando estás "descubriendo" un lenguaje con un API bastante complejo como Java o C#, vale. Pero cuando te dedicas a trabajar, a ser productivo.
También lo uso para Python, Javascript, Java, ... Y vaya, cuando aprendes un lenguaje echas de menos Intellisense.
#28 ... ha recibido suficientes votos, lo que significa que tiene el interés necesario como para estar en portada.
De hecho pocos meneos son guardados en 'favoritos' para tantos usuarios como el presente.
Siempre se pueden hacer las cosas, ya sea repitiendo código o llenando todo de if y else. Se puede hacer usando alternativas como usar diccionarios, pero aún así, si acostumbras a llenar los programas de este tipo de sentencias, python es un poco pesado, por lo tanto tienes que aprender a hacer las cosas de otra manera.
Me pondré a ello a ver si logro aprender algo... pero soy un negado para estas cosas. Y creo que demasiado "viejo" para aprender a programar. Las matemáticas que aprendimos en aquellas escuelas no eran adecuadas... Pero este lenguaje me atrae
#2#3#4#6#7 Es que no tiene sentido hacer ese tipo de chorizos en Python, no es "pythonico", estais intentando usar Python transcribiendo directamente las estructuras de otros lenguajes, y en Python siempre hay otra forma más elegante, que dependerá del contexto.
Me encanta python, es increiblemente productivo y proporciona mecanismos de altisimo nivel que facilitan crear patrones e interfaces de usuario (PyGTK, reflexión, etc). Su manejo de cadenas es bestial, de lo mejor que he visto, pero sinceramente es muy deficiente en lo que respecta a rendimiento y eficiencia. Os recuerdo que los módulos de mejora de rendimiento no son multiplataforma.
#9 Los whiles y los fors tampoco hacen falta con recurisvidad y ifs se puede programar lo que quieras.
Pero lo de que no hacían falta los diccionarios me refería a para hacer el switch que dice #2 y realmente no me preocupa perder el switch a cambio de los iteradores y la gestion de arrays de Python
#35 Seguro que hay formas mas eficientes para hacerlo, pero las listas de python tienen el método de ordenación .sort() por lo que con una sola linea se puede hacer ( y ademas funcionara en cualquier ordenador).Otra cosa sera la eficiencia pero no creo que te importe mucho la eficiencia si quieres implementar el método de la burbuja
El enlace http://dirtsimple.org/2004/12/python-is-not-java.html es un poco antiguo pero seguro que a alguien le servirá. Cada lenguaje tiene su propia manera de pensarse, si intentamos programar como en Java (o como en PHP) en Python no estaremos aprovechando su potencia.
Como todo lenguaje Python necesita un tiempo para que podamos adaptar nuestras estructuras mentales a la manera que tiene el lenguaje de hacer las cosas. Una cosa es conocer la sintaxis y otra los trucos del oficio
El diccionario os garantiza que el if-else if-else if se resuelve en un orden temporal constante O(1), así que si la memoria os da igual, es recomendable utilizarlo por eficiencia. Además, siempre podéis almacenar funciones en el valor de la tupla, con lo que quedaría algo así:
diccionario[key]()
De este modo se ejecutaría la función asociada a la clave "key", y os olvidáis de identación, if cuasi-infinitos y demás.
#15 Siempre pasa igual, programadores independentistas con sus lenguajes cooficiales dejando en segundo plano el Castellano, ¡exijo mi derecho constitucional a programar en Castellano!
#13 podrías pasarme el código de ordenación de un array de 150.000 posiciones por el método de la burbuja pliiiiis? Con ifs y recursividad. Código que funcione en cualquier ordenador... (no vas a sudar tinta ni nada...)
#40 El stack overflow no lo da porque te quedes sin memoria.. es la pila de invocación a llamadas lo que tiene un tamaño finito, muy pequeño y muy bien vigilado...
Para la ordenación en burbuja se necesitan 2 bucles anidados de modo que la cantidad de llamadas recursivas que se iban a hacer iban a ser bastante significativas.. nada tiene que ver con tener en memoria 140.000 enteros ( 4 octetos x entero = unos míseros 500kb si no lo he calculado mal)
Además, aunque le apliques un "divide y vencerás" primero, cosa que ya no sería burbuja de alguna forma te vas a tener que recorrer por cojones 140.000 registros, porque en el mejor de los casos, te vas a quedar dividiendo hasta tener dos arrays de 75.000 registros que tendrás que ordenar mutuamente...
yo sigo sin verlo.
#41 el módulo usa whiles estamos teorizando sobre la necesidad o no de bucles... a parte, que hacer una ordenación en burbuja recursivamente es la peor idea de la historia de las ideas... dudo mucho que haya un módulo de eso X_D
#50 Soy admin de sistemas y solo uso vim, python y perl, y ssh claro, para mi es el editor más comodo (entre comillas) porque llevo usandolo 9 años, aprendí a usarlo en mi primer curro y ya no uso otro, intente aprender emacs pero tuve un esguince en la segunda falange del dedo anular intentando hacer una combinación de teclas
A mi me encantó Python hasta que descubrí que no tenia switch y cases, y que había que hacerlo con diccionarios y armar una buena... Eso me mató!!
Luego le he ido pillando el truco y la verdad es que es facilísimo, si tienes un error te lo dice directamente, no como java o como C que tienes que revisar linea por linea.
#6 No me refería a eso. Me refería a cuando quieres "olvidarte" del break a cosa hecha, y cuando se trata de 10 o mas comparaciones. Si lo haces con if te sale mucho mas largo.
#12 Eso lo se ahora, pero cuando empecé a aprender python casi abandono por esas cosillas.
Joer, este tipo de guías no deberían ser publicadas asi a la torera, que luego la gente corriente va a pensar que es facilísimo esto de la programación. Como sigamos asi, los informáticos solo serviremos para arreglar windows...
Conozco unos cuantos informaticos (entre los que me incluyo) que, acostumbrados a programar en C++, se les abrio el cielo cuando descubrieron python. Cierto es que no es tan eficiente, pero es infinitamente mas comodo. Larga vida a Python!
#c-24" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/1376509/order/24">#24 Pues más parecido a C++ será C#.. que está actualizado y es mucho más sencillo de usar y ademas me da de comer jeje
#21 Deberías plantearte usar otra cosa, yo también he intentado usar el Vim para trabajar y cualquier IDE ahora mismo resulta más cómodo que usar Vim, aunque para ciertas operaciones lo uso, pero para usar como editor "base" es incomodo.
Nosotros lo usamos el segundo semestre el TEC SSC en Costa Rica para la carrera de Ingeniería en Computación. El manual nos sirvió aunque hacen falta otros ejercicios adicionales con que practicar.
Los detalles técnicos del lenguaje están muy bien explicados.
Comentarios
Lo primero es verse la vida de Brian.
Después programar "¡hola mundo!"
Ya podrían haber meneado el cursillo directamente en lugar del articulo del blog. Existe un libro sobre pyhon que también esta muy bien http://es.diveintopython.org/
#2 No hacen falta diccionarios, yo lo hago así:
if opcion==1:
print "opcion1"
elif opcion==2:
print "opcion2"
elif opcion==3:
print "opcion3"
else:
print "esto seria el default en un switch"
PD:Veo que meneame se come las tabulaciones/espacios(una de las cosas que en su momento no entendía de Python)
Viene al caso:
http://xkcd.com/353/
El mejor chiste sobre python...
http://bash.org/?400459
A primera vista, la guia está bien, pero no respeta algunos estándares de la programación en Python (definidas en el PEP8), como por ejemplo el espaciado entre operadores:
url1=URL('http://www.google.com.ar
Joder... ¿y no es más fácil que los ordenadores aprendan de una vez por todas el castellano?
...
#3 y tampoco necesitas whiles, fors etc... con un simple goto y un if lo tienes hecho!!
Ni clases, ¿quién quiere clases? se pueden sustituir por registros...
#c-47" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/1376509/order/47">#47 Challenge accepted!
Adjunto pantallazo de mi entorno de trabajo ahora mismo (desenfocado, como entenderás). Es del primer día de una web para una multinacional, con lo que el código aun no anda muy allá. Uso Vim 6 horas al día (+2 de ssh en servidores normalmente) y en mi empresa hacemos proyectos a un nivel bastante alto. Con Vim tengo los ctags de Zend Framework, que es lo que más usamos, y es muy cómodo. Tengo programado un keybinding para hacer un commit de la raiz del proyecto activo, otro para hacer un update. Otro para comprobar la sintaxis del fichero que estoy editando, y mil cosas más. No veo porqué debería usar un IDE, la verdad.
Llevo más de 15 años programando y desde hace 2 sólo uso Vim. Y he pasado por Eclipse, Netbeans, Textmate, Notepad++, Visual Studio... Y no, lo siento pero no lo cambio. Quizás cuando estás "descubriendo" un lenguaje con un API bastante complejo como Java o C#, vale. Pero cuando te dedicas a trabajar, a ser productivo.
También lo uso para Python, Javascript, Java, ... Y vaya, cuando aprendes un lenguaje echas de menos Intellisense.
#28 ... ha recibido suficientes votos, lo que significa que tiene el interés necesario como para estar en portada.
De hecho pocos meneos son guardados en 'favoritos' para tantos usuarios como el presente.
#3 Eso es el equivalente a
case a:
comando;
break;
case b:
comando;
break;
pero y el equivalente a ... ?
case a:
comando;
case b:
comando;
break;
Siempre se pueden hacer las cosas, ya sea repitiendo código o llenando todo de if y else. Se puede hacer usando alternativas como usar diccionarios, pero aún así, si acostumbras a llenar los programas de este tipo de sentencias, python es un poco pesado, por lo tanto tienes que aprender a hacer las cosas de otra manera.
#4 if-elif-else es más compacto y más seguro (el tipico olvido del break;)
if op==a or op==b:
comando;
2 líneas.
Con switch-case: 6 líneas. ¡¡¡ El triple !!!
#19 Yo hago las páginas con Vim y te aseguro que lucen mucho más. Qué tendrá que ver el editor...
Me pondré a ello a ver si logro aprender algo... pero soy un negado para estas cosas. Y creo que demasiado "viejo" para aprender a programar. Las matemáticas que aprendimos en aquellas escuelas no eran adecuadas... Pero este lenguaje me atrae
#11 en español
http://es.xkcd.com/strips/python/
#2 #3 #4 #6 #7 Es que no tiene sentido hacer ese tipo de chorizos en Python, no es "pythonico", estais intentando usar Python transcribiendo directamente las estructuras de otros lenguajes, y en Python siempre hay otra forma más elegante, que dependerá del contexto.
Versión 2
Python va por la 3
#34 dive into python 3 http://diveintopython3.org/
#35 Cachis, yo tengo uno que ordena un array de 140.000 posiciones.
Me encanta python, es increiblemente productivo y proporciona mecanismos de altisimo nivel que facilitan crear patrones e interfaces de usuario (PyGTK, reflexión, etc). Su manejo de cadenas es bestial, de lo mejor que he visto, pero sinceramente es muy deficiente en lo que respecta a rendimiento y eficiencia. Os recuerdo que los módulos de mejora de rendimiento no son multiplataforma.
#19 todo el mundo sabe que a la hora de hacer una Web estéticamente bonita el editor es lo más importante.
#9 Los whiles y los fors tampoco hacen falta con recurisvidad y ifs se puede programar lo que quieras.
Pero lo de que no hacían falta los diccionarios me refería a para hacer el switch que dice #2 y realmente no me preocupa perder el switch a cambio de los iteradores y la gestion de arrays de Python
#15 Programación declarativa, es la programación más cercana a "cómo pensamos"
#35 Seguro que hay formas mas eficientes para hacerlo, pero las listas de python tienen el método de ordenación .sort() por lo que con una sola linea se puede hacer ( y ademas funcionara en cualquier ordenador).Otra cosa sera la eficiencia pero no creo que te importe mucho la eficiencia si quieres implementar el método de la burbuja
#12 ¿Por qué me mencionas a mi? ¿Que chorizo he puesto yo?
Un manual en portada?.
El lenguaje es interesante, pero cuál es la noticia, que hay miles de personas buscando este manual y google no lo mostraba en sus resultados? :P.
Yo estoy aprendiendo ahora, y he descubierto una página genial para practicar, con ejercicios, se llama singpath http://singpath.appspot.com/paths/11020
Buf, buf,... llego tarde pero aquí está:
El enlace http://dirtsimple.org/2004/12/python-is-not-java.html es un poco antiguo pero seguro que a alguien le servirá. Cada lenguaje tiene su propia manera de pensarse, si intentamos programar como en Java (o como en PHP) en Python no estaremos aprovechando su potencia.
Como todo lenguaje Python necesita un tiempo para que podamos adaptar nuestras estructuras mentales a la manera que tiene el lenguaje de hacer las cosas. Una cosa es conocer la sintaxis y otra los trucos del oficio
#37 LOOSER
http://xkcd.com/353/
#35 Para hacer ese tipo de mierdas hay modulos ya hechos
#43 Yo para hacer eso crearia un array resultado al que le iria añadiendo elementos ordenandolos tras leerlos al añadirlos...
De ese modo no haria falta q mas que un bucle anidado y un array de 500Kb en memoria...
Python mola
El diccionario os garantiza que el if-else if-else if se resuelve en un orden temporal constante O(1), así que si la memoria os da igual, es recomendable utilizarlo por eficiencia. Además, siempre podéis almacenar funciones en el valor de la tupla, con lo que quedaría algo así:
diccionario[key]()
De este modo se ejecutaría la función asociada a la clave "key", y os olvidáis de identación, if cuasi-infinitos y demás.
Mira, http://www.python.org/~guido/ , uno que sigue haciendo las páginas con el VI
#15 Siempre pasa igual, programadores independentistas con sus lenguajes cooficiales dejando en segundo plano el Castellano, ¡exijo mi derecho constitucional a programar en Castellano!
¿Y algún manual como este pero para Python 3?
#13 podrías pasarme el código de ordenación de un array de 150.000 posiciones por el método de la burbuja pliiiiis? Con ifs y recursividad. Código que funcione en cualquier ordenador... (no vas a sudar tinta ni nada...)
#36 Explicame cómo evitas el stack overflow pliiiiiiiiiiis
#40 El stack overflow no lo da porque te quedes sin memoria.. es la pila de invocación a llamadas lo que tiene un tamaño finito, muy pequeño y muy bien vigilado...
Para la ordenación en burbuja se necesitan 2 bucles anidados de modo que la cantidad de llamadas recursivas que se iban a hacer iban a ser bastante significativas.. nada tiene que ver con tener en memoria 140.000 enteros ( 4 octetos x entero = unos míseros 500kb si no lo he calculado mal)
Además, aunque le apliques un "divide y vencerás" primero, cosa que ya no sería burbuja de alguna forma te vas a tener que recorrer por cojones 140.000 registros, porque en el mejor de los casos, te vas a quedar dividiendo hasta tener dos arrays de 75.000 registros que tendrás que ordenar mutuamente...
yo sigo sin verlo.
#41 el módulo usa whiles estamos teorizando sobre la necesidad o no de bucles... a parte, que hacer una ordenación en burbuja recursivamente es la peor idea de la historia de las ideas... dudo mucho que haya un módulo de eso X_D
#45 Ya pero tú lo has dicho... un bucle... estamos hablando de no usar bucles
#50 Soy admin de sistemas y solo uso vim, python y perl, y ssh claro, para mi es el editor más comodo (entre comillas) porque llevo usandolo 9 años, aprendí a usarlo en mi primer curro y ya no uso otro, intente aprender emacs pero tuve un esguince en la segunda falange del dedo anular intentando hacer una combinación de teclas
A mi me encantó Python hasta que descubrí que no tenia switch y cases, y que había que hacerlo con diccionarios y armar una buena... Eso me mató!!
Luego le he ido pillando el truco y la verdad es que es facilísimo, si tienes un error te lo dice directamente, no como java o como C que tienes que revisar linea por linea.
#6 No me refería a eso. Me refería a cuando quieres "olvidarte" del break a cosa hecha, y cuando se trata de 10 o mas comparaciones. Si lo haces con if te sale mucho mas largo.
#12 Eso lo se ahora, pero cuando empecé a aprender python casi abandono por esas cosillas.
from __future__ import braces
File "", line 1
SyntaxError: not a chance
Joer, este tipo de guías no deberían ser publicadas asi a la torera, que luego la gente corriente va a pensar que es facilísimo esto de la programación. Como sigamos asi, los informáticos solo serviremos para arreglar windows...
Oh wait!
Conozco unos cuantos informaticos (entre los que me incluyo) que, acostumbrados a programar en C++, se les abrio el cielo cuando descubrieron python. Cierto es que no es tan eficiente, pero es infinitamente mas comodo. Larga vida a Python!
Cual es la ventaja de Phyton?
#c-24" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/1376509/order/24">#24 Pues más parecido a C++ será C#.. que está actualizado y es mucho más sencillo de usar y ademas me da de comer jeje
Python es un lenguaje muy potente, es rápido y flexible. Pero me quedo con Perl
Relacionado: el libro "Introducción a la programación con Python", de la Universitat Jaume I. Excelente punto de partida, de lo mejor que he leído.
Genial, me viene como anillo al dedo, estoy empezando la Uni y iniciándome en este mundillo y lo estoy haciendo con Python.
C++ > Objetive-C / C# >>>>>>>>>>>>>>>> El resto.
PD: Deal with it
#38 Solo tengo en memoria 10.000 cada vez y el resto lo tengo en fichero.
PD: No lo tengo con 140.000, pero esa puede ser una forma de hacarlo.
#21 Deberías plantearte usar otra cosa, yo también he intentado usar el Vim para trabajar y cualquier IDE ahora mismo resulta más cómodo que usar Vim, aunque para ciertas operaciones lo uso, pero para usar como editor "base" es incomodo.
P.D.: Aunque la verdad es que no te creo.
Yo estoy siguiendo este curso, está muy bien:
http://www.beginpython.com/
Cada vez los ejercicios son mas difíciles y aprendes rápido.
#48 You win this time.
No sé si de verdad trabajarás así pero al menos te lo has currado.
Nosotros lo usamos el segundo semestre el TEC SSC en Costa Rica para la carrera de Ingeniería en Computación. El manual nos sirvió aunque hacen falta otros ejercicios adicionales con que practicar.
Los detalles técnicos del lenguaje están muy bien explicados.
qué python, el 2 o el 3? porque el 3 está de un verde ...
Aqui otra web para aprender: http://pythonya.appspot.com/
cojo sitio
Y esto esta en portada por que...