Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Contenido
Un poco de Historia ..............................................................................................................................................................................3
Scripting y ms..................................................................................................................................................................................3
Multiplataforma ...............................................................................................................................................................................3
Variables y Tipado ............................................................................................................................................................................4
Paradigmas en Python ......................................................................................................................................................................4
Por qu Python? .................................................................................................................................................................................4
Instalando Python.................................................................................................................................................................................4
Python en Windows..........................................................................................................................................................................5
Cmo armar un entorno de desarrollo en Python................................................................................................................................6
En Windows por ah... .......................................................................................................................................................................7
Interactuando con Python ....................................................................................................................................................................7
La consola .........................................................................................................................................................................................7
Los Scripts .........................................................................................................................................................................................7
Hola Mundo en Python.........................................................................................................................................................................9
Conclusin ............................................................................................................................................................................................9
Introduccin
Aprender a programar no es una tarea fcil, pero si divertida. Cmo les comentamos anteriormente, el presente curso
es una introduccin a un lenguaje de programacin muy dinmico, prctico y fcil de aprender, Python. Este lenguaje
de programacin se cre a principios de los aos noventa y desde entonces ha sido utilizado para un gran nmero de
proyectos incluyendo programacin Web, herramientas de seguridad, para scripting, automatizacin de tareas y
dems. Desde el Laboratorio de ESET Latinoamrica buscamos que entusiastas y estudiantes puedan incorporar
nuevos conocimientos que los ayuden en su desarrollo profesional.
Un poco de Historia
Python es un lenguaje de programacin que se cre a principios de los aos noventa por Guido Van Rossum, entre las
cualidades ms particulares del lenguaje se destaca que cuenta con una sintaxis muy limpia, es potente, dinmico fcil
de aprender, en parte por eso lo elegimos para este curso. A travs de los aos, Python se convirti en un lenguaje
muy adoptado por la industria de la seguridad informtica, debido a su simpleza, practicidad y que es tanto un lenguaje
interpretado como de scripting.
En la actualidad, podemos encontrar este lenguaje de programacin en una gran cantidad de herramientas que se
usan a diario dentro del mundo de la seguridad como as tambin en sistemas basados en UNIX por defecto. Como se
pueden crear scripts para automatizacin de tareas Python puede convertirse en una herramienta muy prctica para
evitar tener que realizar tareas repetitivas como configuracin de sistemas, anlisis bsico de malware y otra gran lista
de tareas que iremos viendo a medida que avancemos con el curso.
Para todos aquellos curiosos que tengan alguna duda en relacin al lenguaje o las capacidades que tiene, los invitamos
a buscar en Internet la gran cantidad de recursos que existen para aprender acerca de este lenguaje. Adems, la
extensa bibliografa disponible acerca de Python complementar todo lo que veamos a lo largo de los siguientes
mdulos.
Entonces, qu es Python? Python es un lenguaje de programacin, open source, optimizado para crear software de
calidad asegurando la productividad de los desarrolladores como as tambin la portabilidad a diferentes plataformas.
Su xito a travs de los aos ha quedado demostrado no solo por su aplicacin en el mundo de la seguridad sino que
adems est presente en productos de Google, NASA, YouTube y muchas otras empresas ms.
Scripting y ms
Como vimos, Python es tambin un lenguaje de Scripting, esto significa que podemos crear nuestros propios scripts y
ejecutarlos sin la necesidad de compilar el cdigo, como sucede con otros lenguajes como Java, C++, o C# entre otros.
Por otro lado, para contar con esta capacidad, Python relega un poco de velocidad su ejecucin en pos de garantizar
portabilidad y flexibilidad.
El cdigo que nosotros creamos en Python, se traduce en un bytecode al momento de ejecutarse por primera vez y es
lo que veremos ms adelante como los archivos .pyc o .pyo. Por eso en los sistemas en los cuales vamos a ejecutar
nuestros programas o scripts desarrollados en Python necesitaramos que este se encuentre instalado.
Multiplataforma
Python cuenta con un intrprete, y por lo tanto se encuentra disponible en un gran nmero de plataforma incluyendo diferentes
sistemas operativos como Windows, UNIX, Mac OS, Linux y adems de poder encontrarlo en computadoras y Laptops existe la
posibilidad de ejecutarlo en dispositivos mviles.
Los programas o scripts de Python se van a poder ejecutar en cualquier plataforma a excepcin de que se utilice alguna librera
especfica. Adems funcionalidades de libreras que vienen por defecto en Python como el caso de os y sys, brindan
herramientas al desarrollador o especialista de seguridad para maximizar la eficiencia de su cdigo. Hablaremos sobre ambos
mdulos ms adelante en otro de captulo de este curso.
Variables y Tipado
Si bien todava no definimos qu es una variable, o para qu las vamos a utilizar es importante definir que en Python cuenta con
tipado dinmico. Con esto hacemos referencia a que cada variable que vayamos usando en nuestros scripts no es necesario
definir un tipo de dato (nmero, texto, etc). En Python el tipo de una variable se define en tiempo de ejecucin, y segn el tipo de
valor que se asigne.
Otro concepto que es importante definir que es Python, adems de contar con tipado dinmico, es fuertemente tipado. Qu
significa esto? En pocas variables que cuando una variable es de un determinado tipo no podemos tratarla como si fuera otra
cosa. Se marearon? Bueno, existen diferentes tipos de datos en los lenguajes de programacin y si bien vamos a tratar este
tema en detalle en el mdulo 2, por ahora vean como que los nmeros se tratan de una manera y las letras de otra. Por lo tanto,
no podemos sumar letras ni juntar nmeros para formar palabras.
Paradigmas en Python
En programacin, existen diferentes maneras de ver las cosas, y cada una de estas perspectivas es tambin conocidas como
paradigmas de programacin1. Cada paradigma de programacin cuenta con una serie de metodologas o maneras de pensar
que llevan a un camino diferente de resolver un mismo problema segn el paradigma2. En los ltimos aos uno de los paradigmas
ms utilizados es el Orientado a Objetos3. La programacin orientada a objetos busca representar mediante clases y objetos las
interacciones necesarias para llevar a cabo una determinada tarea.
A lo largo del curso, iremos explicando ms en detalle este paradigma y nos dedicaremos en el Mdulo III de lleno a explicar en
detalle cmo funcionan las clases y los objetos en Python.
Por qu Python?
Si bien en los prrafos anteriores enumeramos varios de los motivos por las cuales elegimos Python, como as tambin
algunas de caractersticas que forman parte del lenguaje es importante destacar que es un lenguaje fcil de leer. La
sintaxis es sencilla, clara y fcil, por lo tanto a medida que pase el tiempo se har ms fcil leer cdigo que hayan
escrito ustedes o que busquen en Internet.
Adems, Python cuenta con un montn de libreras para tareas tales como anlisis del trfico de red, ingeniera
inversa, pentesting, anlisis de vulnerabilidades, anlisis de malware y desarrollo de aplicaciones entre otros.
Instalando Python
Cmo ya lo comentamos varias veces, en tanto en las ltimas versiones de OS X de Apple como en las distribuciones de UNIX y GNU
Linux Python viene pre instalado por defecto. En particular, y en el caso de distribuciones como Ubuntu y otras, la versin que
encontrarn por defecto es la 2.7. Para confirmar que Python se encuentra instalado en su sistema basta con abrir una consola y
escribir la palabra python y observarn que la ventana es similar a la siguiente:
Python en Windows
Para aquellos usuarios de Windows que quieran contar con Python instalado en sus sistemas pueden descargar el instalador desde
la pgina oficial http://www.python.org/download/ e instalarlo segn su sistema operativo sea de 32 o de 64 bits. Una vez que
hayan descargado el instalador y estn listos para ejecutar. En la siguiente imagen pueden ver la pgina oficial de descarga de los
instaladores de Python en dnde van a poder elegir el que ms se amolde a sus necesidades:
En caso de que quieran probar algn otro IDE no va a haber ningun problema, sintanse libres de instalar el software
que prefieran. IDLE puede parece un poco minimalista pero no deja de ser extremadamente efectivo, liviano y
prctico.
A medida que vayamos avanzando con los mdulos del curso, irn apareciendo diferentes conceptos y maneras de
organizar nuestro cdigo de manera que sea ordenado y prctico para su uso. Les recomendamos crearse una caperta
en algn lugar de su sistema para ir almacenando todos los scripts y archivos que vayamos utilizando a lo largo del
curso.
La consola
La consola de Python es extremandamente prctica para probar pequeas porciones de cdigo, cargar nuestors mdulos (se ver
en detalle en el Mdulo II), y ejecutar nuestras funciones. Adems es una manera de interactuar con el usuario de una manera
muy sencilla y directa para pedir informacin o para imprimir informacin:
Los Scripts
Les habamos comentado que existe la posibilidad de escribir nuestras lneas de cdigo en un archivo y luego pedirle al intrprete
de Python que las ejecute o que corra nuestra script. Estos archivos de texto se guardan con la extensin .py y para llamarlos se
puede pasarse como parmetro a Python o ejecutar directamente desde el IDE que hayan elegido.
Qu es un algoritmo?: http://es.wikipedia.org/wiki/Algoritmo
En algn lugar del sistema, creen un archivo nuevo con el nombre bienvenida.py y escriban en l las siguientes lneas:
Conclusin
En este mdulo, vimos varios de los conceptos ms importantes de Python como as tambin sus principales componentes y
caractersticas. De ahora en adelante nos iremos adentrando en este lenguaje de programacin para conocer de qu manera
crear programas o scripts que nos ayuden en nuestras tareas diarias como as tambin a analizar cdigos maliciosos.
Los invitamos a continuar con este curso de la Plataforma Educativa de ESET para continuar aprendiendo acerca de este lenguaje.