Aprender a Programar: Python

DantePD

Antes de ponerme a aprender Python he buscado los mejores materiales que hay en Internet. Estos son mis favoritos.

Udacity

http://www.udacity.com/overview/Course/cs101/CourseRev/apr2012
Idioma: Inglés (subtitulos en español en Youtube)
Precio: Gratis

Udacity es uno de esos sitios que van a cambiar el mundo. Junto a otras plataformas MOOC como Coursera o EdX, están ofreciendo cursos en muchas materias por profesores de las universidades mas importantes del mundo, como: MIT, Harvard, Berckley, Standford...

En este curso de Udacity, Introduction to Computer Science (CS101) enseñan a programar en Python desde cero. Lo que hace único a este curso es que aprendes a construir una buscador de internet desde 0.

Las lecciones son de 5/10 min de videos + montones de Quizes donde practicar lo que te enseñan.

Sin lugar a dudas mi preferido y el que estoy haciendo yo.

Codecademy

http://www.codecademy.com/tracks/python
Idioma: Inglés
Precio: Gratis

Te enseña a programar haciendo ejercicios sin parar. Cada lección es un texto explicándote algo junto a una maquina virtual donde programar lo que has enseñado.

El orden en el que te enseñan las cosas es muy correcto. 100% interactivo. Nada de vídeos.

Como extra te da logros y cuenta los días seguidos que estudias en su plataforma. Esto te da un poco mas de motivación para estudiar todos los días un poco.

Learn Python the Hard Way

http://learnpythonthehardway.org/
Idioma: Inglés
Precio: 0$ o 29$

Prepara tus dedos porque el creador de este curso te va a hacer teclear... y mucho. El sistema de Zed Shaw para enseñar es que copies sus ejercicios. Realmente se puede aprender a programar por repetición.

Su libro en version HTML es gratis, pero ofrece el curso con el libre en PDF + videos por 29$.

Google Code University

http://code.google.com/intl/es/edu/languages/google-python-class/index.html
Idioma: Ingles
Precio: Gratis

¿Quien mejor que enseñarte Python que Google? Google utiliza Python junto a C++ y Java en su buscador.

Mucho contenido escrito, ejercicios y vídeos con clases dadas por sus propio programadores.

The Python Tutorial

http://docs.python.org/2/tutorial/
Idioma: Inglés

Aprender Python desde el sitio oficial. Estos son los tutoriales de The Python Software Foundation. Nada interactivo y sin videos. Solo páginas y páginas de Python para perderse.

Libros

Listado de libros sobre Python. Gratis y en Inglés
http://pythonbooks.revolunet.com/

Djangobook (Django), Inglés:
http://www.djangobook.com/en/2.0/index.html

Python para todos, Español
http://mundogeek.net/tutorial-python/

10
autlos

" El sistema de Zed Shaw para enseñar es que copies sus ejercicios."

Descarta ese sistema. No puedes aprender por repetición, puedes memorizar.

Como método para crear robots es genial. Para todo lo demás... El de code academy y el de udacity tienen buena pinta.

1 1 respuesta
DantePD

#2 Creo que no lo he definido bien xD

Lo que te enseña es a pensar.

Es decir, yo puedo decir que para sacar un string por pantalla hay que utilizar print con el texto entre "

El te hace escribir esto:

print "Hello World!"
print "Hello Again"
print "I like typing this."
print "This is fun."
print 'Yay! Printing.'
print "I'd much rather you 'not'."
print 'I "said" do not touch this.'

Te hace escribir diferentes tipos de strings con ' y ".

Es muy interesante y LearnPythonTheHardway es seguramente el libro mas vendido para begginers de Python.

AiTale

Me he metido en la de Codecademy y al hacer los ejercicios, el botón Run no me tira, no hace nada.

¿Sólo me pasa a mí? El primer ejercicio me funcionó y el segundo ya no. (Uso Chrome)

1 respuesta
DantePD

#4 A mi me funciona :S. Prueba con F5.

En Codecademy yo tengo hecho hasta el tema 5. Si necesitas ayuda con alguno aquí estoy ^.

Había pensado en hacer un "Grupo de Estudio de Python" para los que empezamos ahora, si mas gente se apunta al hilo igual lo monto.

1 respuesta
AiTale

#5 Vale me va bien ahora... cuando acabo un ejercicio debo reiniciar la página para que aparezca la barrita que al ponerse verde desaparece, si no no me deja seguir haciendo ejercicios xD

Ya he acabado el tema 1. A ver como sigue. De momento muy parecido a Javascript y PHP en lo que a sintaxis se refiere, ¿cambia mucho en las próximas lecciones?

1 respuesta
DantePD

#6 Aquí hablan sobre las diferencias entre Python y PHP

http://www.ibm.com/developerworks/opensource/library/os-php-pythonbasics/index.html
http://wiki.python.org/moin/PythonVsPhp

En principio Python es mucho mas limpio que PHP.

1 respuesta
DiSKuN

A favoritos. Hace poco que empecé a aprender Python, y los materiales de #1 me vienen de fábula.

Si hacéis le Grupo de Estudio, me apunto.

B

#7: Eso ni lo dudes xD

parrochu

Me viene de perlas este hilo. Estoy en 1º de Ingeniería Mecánica y nos están introduciendo a la programación con Python, ya había dado algo de C en Bachillerato pero me estaba costando acostumbrarme a comandos y flujo de ejecución.

Personalmente me parece mejor programador C en lo poco que llevo estudiado de ambos, el hecho de que Python sea interpretado en el propio programa y no compilado como C puede darte bastantes problemas con bucles infinitos y tener que andar cerrando el programa y la posible pérdida de datos si no guardaste etc.

En todo caso muchas gracias por el aporte, iremos dándole a ver que tal porque me encanta la programación.

Innsbruck

Si os mola el método CodeAcademy aqui teneis algo parecido y en Español, no lo he probado pero lo guardé quien sabe cuando en mis marcadores importantes para aprender py en cuanto tuviese tiempo.

http://pythonya.appspot.com/

En CodeAcademy estoy haciendo el de Javascript y me va bien, si vas muy seguido se repite un poco a veces, pero cuando vuelves tras varios días el refresco ayuda. Y si está gamificado mas.

Para los que useis tutoriales en inglés y no se os de muy bien el leer o recomiendo que os instaleis alguna extensión del navegador para que al hacer click en la palabra o frase os haga un popup con la traducción sin tener que ir al translate todo el rato... por ejm 'Auto-translate' para chrome.

Saludos.

AiTale

Me he quedado atascado en el ejercicio 6 del punto 2 de la cuarta lección

Me hace lo que pide pero siempre me salta el mensaje "Try again", no me dice que tipo de error tengo y me estoy volviendo loco :(

seguro que es una tontería, pero bueno!

Este es el código que tengo, alguna pista?

spoiler
1 respuesta
DantePD

#12

-En la linea 6 tienes que poner return n**3. Si pones print te lo imprime, tu lo que quieres es que lo imprima cuando pones abajo print by_three(12)

-En la linea 8 has puesto Return con mayuscula, es return.

Para poner el codigo en MV puedes usar las etiquetas [code] codigo [/code] (sin los *). Mas que nada para ver si esta todo bien indentado.

Yo defino n**3 al definir cube al principio.

def cube(n):
	return n**3

def by_three(n):
    if n % 3 == 0:
        return cube(n)
    else:
        return False
        
print by_three(11) print by_three(12) print by_three(13)
AiTale

Muchas gracias :) seguiré exponiendo aquí mis dudas!!

NosFeR_

Estoy haciendo el de codecademy y está de puta madre.

La única pega es que he estado a punto de cortarme las venas por algún bug raro en la web. En el ejercicio 2.5 me daba error en una variable, que no tenía sentido porque el código funcionaba perfectamente. Pues me habré tirado más de media hora intentando saber qué cojones podía ocasionar ese puto error.

Hasta que he acabado hasta las pelotas, he pasado al siguiente ejercicio, que es el final, y el código ha funcionado perfectamente sin errores, siendo exactamente el mismo que en el ejercicio anterior... xDDDD

cryevil93

#1 Tu sabes lo que me dijo mi profesor de informática, que python lo usan 4 frikis que mejor que aprenda a programar en otro lenguaje como java, aplícate el cuento xD

7 respuestas
KinachO

#16 Con la poca experiencia que tengo, programar con Phyton es MUCHO más sencillo que con Java.

Ya lo decía Magnus Lycka:

Tengo la impresión de que Java fue diseñado para hacer que fuera difícil escribir mal código, mientras que Python está diseñado para hacer que sea sencillo escribir buen código.

Pero a día de hoy hay proyectos que mezclan los dos lenguajes y salen grandes cosas.

Brb

#16 tiene que ser un profesorazo, seguro.

3 1 respuesta
cryevil93

#18 Pues si la verdad, parece que lo sepa todo y seguro que sabra mas que tu

DiSKuN

#16 no llevaré la contraria a tu profesor, pero cada lenguaje es adecuado a ciertas tareas, y en mi trabajo, hacerlo en java es absurdo.

1 respuesta
F

#20 Puedes llevarle la contraria sin miedo.

2
DantePD

#16 para no convertir esto en un Java vs Python voy a poner un dato para tener un poco de idea.

Utilizando la busqueda de puestos de trabajo en Indeed.com podemos ver:
12.356 ofertas de Ruby
19.675 ofertas de Python
64.831 ofertas de Java

Java es mas popular? Si.
Python lo utilizan 4 frikis? No.

Que Java sea mas popular no significa que sea mejor, sino estaríamos todos escuchando Justin Bieber.

Python es MUCHO mas fácil como primer idioma que Java. De eso se trata este post. De Python como primer lenguaje para introducirse en programación.

Con Python+Django o Ruby+Rails se puede hacer cualquier cosa (web)

Zacr0

Precisamente tengo pensado aprender Python+Django en un futuro (espero) no muy lejano, así que ésto me viene de perlas. A favs que va.
Gracias!

NosFeR_

Lo pongo aquí también a ver si alguien me puede ayudar.

En el ejercicio te manda hacer un programa al que le metes un número y te tiene que devolver la distancia a 0 de ese número y si no metes un número pues avisarte. El ejercicio me lo da como pasado pero el código no funciona y no sé por qué T-T, simplemente me devuelve todo el rato "This isn't an integer or a float!".

n = raw_input("Enter any number")

def distance_from_zero(n):
    if type(n) == int:
        return abs(n)
    elif type(n) == float:
        return abs(n)
    else:
        return "This isn't an integer or a float!"

print distance_from_zero(n)
3 respuestas
zoeshadow

Con lo de moda que esta eso del Big Data y siendo Python uno de los mejores lenguajes para manejar ingentes cantidades de información, decir que Python lo usan 4 frikis es colarse, cuanto menos.. xD

#24 No conozco Python muy bien, pero en la mayoria de los lenguajes cuando pides un dato al usuario, te devuelve normalmente una variable de tipo String, y luego tienes que pasar esa variable a Int ( o extraer un numero dentro de esa variable tipo String )

Aqui tienes alguna pista http://stackoverflow.com/questions/379906/python-parse-string-to-float-or-int

1 respuesta
DantePD

Mi recomendación para el que quiera comenzar Python desde cero con este material.

-Primero: Hacer las 5 primeras lecciones de Codecademy. Con esto se aprende toda la base en un orden lógico. http://www.codecademy.com/tracks/python

-Segundo: Ver los 7 videos del Python de Google y hacer los ejercicios. Ya con la base podemos ver como un developer utiliza Python.

-Tercero: Hacer el curso de Udacity. En este curso se vuelve a ver lo mismo, pero esta vez orientado a hacer un buscador.

1
cabron

#24

Por que cuando se coge algo de la entrada estándar, se coge como un string siempre

1 respuesta
NosFeR_

#25 #27 gracias! Luego cuando tenga un rato me lo miro a ver.

DiSKuN

Django es algún tipo de framework?

1 respuesta
cabron

#29

Es un framework web

Usuarios habituales