Python: 1. Introducción
Python se ha vuelto popular en los últimos tiempos, por la facilidad para desarrollar en plataformas nativas (Windows, Linux, OSx, etc), la sencillez del lenguaje, los tipos de datos, etc.
En mi caso particular, necesitaba desarrollar una aplicación y para eso necesitaba una API que sólo estaba disponible para Python y JAVA. JAVA es muy renombrado, pero quise probar con algo nuevo, un tanto desconocido. Me propuse a aprender Python desde cero, con las bases de programación que ya tenía de otros lenguajes. A continuación y antes de empezar a jugar con el lenguaje, vamos a ver algunas características.
Características
- Sintáxis limpia y legible
- Capacidad de Introspección
- Orientación a Objetos bastante intuitiva
- Soporte de paquetes en jerarquía
- Manejo de errores basado en excepciones
- Tipos de datos dinámicos de alto nivel
- Extensa librería y módulos third-party
- Se pueden escribir nuevos módulos facilemente en C, C++ (en Java -Jython- y .NET -IronPython-)
- Python puede incluirse en aplicaciones que necesitan una interfaz programable.
Wikipedia :
Python es un lenguaje de programación multiparadigma. Esto significa que más que forzar a los programadores a adoptar un estilo particular de programación, permite varios estilos: programación orientada a objetos, programación imperativa y programación funcional. Otros paradigmas están soportados mediante el uso de extensiones.
Python usa tipado dinámico y conteo de referencias para la administración de memoria.
Una característica importante de Python es la resolución dinámica de nombres; es decir, lo que enlaza un método y un nombre de variable durante la ejecución del programa (también llamado ligadura dinámica de métodos).
Otro objetivo del diseño del lenguaje era la facilidad de extensión. Se pueden escribir nuevos módulos fácilmente en C o C++. Python puede incluirse en aplicaciones que necesitan una interfaz programable.
Aunque la programación en Python podría considerarse en algunas situaciones hostil a la programación funcional tradicional del Lisp, existen bastantes analogías entre Python y los lenguajes minimalistas de la familia Lisp como puede ser Scheme.
Python usa tipado dinámico y conteo de referencias para la administración de memoria.
Una característica importante de Python es la resolución dinámica de nombres; es decir, lo que enlaza un método y un nombre de variable durante la ejecución del programa (también llamado ligadura dinámica de métodos).
Otro objetivo del diseño del lenguaje era la facilidad de extensión. Se pueden escribir nuevos módulos fácilmente en C o C++. Python puede incluirse en aplicaciones que necesitan una interfaz programable.
Aunque la programación en Python podría considerarse en algunas situaciones hostil a la programación funcional tradicional del Lisp, existen bastantes analogías entre Python y los lenguajes minimalistas de la familia Lisp como puede ser Scheme.
Primeros pasos
Empecemos a jugar un poco con el lenguaje. Lo primero que necesitamos, es instalar Python. Yo estoy usando la versión 2.7 de Python, que es la versión que tiene más librerías disponibles y la más estable. Hay otras versiones, pero para aprender la 2.7 está bien.
- Windows: Tenemos dos opciones: Bajar ActivePython, que nos provee una GUI y es lo más recomendable para empezar. La opción que nos queda, es descargar Python desde su web oficial Python.org. En la web oficial, están los links (inclusive los links a ActivePython y otras alternativas).
- Mac OSx: Para los usuarios de Mac, la cosa es más sencilla. Mac ya trae una versión de Python de consola pre-instalada. Si quieren la última versión, pueden descargarla del de Python.org en un .dmg. Al instalar Python, van a tener un GUI, una consola y una completa librería de ayuda. Los usuarios de Mac OS 9, van a tener que descargar Python de la web, ya que no trae ninguna versión pre-instalada.
Nota: Cuando se instala Python desde una imagen, la versión pre-instalada del sistema operativo se mantiene. Si sos de usar la terminal más que la GUI, al correr las aplicaciones tené en cuenta la versión que estás usando de Python.Código :
# Version pre-instalada $ /usr/local/bin/python Python 2.3.3 (#2, Dec 23 2003, 22:56:29) [GCC 3.1 20020420 (prerelease)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> # Version de la página oficial $ python Python 2.7 (r27:82508, Jul 3 2010, 20:17:05) [GCC 4.0.1 (Apple Inc. build 5493)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>>
Para volver a la línea de comandos de la terminal, presioná CTRL+D. - Linux: para usar Python en Linux, vamos a tener que estar familiarizados con la consola y el comando apt.
Código :
$ sudo apt-get install python
Asi de sencillo. Para otras distribuciones de linux como Red Hat, van a tener que usar un repositorio y elegir la version 2.7 de la lista, entrar al directorio rpms/ y elegir la versión más alta. Luego con el comando rpm, la instalan.Código :
$ wget http://python.org/ftp/python/version/rpms/archivo_a_descargar.rpm $ rpm -Uvh archivo_descargado.rpm
Hola Mundo
Vamos a escribir nuestras primeras líneas en Python. Podemos usar cualquier editor de preferencia para escribir el código (Coda, Python IDLE, ActivePython, VIM). Los archivos de Python tienen la extensión .py
Usando la consola accedemos así:
Código :
# Entramos en el entorno de VIM y podemos empezar a editar nuestro archivo. Para empezar a escribir presionamos "[b]i[/b]", para salir del modo de escritura presionamos Escape, para guardar los cambios "[b]:w[/b]" y para salir de VIM "[b]:q[/b]". $ vim directorio/miArchivo.py
Vamos a escribir una función simple y más adelante vamos a explicar que hace cada cosa, la sintáxis del lenguaje y algunos detalles importantes que hacen al lenguaje. Escribimos en nuestro editor, las siguientes líneas:
Código :
def SumarNumeros(x, y): print 'Resultado: ' + str(x+y) SumarNumeros(3,4)
Ahora ejecutemos nuestro código. Si estás en un entorno GUI, generalmente la tecla rápida es F5 o Run Module. Si estás en la consola:
Código :
$ python archivo.py
Si el resultado no es un error de interpretación podemos estar contentos. Hemos realizado nuestro primer script en Python con total éxito. Pero expliquemos un poco más lo que hemos hecho.
Código :
def SumarNumeros(x, y):
Las funciones en Python se declaran con def, seguido del nombre de la función y sus parámetros (si son múltiples parámetros, se separan por comas). No declaramos el tipo de dato que retorna la función, esto es porque Python es un lenguaje de tipos dinámicos (los tipos de datos se establecen en el momento de la ejecución). Tampoco definimos si retorna un valor o no. Esto es porque Python SIEMPRE retorna un valor. Si no retornamos nada en la función, el valor de retorno por defecto es None (el valor nulo en Python)
Código :
print 'Resultado: ' + str(x+y)
Imprimimos el resultado de la suma de los parámetros (valores tipo enteros) junto con un texto. Algo a tener en cuenta: la función print no concatena distintos tipos de datos. Por eso usamos la función str para convertir el resultado de la suma (entero) en un string. Si no usáramos esta función, recibiríamos un error. ¿Has hecho la prueba?
Código :
print 'Resultado: ' + (x+y)
Código :
SumarNumeros(3,4)
Corremos la función y le enviamos dos números como parámetros.
¿Dónde carajos están las llaves y los corchetes?
Buena pregunta. Python tiene una característica que, a mi opinión, es bastante interesante y práctica: Python no usa llaves, corchetes ni palabras claves en la definición de funciones, bucles, sentencias, etc.
En las funciones, no existen palabras claves para delimitar donde empieza y termina la función. El único delimitador son los dos puntos ":" y el indent (o sangría) del código.
Código :
def SumarNumeros(x, y): print x+y def RestarNumeros(x, y): print x-y
El inicio de la función lo delimitan los dos puntos, el final de la función lo define el indent inverso. Debemos tener en cuenta que los espacios en blanco, en Python toman relevancia. El indent debe ser constante (4 espacios es lo más usado), de lo contrario recibiremos errores de interpretación a la hora de ejecutar nuestro script.
A pesar de que al principio esto puede resultar molesto no poder delimitar bloques como lo hacemos en otros lenguajes, con el tiempo lo vamos a agradecer. Imaginen un mundo donde usar tabulaciones sea un requisito y no un simple asunto de estilo. Para cualquier programador que edite un archivo, el codigo se verá limpio, bien ordenado siempre.
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por daz_angie el 22 de Agosto de 2010
Pero bueno, al menos es un avance para entender Python... A ver si luego hago un post sobre OPenGL en Python.
Por tomasdev el 22 de Agosto de 2010
Espero el step 2. ansioso y hago una pregunta: el indent (sangria) tiene que ser espacios si o si o puedo usar el TAB ?
Por guillem el 22 de Agosto de 2010
Hace tiempo que abandoné PHP por Python y creo que cuando te acostumbras, es muy difícil volver atrás...
Por guillem el 22 de Agosto de 2010
Es recomendable a nivel de empresa elegir una indentación y seguir siempre la misma (por ejemplo 2 espacios).
Por eldervaz el 23 de Agosto de 2010
Este tipo de artículos evita asustar a los que recién se inician (como yo)
Cuántas veces discutí este tema cuando era profesor universitario: No asusten a los alumnos.
Por CLAnonimo el 23 de Agosto de 2010
Por iwexcoder el 23 de Agosto de 2010
saludos
Por Jesuko el 23 de Agosto de 2010
Por Obelich el 23 de Agosto de 2010
Por carnicero el 23 de Agosto de 2010
Por XKlibur el 23 de Agosto de 2010
Por daz_angie el 23 de Agosto de 2010
tomasdev :
Espero el step 2. ansioso y hago una pregunta: el indent (sangria) tiene que ser espacios si o si o puedo usar el TAB ?
Sí lo leí completo, lo que decía es que se puede explicar con menos texto y más sencillo. Sé programar en Python...
Y de preferencia utiliza TAB para crear el indent, así tendrás el código más ordenado y sin problemas.
Por Hernán el 23 de Agosto de 2010
Para mi gusto, nice.
Saludos, Hernán . -
Por hmart el 24 de Agosto de 2010
http://www.openbookproject.net/thinkcs/python/spanish2e/
Por hmart el 24 de Agosto de 2010
http://openbookproject.net/thinkcs/python/english2e/
@hmart
Por Deivtox el 24 de Agosto de 2010
Por Juan el 24 de Agosto de 2010
Por hmart el 24 de Agosto de 2010
http://python.org.ar/pyar/AprendiendoPython
Por D-Virus el 08 de Septiembre de 2010
Por dakrai el 21 de Agosto de 2012
Por nanaus el 21 de Febrero de 2013
Por Chipo el 19 de Enero de 2014
y tengo una pregunta.. no importa que mi programa este en ingles y escriba en español?
ejemplo "SumarNumeros" y muy bueno tambien soy nuevo en esta pagina, Saludos
Por onil el 28 de Junio de 2014
Por Edu Trivep el 14 de Diciembre de 2015