415 meneos
15859 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
Comentarios destacados:               
#1   Lo primero es verse la vida de Brian.

Después programar "¡hola mundo!" xD
#1   Lo primero es verse la vida de Brian.

Después programar "¡hola mundo!" xD
votos: 32    karma: 286
#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   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   #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
#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
#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
#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
#16   #12 ¿Por qué me mencionas a mi? ¿Que chorizo he puesto yo? xD
votos: 0    karma: 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
#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
#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
#38   #36 Explicame cómo evitas el stack overflow pliiiiiiiiiiis
votos: 0    karma: 7
#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…   » ver todo el comentario
votos: 0    karma: 7
#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
#46   #45 Ya pero tú lo has dicho... un bucle... estamos hablando de no usar bucles :-P
votos: 0    karma: 7
#41   #35 Para hacer ese tipo de mierdas hay modulos ya hechos :-)
votos: 0    karma: 8
 *   dreierfahrer dreierfahrer
#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
#5   Viene al caso:

xkcd.com/353/
votos: 8    karma: 80
#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   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
#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   El mejor chiste sobre python... xD xD xD

bash.org/?400459
votos: 8    karma: 56
votos: 1    karma: 18
#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
#18   #15 Programación declarativa, es la programación más cercana a "cómo pensamos"
votos: 0    karma: 10
#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
#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
#19   Mira, www.python.org/~guido/ , uno que sigue haciendo las páginas con el VI xD
votos: 0    karma: 7
#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
#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
#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…  media   » ver todo el comentario
votos: 3    karma: 32
 *   ktzar ktzar
#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
#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   #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
#20   from __future__ import braces
File "<stdin>", line 1
SyntaxError: not a chance

:-)
votos: 0    karma: 6
#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   Versión 2 :-S

Python va por la 3
votos: 1    karma: 16
#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
#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
#25   Cual es la ventaja de Phyton?
votos: 0    karma: 6
#28   Y esto esta en portada por que...
votos: 2    karma: 2
#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
#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
#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
#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
#34   ¿Y algún manual como este pero para Python 3?
votos: 0    karma: 7
#44   #34 dive into python 3 diveintopython3.org/
votos: 1    karma: 16
#37   C++ > Objetive-C / C# >>>>>>>>>>>>>>>> El resto.

PD: Deal with it xD
votos: 0    karma: 6
 *   --279686--
#39   #37 LOOSER

xkcd.com/353/
votos: 0    karma: 8
#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
#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
#55   Buf, buf,... llego tarde pero aquí está:  media
votos: 0    karma: 9
 *   jacobino jacobino
#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
#58   qué python, el 2 o el 3? porque el 3 está de un verde ...
votos: 0    karma: 6
#59   Aqui otra web para aprender: pythonya.appspot.com/
votos: 0    karma: 6
#60   cojo sitio
votos: 0    karma: 6
comentarios cerrados

menéame