16/1/13

#2 Algo de Python como para no olvidar :D

Bueno aca vamos con la continuación del post anterior y asi seguiremos hasta el final de los tiempos... :D

Repasaremos algo de:

- Operadores Matemáticos
- Estructura condicional   if 
- Operadores de relación
- E. Condicional   if   anidada
- Operadores Lógicos
- if - elif



Antes de empezar, me habia olvidado mencionar la forma de ubicar comentarios dentro de nuestro codigo, pues es algo muy sencillo como esto:


#Hola soy un comentario :3

....Bueno, bastante facil y para los comentarios bastante largos o multi-lineas usamos:

""" Hola soy un comentario muy grande por eso las tres comillas dobles
y bla bla bla bla
bla bla """

 >>>>>>>>> Bueno, algo que tambien se me pasaba por alto era los saltos de linea, pues bien para simplicidad yo lo hago de la siguiente forma:

print("Hola voy a mostrarme \n") #El  \n  nos dara el salto de linea que necesitamos
print("\n")   #Recuerden que soy un \  no un /  :D

>>>>>>>>>>>>>>>>>>>>>>>>

Bien es momento de empezar...

1. Operadores Matemáticos

Algo pues bastante sencillo, con explicación breve...Por operador matemático entendemos a:


+, -, *, /, //, **, %

Entonces hagamos un ejemplo rápido:

$ nano ejemp1.py

print("Si tenemos 52+12 es igual a ", 52+12)
print("Si tenemos 21-11 es igual a ", 21-11)
print("Si tenemos 12*3 es igual a ", 12*3)
print("Si tenemos 50/2 es igual a ", 50/2)
print("Si tenemos 11.2//2.8 es igual a ", 11.2//2.8)     #   // divide flotantes
print("Si tenemos 2**8 es igual a ", 2**8)                 # ** eleva a la potencia
print("Si tenemos 10.4%3.2 es igual a ", 10.4%3.2)  # % calcula el residuo de una división

Bien con estos pequeños ejemplos podemos visualizar el uso de los operadores matemáticos que normalmente usamos. Y su uso es tan sencillo y comprensible que todo depende de practicar.

2. Estructura condicional  if

Pues bien, algo muy importante dentro de cualquier lenguaje de programación, son la toma de decisiones, donde comúnmente usamos el condicional if y su contra parte else....Pero algo importante que mencionar dentro de python es la indentación al momento de escribir nuestro código ya que si no lo hacemos dentro de las estructuras de control como es el caso del if pues simplemente no se ejecutara correctamente nuestro procedimiento.


Pasando de la explicación a la práctica tenemos:

#Nuestro programa comparará los enteros generados por el random y mostrara si dichos valores son iguales


import random

x=random.randint(1,100)
y=random.randint(1,100)
print (x, "\n")
print (y)
if x==y:
        print("Los valores generados son  iguales")
else:
        print("Los valores generados son distintos")


En este ejemplo nos abrimos paso a los Operadores de Relación, mencionando a uno de ellos  " = "


3. Operadores de Relación

 Cuando hablamos de operadores de relación o relacionales nos referimos a los siguientes:

==  Igualdad
!=   Diferente
<     Menor que
<=   Menor o igual que
>      Mayor que
>=    Mayor o igual que

Como es tan sencillo el uso de los operadores de relación, no entraré en mayores detalles :D  Así que pasemos a un ejemplo:


import random

x1=random.randint(1,100)
x2=random.randint(1,100)

print(x1,"\n")
print(x2, "\n")

if x1==x2:
        print("Wow! los valores son iguales")
if x1<50:
        print("El primer valor es menor a 50")
if x2>=20:
        print("El segundo valor es mayor o es 20")
if x1!=x2:
        print("Son distintos")


4.  E. condicional   if  anidada

Normalmente cuando tenemos mas de dos opciones o caminos que nos den resultados, es necesario utilizar las condicionales anidadas, es decir una dentro de la otra. En el caso tan particular de python debemos recordar que se debe identar el código  en cada una de las estructuras de manera respectiva, para evitar errores.

Pues bien vamos con un ejemplo, mezclando un poco las cosas. Usando nuestro querido amigo random, veamos:

"""Nuestro script lo que hace es generar un valor entre -10 y 10 al cual identificaremos con las estructuras anidadas debido a existir mas de 2 opciones posibles"""

import random

x1=-10+random.randint(0,20)
print(x1, "\n")
if x1<0:
        print("Es negativo")
else:
        if x1>=1:
                print("Es positivo")
        else:
                if x1==0:
                        print("Es nulo")



5. Operadores Lógicos

Los operadores lógicos nos ayudan con la agrupación de condiciones simples dentro de una estructura condicional, lo cual nos facilita la comprensión de los algoritmos, así como su reducción de tamaño.
Los operadores lógicos que manejaremos son:

and              #Si todos los valores cumplen la condición que se les propone, se ejecuta 
or                #Si al menos uno de los valores cumplen la condición que se les propone
not              #A manera de pregunta, si los valores no cumplen la condición, se ejecuta

Entonces pasemos con ejemplo donde se vea el uso de los operadores lógicos:

import random
x1=random.randint(1,100)
x2=random.randint(1,100)
x3=random.randint(1,100)

print(x1,"\n -")
print(x2, "\n -")
print(x3, "\n -")

print("Valores")

if x1>10 and x2>10 and x3>10:
        print("Todos son mayores que 10")
else:
        print("Fuuuuuuuuu")


6.  if - elif

Usamos if - elif como recurso de elegancia, me refiero a que es una forma de que nuestras estructuras anidadas sean mas comprensibles y estén mas ordenadas. De esta forma podamos llevar mejor la revisión de nuestro código en scripts de mayor tamaño.

Pasemos a un ejemplo:

import random
x=random.randint(1,1000)
print(x, "\n")
if x<10:
        print("Tiene 1 digito")
elif x<100:
        print("Tiene 2 digitos")
elif x<1000:
        print("Tiene 3 digitos")
else:
        print("Tiene 4 digitos")


Si notan y comparan con la anidacion que normalmente veníamos usando, este tipo de recurso se ve mucho mas fácil y entendible, acortandonos codificación y tamaño de nuestro algoritmo. La diferencia, radica en la indentación por cada estructura condicional, lo cual acá con elif, cambia de manera mas sencilla.

>>>>>
Pues bien, hasta aquí con los temas que planteamos repasar, en el próximo post revisaremos algo de estructuras repetitivas, funciones, tuplas y listas.
>>>>>>



15/1/13

Algo de Python como para no olvidar :D

Hace poco tuve una idea algo extraña sobre crear un script que me ayude con la limpieza de directorios específicos dentro de mi Arch, a los directorios que me refiero pues a todos los implicados en la instalación de los paquetes de entornos de escritorio, en mi caso Gnome Shell, para evitar algunos dolores de cabeza y mantener un sistema libre de errores en la GUI.


Pero bueeee... el script no lo e terminado, así que estaba practicando un poco para refrescar los conocimientos en python...Que tal si empezamos desde lo básico...Pero rápido!!


1. WTF is python ?
Python es un lenguaje de script desarrollado por Guido Van Rossum, donde podemos codificar empleando programación lineal, estructurada y orientada a objetos .

Podemos ejecutar código python desde la consola o creando archivos con extensión  .py 
De manera tan efectiva les digo que python lo podemos encontrar en todo sitio, debido a que es multi-plataforma y multi-proposito.
 - En aplicaciones que se ejecutan en la parte del servidor, aplicaciones de escritorio usando recursos visuales como GTK,  Swing, QT,  .Net, etc
- Aplicaciones sistemáticas sin GUI, encargadas de procesos invisibles para el usuario con labores por ejemplo de mantenimiento, backups, eliminación periódica de archivos innecesarios, etc.
- Y en plataformas móviles.

2. Que tal si empezamos?

Pues bien, antes de empezar, cabe mencionar que en nuestra distribución linux de preferencia necesitamos herramientas tan básicas como un editor de texto o la misma consola. Pero por supuesto debemos revisar si tenemos instalado python en nuestro sistema con solo teclear el comando python en la terminal.

.....y tendremos algo como esto...

[rixo@localhost ~]$ python
Python 3.3.0 (default, Dec 22 2012, 21:02:07) 
[GCC 4.7.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

En el caso de no tenerlo instalado pues, instalen xD  pacman -S python  y listo.... Recordando que la actual versión Python 3.xx presenta ligeros cambios dentro de su sintaxis, que no nos representa mayor dificultad pero que debemos tener en cuenta en caso de algún error , aquí mostrare mas o menos los cambios dentro de la versión actual. 

Pues bien, que tal si empezamos con un simple hola motherfuckers (porque el hola mundo ya esta muy visto xD)

...podemos abrir la terminal y crearnos un directorio de practica :D  para mas orden y comodidad....

$ mkdir /home/usuario/PracticasPy

Bien ahora podremos dentro del directorio usar nano, vi o si desean gedit u otro....Yo uso nano:

$ nano himoth.py

Dentro del archivo ubicamos:

$ print("Hola Motherfuckers")

Si, aqui cabe señalar que en las versiones 2.xx de python sencillamente podíamos hacer un:
$ print "Hola Motherfuckers"

Pero en la actual versión   print  ya no es un statement, si no mas bien, paso a ser una función. Algo que no nos trae mayores problemas, así como algunos otros cambios que iré mencionando en el resto de publicaciones.

Bien ya que aclaramos esto, lo siguiente era guardar el archivo (CTRL+O) y salir, luego ejecutamos el .py que creamos así:

$ python himoth.py

Y listo....

Hola Motherfuckers


Entonces creado nuestro directorio de practicas, aclarado como ejecutar los módulos que creamos, pasemos a escalar aun mas nuestros conocimientos...

3. Variables? Donde?
Si hablamos de variables, se nos viene a la mente los tipos de datos que manejamos en cualquier lenguaje de programación...Pues bien.

Tenemos, por ejemplo datos de una persona:

nombre="Pepito"      #Cadena
edad=24                  #Entero
estatura=1.52          #Flotante
humano=True         #Booleano

Y las variables complejas... como

valor=7+4x         #Compleja


Hagamos un pequeño ejercicio con el manejo de variables:

$ nano varia.py 

print("New Person \n")
myName="RIXO"
myLastname="DAV"
age=22

print("Name", myName,"\n", "LastName", myLastname, "\n", "Age", age)


>>>>>>>>>>>Lo cual nos mostrara:

Name RIXO
LastName DAV
AGE 22

>>>>>>>>>> Y bueno, creo que en el proximo post adelantamos mas....Tengo que comer algo :3  Muero de hambre :D 

Venimos con operadores matemáticos, estructuras de control, operadores de relación y  estructuras anidadas.