415 meneos
14979 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.
etiquetas: python, programacion, aprender, curso, curso de programacion, aprendizaje
usuarios: 208   anónimos: 207   negativos: 4  
60comentarios mnm karma: 529
  1. #1   Lo primero es verse la vida de Brian.

    Después programar "¡hola mundo!" xD
    votos: 32    karma: 286
  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.
    votos: 0    karma: 6
    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)
    votos: 9    karma: 91
     *   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.
    votos: 2    karma: 25
    snd snd
  5. #5   Viene al caso:

    xkcd.com/353/
    votos: 8    karma: 80
  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 !!!
    votos: 6    karma: 25
  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.
    votos: 5    karma: 54
  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.
    votos: 0    karma: 7
  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...
    votos: 4    karma: 41
  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 :-)
    votos: 1    karma: 22
  11. #11   El mejor chiste sobre python... xD xD xD

    bash.org/?400459
    votos: 8    karma: 56
  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.
    votos: 1    karma: 17
  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
    votos: 0    karma: 10
    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.
    votos: 0    karma: 6
    snd snd
  15. #15   Joder... ¿y no es más fácil que los ordenadores aprendan de una vez por todas el castellano?
    ...

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

    :-)
    votos: 0    karma: 6
  21. #21   #19 Yo hago las páginas con Vim y te aseguro que lucen mucho más. Qué tendrá que ver el editor...
    votos: 2    karma: 25
     *   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!
    votos: 0    karma: 6
  23. #23   Versión 2 :-S

    Python va por la 3
    votos: 1    karma: 16
  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!
    votos: 0    karma: 6
    xcu xcu
  25. #25   Cual es la ventaja de Phyton?
    votos: 0    karma: 6
  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
    votos: 0    karma: 6
     *   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!
    votos: 0    karma: 7
  28. #28   Y esto esta en portada por que...
    votos: 2    karma: 2
  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.
    votos: 2    karma: 26
     *   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.
    votos: 0    karma: 6
  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.
    votos: 0    karma: 6
  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.
    votos: 3    karma: 9
  33. #34   ¿Y algún manual como este pero para Python 3?
    votos: 0    karma: 7
  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...)
    votos: 0    karma: 7
  35. #37   C++ > Objetive-C / C# >>>>>>>>>>>>>>>> El resto.

    PD: Deal with it xD
    votos: 0    karma: 6
     *   --279686-- --279686--
  36. #38   #36 Explicame cómo evitas el stack overflow pliiiiiiiiiiis
    votos: 0    karma: 7
  37. #39   #37 LOOSER

    xkcd.com/353/
    votos: 0    karma: 8
  38. #41   #35 Para hacer ese tipo de mierdas hay modulos ya hechos :-)
    votos: 0    karma: 8
     *   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
    votos: 0    karma: 9
     *   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
    votos: 0    karma: 7
  41. #44   #34 dive into python 3 diveintopython3.org/
    votos: 1    karma: 16
  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
    votos: 0    karma: 8
     *   dreierfahrer dreierfahrer
  43. #46   #45 Ya pero tú lo has dicho... un bucle... estamos hablando de no usar bucles :-P
    votos: 0    karma: 7
  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.
    votos: 0    karma: 6
  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
    votos: 3    karma: 32
     *   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.
    votos: 0    karma: 6
  47. #50   #48 You win this time.
    No sé si de verdad trabajarás así pero al menos te lo has currado.
    votos: 0    karma: 6
  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.
    votos: 1    karma: 12
     *   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
    votos: 0    karma: 10
    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
    votos: 0    karma: 7
  51. votos: 1    karma: 18
  52. #55   Buf, buf,... llego tarde pero aquí está:  media
    votos: 0    karma: 9
     *   jacobino jacobino
  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 :-)
    votos: 0    karma: 9
  54. #58   qué python, el 2 o el 3? porque el 3 está de un verde ...
    votos: 0    karma: 6
  55. #59   Aqui otra web para aprender: pythonya.appspot.com/
    votos: 0    karma: 6
  56. #60   cojo sitio
    votos: 0    karma: 6
comentarios cerrados

menéame