Operaciones Binarias en Python

viernes, 15 de agosto de 2008

En Python podemos operar con numeros binarios también. Primero recordemos un poco:
por temas de simplificacion vamos a trabajar hasta con cuatro bits.

Decimal

Binario

0

0000

1

0001

2

0010

3

0011

4

0100

5

0101

6

0110

7

0111

8

1000

9

1001

10

1010

11

1011

12

1100

13

1101

14

1110

15

1111


Es un poco complicado trabajar con numeros binarios, en Python simulamos trabajar con ellos pero se trabaja con numero decimales. Esto es así:

Operador AND
>>> 14 & 5
4

internamente esto opera:


14 = 1110
AND
5 = 0101
------
4 = 0100

De izquierda a derecha:
0 AND 1 = 0
1 AND 0 = 0
1 AND 1 = 1
1 AND 0 = 0


>>> 9 & 3
1

Internamente:

9 = 1001
AND
3 = 0011
--------
1 = 0001

De derecha a izquierda:
1 AND 1 = 1
0 AND 1 = 0
0 AND 0 = 0
1 AND 0 = 0

Operador OR
>>> 14 | 5
15


14 = 1110
OR
5 = 0101
--------
15 = 1111


De derecha a izquierda:
0 OR 1 = 1
1 OR 0 = 1
1 OR 1 = 1
1 OR 0 = 1

>>> 9 | 3
11


9 = 1001
OR
3 = 0011
--------
1 = 0001


De derecha a izquierda:
1 OR 1 = 1
0 OR 1 = 0
0 OR 0 = 0
1 OR 0 = 0


Operador XOR
>>> 14 ^ 5
11

14 =     1110

XOR
5 = 0101
--------
15 = 1011
De derecha a izquierda:
0 OR 1 = 1
1 OR 0 = 1
1 OR 1 = 0
1 OR 0 = 1


>>> 9 ^ 3

10

9 =      1001

XOR
3 = 0011
--------
1 = 1010

1 XOR 1 = 0
0 XOR 1 = 1
0 XOR 0 = 0
1 XOR 0 = 1


¿Que es y por que Python?

martes, 17 de junio de 2008













Si llegaste acá existe un 97.905% de que ya sepas que es un lenguaje de programacion.
Estoy suscrito a una lista de correos llamada Pyar, que es una comunidad de Python en Argentina, su pagina es www.python.com.ar. En dicha lista Manuel Kaufmann hizo sin duda, la mejor pregunta para comenzar con una introducción a Python :


¿Cuales son las características de Python que más te gustan?

hubo aproximadamente 40 respuestas y cantidades de coincidencias:

  • La comunidad que siempre te da una mano.
  • La sintaxis.
  • Fácil de escribir, y fácil de leer.
  • Que es dinámico, y deja ser expresivo.
  • Gran cantidad de librerías y por ello, evitan tener que "reinventar la rueda".
  • Permite tanto, desarrollo de aplicaciones de escritorio como web, scripts.
  • Fácil de aprender.
  • Es libre.


Pocos lenguajes cuentan con estas características. Vamos de a poco.

La comunidad: así como nombré anteriormente la lista de Pyar, existen otras listas de correo y foros también, la mayoría siempre está dispuesta a ayudarte y con la mejor onda, que por propia experiencia no en todos lados se ve, esto supongo que se ve por la filosofía de Python.

La sintaxis: Para los que no saben, no voy a entrar muy en detalle porque van a salir corriendo gritando por la calle y vaya uno a saber que más. La sintaxis en un lenguaje tiene que ver con el orden en que se ponen las palabras. Por ejemplo, decir:
"casa voy a mañana tu"
es una sintaxis incorrecta en nuestro lenguaje, lo correcto en el castellano sería decir:
"mañana voy a tu casa"
Con los lenguajes de programación pasa lo mismo, la importancia de la sintaxis en un lenguaje radica en la facilidad de entender, aprender y la comodidad a la hora de escribir código.

La sintaxis de Python es realmente sencilla.
Para los que entienden un poco, no hay palabras reservadas para iniciar o finalizar bloques de programas, tampoco es necesario definir las variables.

Fácil de escribir, y fácil de leer: Esto también es importantisimo por lo ya antes mencionado. Que contenga esta particularidad hace que sea mucho mas fácil de aprender, programar. En resumen, con esta característica la vida programativa es sencillamente feliz.

Que es dinámico, y deja ser expresivo: Que un lenguaje sea dinámico significa que el mismo lenguaje encarga de liberar espacio en la RAM, entre otras cosas, lo que nos permite a nosotros como programadores solo preocuparnos por hacer nuestro programa. Esto no pasa en lenguajes estáticos como C, Pascal, JAVA, por decir algunos.
Que sea expresivo, básicamente quiere decir que escribimos poco código y damos muchas instrucciones.

Gran cantidad de librerías y por ello, evitan tener que "reinventar la rueda": Las librerías (bibliotecas o módulos) nos proporcionan a nosotros como programadores, funciones (tareas o actividades) que nuestro programa puede utilizar sin que nosotros las tengamos que escribirlas, útil ¿no?. Python cuenta con muchisimas librerías que nos ahorran bastante trabajo, por ejemplo una librería con la que podemos crear archivos .rar, o que nos permite manejar horas y fechas, interfaces gráficas, funciones random, etc.

Permite tanto, desarrollo de aplicaciones de escritorio como web, scripts: significa que tiene el potencial de poderlo usar para casi cualquier cosa, podemos desarrollar aplicaciones comerciales como un sistema de facturación, aplicaciones científicas como programas de matemática, en la bioinformática, desarrollo web y juegos.
Como dato anecdótico para que vean de lo que hablo Youtube fue hecha en Python y en su pagina oficial www.python.org dice que la NASA lo usa.

Fácil de aprender: bueno, creo que lo dejé claro con los puntos anteriores: su sintaxis y Fácil de escribir, y fácil de leer.

Es libre: Es decir, descargando el intérprete de Python podemos estudiar su código, modificarlo y hacer nuestro propio interprete.

Además de lo antes mensionado:
  • Programación Orientado a Objetos.
  • Programación Estructurada .
  • Un poco de programación funcional.
  • Es un lenguaje interpretado.
  • Multiplataforma: es decir, funciona en UNIX, Solaris, Linux, DOS, Windows, Mac OS, OS/2.

Espero haberle generado un poco de intriga a ver si se ponen a ver algo ;)

Documentación sobre Python en español:
Busquen porque hay mucho mas!
Espero que les haya servido de algo.