415 meneos
12356 clics

Aprende Python desde cero [Guía completa]

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.

negativos: 4   usuarios: 208   anónimos: 207  
compartir:  twitter  facebook  tuenti  
  1. #1   Lo primero es verse la vida de Brian.

    Después programar "¡hola mundo!" xD
    286  votos: 32   link
    el 18-09-2011 18:10 UTC por alexwing alexwing
  2. #2   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  votos: 0   link
    el 18-09-2011 19:19 UTC por snd snd
  3. #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 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)
    91  votos: 9   link
    el 18-09-2011 19:46 UTC por sid sid
  4. #4   #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.
    25  votos: 2   link
    el 18-09-2011 20:50 UTC por snd snd
  5. #5   Viene al caso:

    xkcd.com/353/
    80  votos: 8   link
    el 19-09-2011 00:07 UTC por berzasnon berzasnon
  6. #6   #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 !!!
    25  votos: 6   link
    el 19-09-2011 08:48 UTC por PythonMan8 PythonMan8
  7. #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:

    url1=URL('http://www.google.com.ar','Google')

    Un poquito de por favor:

    url1 = URL('http://www.google.com.ar', 'Google')

    También abusa de imports absolutos cuando lo recomendable es hacerlos relativos... pero bueno para empezar no está malota.
    54  votos: 5   link
    el 19-09-2011 11:23 UTC por iRiku87 iRiku87
  8. #8   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.
    7  votos: 0   link
    el 19-09-2011 11:33 UTC por paranoid paranoid
  9. #9   #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...
    41  votos: 4   link
    el 19-09-2011 11:42 UTC por eddard eddard
  10. #10   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 :-)
    22  votos: 1   link
    el 19-09-2011 11:46 UTC por madremelian madremelian
  11. #11   El mejor chiste sobre python... xD xD xD

    bash.org/?400459
    56  votos: 8   link
    el 19-09-2011 11:48 UTC por hellodolly hellodolly
  12. #12   #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.
    17  votos: 1   link
    el 19-09-2011 11:49 UTC por oxelo oxelo
  13. #13   #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
    10  votos: 0   link
    el 19-09-2011 11:50 UTC por sid sid
  14. #14   #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.
    6  votos: 0   link
    el 19-09-2011 12:01 UTC por snd snd
  15. #15   Joder... ¿y no es más fácil que los ordenadores aprendan de una vez por todas el castellano?
    ...

    :-P
    42  votos: 4   link
    el 19-09-2011 12:02 UTC por Vermelnardo Vermelnardo
  16. #16   #12 ¿Por qué me mencionas a mi? ¿Que chorizo he puesto yo? xD
    9  votos: 0   link
    el 19-09-2011 12:09 UTC por iRiku87 iRiku87
  17. #17   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.
    14  votos: 1   link
    el 19-09-2011 12:10 UTC por ilninno ilninno
  18. #18   #15 Programación declarativa, es la programación más cercana a "cómo pensamos"
    10  votos: 0   link
    el 19-09-2011 12:12 UTC por KnOx KnOx
  19. #19   Mira, www.python.org/~guido/ , uno que sigue haciendo las páginas con el VI xD
    7  votos: 0   link
    el 19-09-2011 12:14 UTC por jsianes jsianes
  20. #20   from __future__ import braces
    File "<stdin>", line 1
    SyntaxError: not a chance

    :-)
    6  votos: 0   link
    el 19-09-2011 12:17 UTC por Rouman Rouman
  21. #21   #19 Yo hago las páginas con Vim y te aseguro que lucen mucho más. Qué tendrá que ver el editor...
    25  votos: 2   link
    el 19-09-2011 12:18 UTC por ktzar ktzar
  22. #22   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!
    6  votos: 0   link
    el 19-09-2011 12:18 UTC por bajoqueta bajoqueta
  23. #23   Versión 2 :-S

    Python va por la 3
    16  votos: 1   link
    el 19-09-2011 12:23 UTC por J.locke J.locke
  24. #24   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!
    6  votos: 0   link
    el 19-09-2011 12:25 UTC por xcu xcu
  25. #25   Cual es la ventaja de Phyton?
    6  votos: 0   link
    el 19-09-2011 12:26 UTC por jaumesala jaumesala
  26. #26   #24 Pues más parecido a C++ será C#.. que está actualizado y es mucho más sencillo de usar xD y ademas me da de comer jeje
    6  votos: 0   link
    el 19-09-2011 12:27 UTC por vicvic vicvic
  27. #27   #15 Siempre pasa igual, programadores independentistas con sus lenguajes cooficiales dejando en segundo plano el Castellano, ¡exijo mi derecho constitucional a programar en Castellano!
    7  votos: 0   link
    el 19-09-2011 12:28 UTC por Catalyst Catalyst
  28. #28   Y esto esta en portada por que...
    2  votos: 2   link
    el 19-09-2011 12:50 UTC por --166953-- --166953--
  29. #30   #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.
    26  votos: 2   link
    el 19-09-2011 12:58 UTC por Ketzal Ketzal
  30. #31   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.
    6  votos: 0   link
    el 19-09-2011 13:10 UTC por Annagul Annagul
  31. #32   Genial, me viene como anillo al dedo, estoy empezando la Uni y iniciándome en este mundillo y lo estoy haciendo con Python.
    6  votos: 0   link
    el 19-09-2011 13:12 UTC por Standby Standby
  32. #33   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.
    9  votos: 3   link
    el 19-09-2011 13:15 UTC por DEICIDE DEICIDE
  33. #34   ¿Y algún manual como este pero para Python 3?
    7  votos: 0   link
    el 19-09-2011 13:16 UTC por deros deros
  34. #35   #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...)
    7  votos: 0   link
    el 19-09-2011 13:33 UTC por eddard eddard
  35. #37   C++ > Objetive-C / C# >>>>>>>>>>>>>>>> El resto.

    PD: Deal with it xD
    6  votos: 0   link
    el 19-09-2011 13:39 UTC por --279686-- --279686--
  36. #38   #36 Explicame cómo evitas el stack overflow pliiiiiiiiiiis
    7  votos: 0   link
    el 19-09-2011 13:42 UTC por eddard eddard
  37. #39   #37 LOOSER

    xkcd.com/353/
    8  votos: 0   link
    el 19-09-2011 13:47 UTC por dreierfahrer dreierfahrer
  38. #41   #35 Para hacer ese tipo de mierdas hay modulos ya hechos :-)
    8  votos: 0   link
    el 19-09-2011 13:48 UTC por dreierfahrer dreierfahrer
  39. #42   Yo estoy aprendiendo ahora, y he descubierto una página genial para practicar, con ejercicios, se llama singpath singpath.appspot.com/paths/11020
    9  votos: 0   link
    el 19-09-2011 13:55 UTC por Ransa Ransa
  40. #43   #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 :-P 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 :-P 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
    7  votos: 0   link
    el 19-09-2011 13:56 UTC por eddard eddard
  41. #44   #34 dive into python 3 diveintopython3.org/
    16  votos: 1   link
    el 19-09-2011 13:58 UTC por Ransa Ransa
  42. #45   #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
    8  votos: 0   link
    el 19-09-2011 14:07 UTC por dreierfahrer dreierfahrer
  43. #46   #45 Ya pero tú lo has dicho... un bucle... estamos hablando de no usar bucles :-P
    7  votos: 0   link
    el 19-09-2011 15:19 UTC por eddard eddard
  44. #47   #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.
    6  votos: 0   link
    el 19-09-2011 15:43 UTC por Trublux Trublux
  45. #48   #47 Challenge accepted! :-P

    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.  media
    32  votos: 3   link
    el 19-09-2011 16:02 UTC por ktzar ktzar
  46. #49   Yo estoy siguiendo este curso, está muy bien:

    www.beginpython.com/

    Cada vez los ejercicios son mas difíciles y aprendes rápido.
    6  votos: 0   link
    el 19-09-2011 16:08 UTC por --161421-- --161421--
  47. #50   #48 You win this time.
    No sé si de verdad trabajarás así pero al menos te lo has currado.
    6  votos: 0   link
    el 19-09-2011 16:22 UTC por Trublux Trublux
  48. #51   #19 todo el mundo sabe que a la hora de hacer una Web estéticamente bonita el editor es lo más importante.
    12  votos: 1   link
    el 19-09-2011 16:33 UTC por Liber Liber
  49. #52   #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
    10  votos: 0   link
    el 19-09-2011 17:49 UTC por sid sid
  50. #53   #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 xD
    7  votos: 0   link
    el 19-09-2011 18:01 UTC por --234063-- --234063--
  51. 18  votos: 1   link
    el 19-09-2011 18:26 UTC por eldread eldread
  52. #55   Buf, buf,... llego tarde pero aquí está:  media
    9  votos: 0   link
    el 19-09-2011 18:32 UTC por python python
  53. #57   El enlace 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 :-)
    9  votos: 0   link
    el 19-09-2011 18:58 UTC por aaloy aaloy
  54. #58   qué python, el 2 o el 3? porque el 3 está de un verde ...
    6  votos: 0   link
    el 19-09-2011 21:29 UTC por estoestademostrado estoestademostrado
  55. #59   Aqui otra web para aprender: pythonya.appspot.com/
    6  votos: 0   link
    el 20-09-2011 09:24 UTC por xDarKSchneideR xDarKSchneideR
  56. #60   cojo sitio
    6  votos: 0   link
    el 21-09-2011 00:01 UTC por gantorys gantorys
comentarios cerrados

menéame