Código Python visto por Miku desde el editor Vim, en Linux Ubuntu. |
Este tutorial
introductorio lo hice originalmente en mi RFC Index para aquellos que vienen de tener una introducción a la programación con Batch (un lenguaje demasiado restringido en posibilidades), y lo redacté en base a la “Guia de aprendizaje de Python release 2.0” que como anécdota es de
octubre del 2000, lo que prueba la anecdota de que los lenguajes libres ajenos a Microsoft no
se desactualizan (modificándose parcialmente), sino que se le agregan nuevas
funciones sobre la base original, como en el lenguaje C/C++.
Python es un lenguaje mas fácil que C, pero a su vez
es tan poderoso como C, Python además puede ser utilizado como una potente calculadora.
Yo ahora me voy a basar en un entorno UNIX like como el caso de GNU/Linux Ubuntu
para variar un poco del entorno de Windows (comúnmente usado por la mayoría).
Primero debemos tener instalado Python, siendo que en Linux ya viene instalado en especial en todas las distribuciones derivadas de Devian. En Windows la instalación es bastante fácil, en la página de http://www.python.org/download/ se puede bajar la última versión del interprete de Python para cada plataforma.
Entre sus características podríamos referenciar 3
puntos importantes:
• Permite resolver operaciones complejas en C en pocas
sentencias.
• El agrupamiento de sentencias se realiza con
sangrías.
• No es necesario declarar los argumentos o las
variables.
Ahora vamos a hacer lo primero que se hace con
cualquier lenguaje que se aprende: un
“Hola Mundo” :P
Primero abrimos nuestro editor de código favorito (recomiendo PyScripter, Kate o Notepad++) La sintaxis es fácil:
>>> print “Hola mundo!”
Hola mundo!
Hola mundo!
Luego lo guardamos con el nombre y la extensión
“hola_mundo.py” (recomiendo reemplazar los espacios por el guión bajo en los
nombres de archivos python para hacerlos mas accesibles desde la consola) y luego desde la consola Bash o el CMD tecleamos:
$ python hola_mundo.py
Al dar intro aparecerá el típico mensaje “Hola mundo!”,
al haber tipeado python al principio estoy llamando al interprete a que ejecute
el archivo personalmente, para poder hacer que el archivo se ejecute con un
doble clic hay que agregar la siguiente línea al principio del código:
#!/usr/bin/python
python hola_mundo.py
Ademas en UNIX*/Linux hay que decirle al archivo que es
ejecutable mediante la orden:
chmod a+x hola_mundo.py
Ahora para definir una variable, se pone cualquier nombre sin espacios ni caracteres especiales y su
valor encerrado entre comillas seguido del igual, luego se convoca a la
variable por el nombre definido:
mensaje = “Hola mundo”
print mensaje
Las variables de python son mucho más elegantes que en batch, aunque parecidas en que se pueden usar para hacer cálculos, pero mucho mas potentes:
resultado = 345592652368 + 2759254890 – 4829726345 / 642 * 3
print resultado
También hay muchas funciones especificas como len(“”)
cuya función es medir la cantidad de caracteres de una cadena de texto, en este
caso la variable mensaje:
len(“mensaje”)
10
Los comentarios en Python se definen con # (numeral),
y en este caso agrupamos la variable en el mensaje, saludando a una persona:
# Saludando a pepe
nombre = “Pepe”
print “Hola”, nombre # El texto esta entre comillas y la variable
afuera
Para que una variable pueda ser definida por el
usuario se utiliza el comando raw_input(“Ingrese un valor: ”) que vendría a ser
como el Set /P Ingrese un valor: en batch, puede ponerse input(“”) solo el texto
seria tratado como un valor de variable en memoria y no como una cadena de
texto (string) como lo define el prefijo “raw_”, acá se combinaría
raw_input(“”) adentro de una variable:
#!/usr/bin/python
# Saludando a una persona
nombre = raw_input(“Como te llamas? ”)
print “Hola”, nombre
print “y tu nombre tiene”, len(nombre), “letras.”
Esto devolvería:
Como te llamas? nikos
Hola nikos
y tu nombre tiene 5 letras.
Al programa podríamos agregarle un condicional con la
sentencia IF (igual que en batch), para en caso de que el usuario no ingrese un
nombre, hay que notar que tanto if como else llevan el signo “dos puntos” al
final para señalar las acciones (en batch se usaban opcionalmente paréntesis):
#!/usr/bin/python
# Saludando a una persona
nombre = raw_input(“Como te llamas? ”)
if nombre == “”:
print
“No me das tu nombre?... No te saludo.”
else:
print “Hola”, nombre
print “y tu nombre tiene”, len(nombre), “letras.”
En programación, y más dentro de Python hay muchas
maneras de resolver un mismo problema, por ejemplo las cadenas de texto
anteriores yo las separe de las variables usando comas, pero se pueden juntar con
el símbolo mas (+):
print “Hola” + nombre + “y tu nombre tiene” + str(len(nombre))
+ “letras.”
Nos podemos fijar que a len la tuve que poner dentro de str(), la
cual dice que el valor de len no es para sumarse (por los signos), sino que es
una cadena de texto (string); por ejemplo las partes textuales del script de
arriba al estar encerradas entre comillas se definen como cadenas o strings, si
no tuvieran las comillas se definirían como valores y no se procesarían.
Para explicar mejor esto voy a dar un ejemplo, así que abrimos una consola de Python y en el prompt tipeamos lo siguiente:
Para explicar mejor esto voy a dar un ejemplo, así que abrimos una consola de Python y en el prompt tipeamos lo siguiente:
>>> 11 + 11
22
>>> “11” + “11”
1111
La diferencia se nota en que estando sin comillas las
reconoce como variables y las procesa como valores, por lo que si en ves de números fueran
texto daría un error diciendo que las variables no están definidas, en cambio
en el ultimo ejemplo al tener las comillas conserva los caracteres juntándolos sin
procesarlos si no hay orden explicita.
Una función avanzada de Python es la de poder crear
funciones, esto se hace con el comando DEF que vendría a ser una variable capaz
de almacenar grupos de comandos enteros, por ejemplo se puede poner un string
determinado:
def no_saludar()
print “No me das tu nombre?... No te saludo.”
if nombre == “”:
no_saludar()
En este caso anterior definimos la función no_saludar()
y la colocamos en el if , la función def es muy útil cuando hay que repetir
muchas veces un segmento de código extenso en un programa.
Seguramente se preguntarán para que se dejan los
paréntesis si no tienen nada, y en realidad esto es por convención, los
paréntesis son para pasar argumentos determinados a las funciones, aunque esto es algo más complicado (y este tutorial es solo introductorio).
Un ejemplo de uso de FOR es con una lista contenida en
una variable, por ejemplo:
personas = [“Nikos”, “Matias”, “María”]
for nombre in personas:
print
“Hola”, nombre
Esto mostraría:
Hola Nikos, Hola Matias, Hola María
A partir de ahora el tutorial podría extenderse con más funciones, pero creo que para ser una pequeña introducción con esto será suficiente, aunque no me gustaría terminar sin antes mencionarles a todos los programadores de Batch que estén buscando migrar a este mejor lenguaje, la existencia del modulo OS.
Este modulo nos permite ejecutar comandos de sistema y programas externos, y se llama mediante el comando import de la siguiente forma:
import os
Vamos a dar un ejemplo concreto con un script:
#!/usr/bin/python
import os
os.system("ping http://www.google.com")
time.sleep(10)
os.system("ping http://www.yahoo.com")
Lo que haría el código anterior sería mostrar el resultado de dos ping (a Google y Yahoo) con un tiempo intermedio de espera de 10 segundos. Obviamente este código no tiene una utilidad muy práctica, pero muestra básicamente como funciona el módulo OS: primero importamos el módulo y luego llamamos los comandos o programas que precisemos mediante la sentencia os.system("comando o programa")
Un ejemplo más concreto pero avanzado para aquellos que vienen de programar en Batch sería la realización de un simil "bot" para generar visitas a lo que por ejemplo podría ser un sitio o un vídeo determinado. Este código que yo realicé y comenté estaría orientado a abrir un vídeo en Windows usando el navegador Mozilla Firefox (siendo este el navegador predeterminado) y reproducirlo durante 5 segundos o menos para luego cerrarlo y volverlo a abrir durante 200 veces, lo que generaría 200 reproducciones:
#!/usr/bin/python
import os # Llamamos al modulo os
numero = 0 # Declaramos la variable numero con valor 0
label .volver # Fijamos una etiqueta para la sentencia goto (como las de Batch)
# A continuación usamos el comando start de windows para abrir un vídeo:
os.system("start http://www.youtube.com/watch?v=Bh5W_R5BwqI")
# En caso de que Firefox no fuera el navegador por default, podemos usar lo siguiente:
# os.system("%ProgramFiles%\Firefox\firefox.exe http://www.youtube.com/watch?v=Bh5W_R5BwqI")
time.sleep(5)
# Cerramos la instancia de firefox que tenga YouTube en el nombre de ventana (ver taskkill /?)
os.system("TASKKILL /F /IM:firefox.exe /FI "WINDOWTITLE ne YouTube" > nul")
# A continuación se le suma 1 a la variable numero
numero = numero + 1
# Se comprueba que la variable numero no halla llegado a 200 (el límite) y en caso de hacerlo se
# pide que se renueve la dirección IP y eliminar las cookies para no ser banneados por youtubi :P
if numero == 200:
print "límite de 200 reproducciones" && print "Renueve su IP y borre las cookies!" && break
else:
goto .volver
# En caso de que el condicional (if) no sea cierto (else), la sentencia goto vuelve a repetir el código.
Un apunte importante (porque me habían preguntado al respecto) es que en python es usado el “punto y coma” (;) para agrupar barios comandos en una sola línea de código, como el "&&" usado en Batch o Bash.
Podría haber puesto más ejemplos, pero como dije antes no quisiera extender más allá a este tutorial introductorio.
Para que sigan aprendiendo más de este lenguaje les dejo los siguientes tutoriales de los cuales yo estudié y sigo estudiando:
http://to2hacemos.blogspot.com.ar/2012/07/pack-de-15-cursos-y-tutoriales-de.html
http://to2hacemos.blogspot.com.ar/2012/07/tutorial-de-introduccion-la.html
Salu2 a to2
No hay comentarios.: