Mostrando entradas con la etiqueta Python. Mostrar todas las entradas

Taller de Python 3 #1

En este taller veremos las novedades sobre Python 3, que cosas nuevas e interesantes trae, que lo diferencia con Python 2, a demas conoceremos los depuradores que trae. Miraremos por arriba lo que es profiling, y de que manera usarlo para medir el rendimiento de la ejecucion de algun script programado en Python.

Este taller estara orientado a aquellas personas que no han visto jamas Python y tambien a aquellos que quieran pasar de Python 2 al 3



Taller de Python #2

 


Taller de Python #1


Introducción a Python

En este taller veremos Python desde cero. Empezaremos por descargar nuestro interprete e iremos avanzando en conocimientos hasta llegar a desarrollar nuestros propios programas.
Python es un lenguaje scripting por lo tanto se interpreta en lugar de compilarse, a diferencia de otros lenguajes que es necesario pasarlos a binarios para que puedan ejecutarse.
Es un lenguaje multiplataforma, ya que no solo se usa en Windows, sino que también se puede usar en Linux, MAC, etc.
Una de las ventajas es que es un lenguaje muy prolijo y entendible a la hora de programarlo y esto facilita la tarea de aprenderlo.
A lo largo de este taller, veremos lo potente e importante que puede ser saber Python.

Instalación

Windows de 32 o 64 bits?

Lo que primero debemos hacer, es saber si nuestro sistema operativo es de 32 o 64 bits. Para ello vamos a:

Inicio >> Panel de control >> Sistema
 
En mi caso estoy utilizando un sistema operativo de 32 bits.
Lo que necesitaremos para poder programar en este lenguaje, será un editor de texto y el interprete de Python.
Con respecto al editor de texto, pueden utilizar cualquiera que les agrade o les resulte cómodo, yo utilizare Sublime Text 2

Y al intérprete de Python

Instalación en Windows

En la pagina del interprete, podremos ver lo siguiente: 

NOTA: Usaremos por ahora Python 2.x debido a que es la versión estable. Mas adelante, veremos algo de Python 3.x

Una vez descargado, ejecutamos el MSI que descargamos


Es muy importante saber la ruta en donde se instalara. Yo les recomiendo dejarla en donde viene por defecto que es en C:\Python27\
Damos en Next y continuamos la instalación hasta que finalice

Ahora abrimos una consola:
INICIO > EJECUTAR > COMMAND (En Windows 95,98)
INICIO > EJECUTAR > CMD  (En Windows XP)
INICIO > EN LA BARRA BUSCAR > CMD (En Windows Vista y 7)
Y dentro de la consola escribimos python, lo mas probable, es que les aparezca el siguiente error:

"python" no se reconoce como un comando interno o externo, programa o archivo por lotes ejecutable.

Esto se debe a que no esta añadido en las variables de entorno, asique tipeamos lo siguiente:
PATH C:\Python27;%PATH%

Presionamos enter, cerramos la consola y la volvemos a abrir… Ahora si tipeamos python, debería aparecernos algo como esto:


Esto nos indica que lo hemos hecho bien, y ya podemos comenzar a programar.

Instalación en Linux

La instalacion en Linux es mucho mas facil… abrimos una consola (CTRL + ALT + T) y tipeamos:
sudo apt-get install python
Y esto nos instalara Python en linux.
Luego al comienzo de cada script, debemos añadir la linea:
#! /usr/bin/pyhton27
Para que el intérprete busque ahí las librerías.

Primeros pasos en Python 

Comenzaremos con programas básicos. Como dijimos en la introducción, Python es un lenguaje scripting ya que no es necesario compilarlo para poder ver el programa en funcionamiento.
Dentro de la consola, pondremos 5+7 y veremos lo que pasa

 

Rápidamente nos hará el cálculo.
Python se caracteriza por ser una potente calculadora. Es por eso que ahora probaremos con algo más avanzado.
En la consola pondremos 56+28-34*6
 

Ahora también podemos trabajar con variables, asignándoles algún valor.
Podemos probar con X=7
Seguido a esto colocamos 105*X


Hasta el momento se ve muy fácil y básico, aunque también muy tedioso ya que tipear comandos desde la consola no es muy gustoso, es por eso que ahora armaremos nuestro primer script.

Operadores Aritmeticos

 A continuación veremos los operadores que se suelen utilizar con frecuencia en Python.

 

Nuestro Primer Script

Abrimos nuestro editor de texto y haremos el famoso "Hola Mundo"
Dentro del editor pondremos:
print "Hola Mundo"


La sintaxis print sirve para mostrar una cadena de valores en pantalla. Un poco mas adelante lo veremos mas en detalle.
Ahora lo guardamos (CTRL + S) o (File >>Save As..), lo guardamos con extension *.py y nos aseguramos que en tipo de archivo diga “All Files (*.*)”

 

Y ahora lo correremos nuestro script desde la consola.
Es importante saber en donde guardamos nuestro script, yo lo hice en el escritorio, asique desde la consola, debemos pararnos en el directorio en donde esta guardado y tipeamos
python taller1.py
 
Y nos muestra nuestro Hola mundo…

Variables

Las variables en Python pueden estar formadas por letras o números, pero siempre deben comenzar con letras o un guion bajo. Algo a tener en cuenta, es que este lenguaje es sensible a mayúsculas y minúsculas. Es decir, para el intérprete no es lo mismo "A" que "a".

Las variables en Python pueden ser de tipo:

Numerica:

Enteros (Ej: 7) Son números positivos y negativos, que no poseen decimales.
Dentro de los enteros, tenemos dos tipos, Cortos (int) o Largos (long) expresados de la siguiente forma:
Entero_corto = 7
Entero_largo = 7L
Flotante (Ej: 7,9) Son todos números reales que posean decimales y se representan como (float)
Flotante = 1.345
Compleja o imaginaria (Ej: 2+3i) Son aquellos que poseen una parte real y otra imaginaria y se representan como (complex)
Imag = 4.3 + 7i
Cadenas de Texto: (Ej: "ANTRAX"), las cadenas de texto es simplemente texto y pueden estar entre comillas dobles o simples
Ej1 = "ANTRAX"
Ej2 = 'ANTRAX'
Booleano: True, False (Verdadero o Falso), Estos dos son muy utilizados en bucles o condiciones.

Concatenaciones

Como vimos antes, es posible sumar, restar, multiplicar, dividir, etc… Pero no solo se hace con números sino que también con letras, palabras y variables.
Realizaremos el siguiente ejemplo:

Como resultado tendremos


Ya que sumo las dos cadenas de texto, la del Hola y X que tenia almacenado otra cadena de texto.
Otra forma de concatenar dos cadenas de texto seria:
print "Hola" + "underc0de"
Y con eso obtendremos el mismo resultado que la forma anterior.
Ahora veremos un ejemplo un poco más complejo, en donde concatenaremos números, variables y cadenas de texto

Explico rápidamente, guarde mi nick en la variable a, luego en el print, lo que hice fue mostrar la cadena de texto "hola" concatenado con la variable "a" que es mi Nick, hasta aquí tenemos "hola ANTRAX" luego lo concatene con "el resultado de 145 + 34 es" y hasta aquí tendríamos "hola ANTRAX el resultado de 145 + 34 es" finalmente para concatenar con números, es necesario colocar una coma. Aquí lo que hace es resolver la suma algebraica de 145+34 y como resultado final tenemos:

 Comentarios

 Los comentarios sirven para ayudar a entender el código, para explicar una función o simplemente agregar algún texto.
Es importante saber que estos comentarios no son ejecutados a la hora de correr el programa. Para colocar un comentario, solo basta con poner el carácter numeral, seguido del comentario. Ejemplo:
#esto es un comentario
Aquí lo mostrare en el editor de texto:


Los comentarios suelen ser útiles a la hora de hacer publico un script, de esta forma, la persona que lo lea pueda entender mejor que hace cada función del código.

Python desde Android

Como parte extra de este taller, les enseñare a instalar Pythonen algún dispositivo móvil con Android, para que puedan programar desde el.
Lo que necesitamos descargar el ultimo APK del SL4a. Actualmente la última versión es la r6.
Instalamos como cualquier apk de android y lo abrimos.

 Presionamos en View
 Entramos a Interpreters

Y agregamos a Python… A demás de python, como podrán ver, pueden agregar Perl, Ruby, PHP entre otros

 Al presionar sobre Python, lo comienza a descargar

 
 Luego lo instalamos
 

Esto suele demorar algunos minutos en descargar los módulos y librerías


Una vez que termine, veremos algo como esto


 Volvemos a abrir SL4a y podremos ver scripts de muestra hechos en Python


Finalmente clickeando sobre alguno de ellos, tendremos la opción de editarlos o ejecutarlos.

Ejercitacion

1.- Realizar un código que concatene 3 variables, de las cuales 2 sean numéricas.
El usuario X lleva Y días y Z horas conectado
2.- Realizar un código para cada uno de los siguientes ejercicios. Cada número debe ser una variable
a. 273 * 4 + 97 * 5 – 1200 / 6
b. 1470 / 5 + 400 * 2 - 49**2
c. 15**5 / 50 – 37 * 4
Todos los resultados deben mostrarse de la siguiente forma:
El resultado es:

I / O en Python

Introducción:

La función f.write de python, se usa para la entrada y salida de datos. Esta función es muy útil, ya que no solo permite crear archivos de texto plano, sino que también podemos hacer otros scripts a partir de este.

Creando un archivo:

Empezaremos creando un archivo de texto plano. El comando para ello es el siguiente:
f= open("test.txt")
Si no añadimos ningún parámetro, por defecto le añadirá 'r'. Este parámetro sirve para leer datos que hay en ese archivo.
Si lo que deseamos es crear un fichero para escribir en el, debemos colocar:
f=open("test.txt", 'w')
Si queremos añadir contenido al final del archivo, se coloca 'a'
f=open("test.txt", 'a')
Para utilizar el contenido de un binario se coloca 'b'
f=open("test.txt", 'b')
Para cerrarlo, solo basta con llamar a
f.close()
Escribiendo en el archivo:

Para poder escribir en el fichero, se utiliza el comando:
f.write("texto")
Veremos un ejemplo:
f = open("test.txt",'w')
f.write('hola mundo\n')
a=raw_input("Ingrese numero: ")
f.write("El numero ingresado es: ")
f.write(a)
f.close()
Creamos el fichero, colocamos un hola mundo y escribimos un número

Leer un archivo:

Para poder leer un archivo, se utiliza el comando read. La línea sería la siguiente:
f.read()
Y si queremos que nos imprima el contenido del txt. Solo debemos añadirle un print:
f = open("test.txt")
print f.read()
f.close()
Si quisiéramos leer una sola línea, reemplazamos el read por readline. Y de esta forma solo nos leerá una línea.
Scripts
A demás de texto plano, podemos también crear scripts en python. Solo deberíamos hacer una modificacion
f= open("test.py", 'w')
El resto ya sería el script. Y acá les dejo un ejemplo con una suma de dos números

Script:
f = open("test.py",'w')
f.write('a=raw_input("Ingrese un numero: ")\n')
f.write('print "Valor de a:", a\n')
f.write('b=raw_input("Ingrese otro numero: ")\n')
f.write('print "Valor de b:", b\n')
f.write('c=a+b\n')
f.write('print "Resultado de la suma:", c')
f.close()
Resultado:
a=raw_input("Ingrese un numero: ")
print "Valor de a:", a
b=raw_input("Ingrese otro numero: ")
print "Valor de b:", b
c=a+b
print "Resultado de la suma:", c

Crackeador MD5 por Diccionario



Modo de uso:
Cracker.py [HASH (MD5)] [Diccionario]
Ejemplo:
Cracker.py e10adc3949ba59abbe56e057f20f883e diccionario.txt
Codigo en Python:
import md5, sys, getopt
ver= "1.0"
a=0
def run():
  
 if len(sys.argv) == 1 or sys.argv[1]=="-h" or sys.argv[1]=="--help":
  
   print ""
   print ""
   print "Modo de uso: Cracker.py [HASH (MD5)] [Diccionario]"
   print ""
   print "Ejemplo: Cracker.py e10adc3949ba59abbe56e057f20f883e diccionario.txt"
   print ""
    
 else:
  if sys.argv[1]=="-v" or sys.argv[1]=="--version":
   print "Cracker version: " + ver + "\nAutor: ANTRAX"
  
 
 if len(sys.argv) == 3:
     md5crack(sys.argv[1],sys.argv[2],)
 
  
def md5crack(hash,word):
 try:
  wordlist = open(word,"r")
 except IOError:
  print "Diccionario: " + word + " No Existe"
  sys.exit(0)
 
 global a
  
 for line in wordlist.xreadlines():
  word= line.replace("\n","")
  passw = md5.new(word)
 
  if (hash == passw.hexdigest()):
   print ""
   print "Password Crackeada!"
   print 'MD5: ' + passw.hexdigest() + ' ---> ' + word+''
   print "Visita Underc0de.org"
   a = 1
   sys.exit(0)
  
 if ( a == 0):
  print 'Password no Encontrada en este diccionario'
 wordlist.close()
 
def main():
 run()
 
   
if __name__ == "__main__":
    main()

Crackeador MD5 por Fuerza bruta

Aca les dejo este crackeador por fuerza bruta. Funciona de maravilla aunque no es muy rapido por el lenguaje. Quizas les sirva como ejemplo.

Modo de uso:
Cracker.py -t md5 -h e10adc3949ba59abbe56e057f20f883e -w 1234567890 -a 9 -i 3 -v
Comandos:
-t: Tipo de Hash
-h: Hash a Crackear
-w: Teclas a usar 
-a: Maximo de Caracteres
-i: Minimo de Caracteres
-v: Modo Hacking
Codigo Fuente:
import sys , string , time
def main():
    "Main"
    title = "MD5 Cracker Brute Force"
    print "\n" + title.center(45) + "\n"
 
def usage():
    "Usage"
    print "[+] Ejemplo : Cracker.py -t md5 -h e10adc3949ba59abbe56e057f20f883e -w 1234567890 -a 9 -i 3 -v"
 
def usagelarge():
    "Usage Large"
    print "\n  Forma de Uso:"
    print "\n  [+]Ejemplo: Cracker.py -t md5 -h e10adc3949ba59abbe56e057f20f883e -w 1234567890 -a 9 -i 3 -v"
    print ""
    print "\t[Comandos]"
    print "\t   -t: Tipo de Hash"
    print "\t   -h: Hash a Crackear"
    print "\t   -w: Teclas a usar" 
    print "\t   -a: Maximo de Caracteres"
    print "\t   -i: Minimo de Caracteres"
    print "\t   -v: Modo Hacking\n"
 
def timer():
    "Time"
    now = time.localtime(time.time())
    return time.asctime(now)
 
if '__main__' == __name__ :
 
    if len(sys.argv) <= 5:
        main()
        usagelarge()
        sys.exit(1)
 
    hhash = words = maxw = minw = typeh = ""
    verbose = 0
 
    for arg in sys.argv[1:]:
        try:
            if arg.lower() == "-v" or arg.lower() == "-verbose":
                    verbose = 1
            if arg.lower() == "-h" or arg.lower() == "-hash":
                    hhash = sys.argv[int(sys.argv[1:].index(arg))+2]
            if arg.lower() == "-a" or arg.lower() == "-max":
                    maxw = sys.argv[int(sys.argv[1:].index(arg))+2]
            if arg.lower() == "-i" or arg.lower() == "-min":
                    minw = sys.argv[int(sys.argv[1:].index(arg))+2]
            if arg.lower() == "-w" or arg.lower() == "-words":
                    words = sys.argv[int(sys.argv[1:].index(arg))+2]
            if arg.lower() == "-t" or arg.lower() == "-type":
                    typeh = sys.argv[int(sys.argv[1:].index(arg))+2]
        except(IndexError):
            print "[+] Comandos Obligatorios -t(Tipo de Hash) -h(Hash) -w(Teclas) -a(Maximo de teclas) -a(Minimo de teclas)"
            usage()
            sys.exit(1)
 
    if minw == "" : minw = '1'
 
    main()
    for args in (typeh, hhash, words, maxw, minw):
        try:
            if args != "":
                if args == typeh :
                    if typeh.lower() != 'md5' or 'sha':
                        if typeh.lower() == "md5" :
                            typeh = '1'
                            print "[+] Tipo de Hash : MD5"
                        elif typeh.lower() == "sha" :
                            typeh = '2'
                            print "[+] Tipo de Hash : SHA1"
                    else:
                        print "[+] Tipo Invalido de Hash"
                        sys.exit(1)
                if args == hhash :
                    if typeh == '1' :
                        if len(hhash) == 32 :
                            print "[+] MD5 Hash : " + hhash
                        else:
                            print "[+] Tipo Invalido de Hash"
                            sys.exit(1)
                    if typeh == '2' :
                        if len(hhash) == 40 :
                            print "[+] SHA1 Hash : " + hhash
                        else:
                            print "[+] SHA1 Invalido"
                            sys.exit(1)
                if args == words :
                    print "[+] Teclas a usar : " + words
                if args == maxw :
                    if maxw.isdigit() != False :
                        if int(maxw) >= 15 :
                            print "[+] Maximo de Digitos : 15 : " + maxw
                            sys.exit(1)
                        else:
                            if int(maxw) > int(minw):
                                print "[+] Maximo de Digitos : " + maxw
                            else:
                                print "[+] El Maximo de Digitos debe ser mayor al Minimo de Digitos"
                                sys.exit(1)
                    else:
                        print "[+] Maximo de Teclas = Digitos"
                        sys.exit(1)
                if args == minw :
                        if minw.isdigit() != False :
                            if int(minw) < int(maxw) :
                                print "[+] Minimo de Digitos : " + minw
                            else:
                                print "[+] El minimo de Digitos debe ser menor al maximo de Digitos"
                                sys.exit(1)
                        else:
                            print "[+] Minimo de Teclas = Digitos"
                            sys.exit(1)
            else:
                print "[+] Comandos Obligatorios -t(Tipo de Hash) -h(Hash) -w(Teclas) -a(Maximo de teclas) -a(Minimo de teclas)"
                usage()
                sys.exit(1)
        except(ValueError):
            print "[+] Formato de comandos erroneo"
            sys.exit(1)
 
    f = open("CRACK.py",'w')
    f.write("#!/usr/bin/env python\n")
    if (typeh == '1') : f.write("import sys , md5 , string , time\n")
    if (typeh == '2') : f.write("import sys , sha , string , time\n")
    tab = '\t'
    f.write("def timer():\n")
    f.write(tab + "now = time.localtime(time.time())\n")
    f.write(tab + "return time.asctime(now)\n")
    f.write("def crackhash():\n")
 
    i = 0 ; inwords = ""
    f.write(tab + "hashh = '" + hhash.lower() +"'\n")
    f.write(tab + "try:\n")
 
    #print words
    for i in words:
        if i == str(words[int(len(words)-1)]) : 
            inwords += "'" + i + "'"
            break
        inwords += "'" + i + "',"
    #print inwords
 
    i = int(minw) ; iwords = "" ; a = 0
 
    while (int(i) != int(maxw) + 1) :
 
        for a in range(i):
            if int(i) != (int(a) + 1):
                iwords += "i" + str(i) + str(a) + " + "
            else:
                 iwords += "i" + str(i) + str(a)
 
            data = (int(a + 2) * tab + "for i" + str(i) + str(a) + " in (" + inwords + "):\n")
            f.write(data)
 
        f.write(int(i + 2) * tab + "word = '' ; value = ''\n")
        f.write(int(i + 2) * tab + "word = " + iwords + "\n")
 
        if typeh == '1' : f.write(int(i + 2) * tab + "hash = md5.new()\n")
 
        if typeh == '2' : f.write(int(i + 2) * tab + "hash = sha.new()\n")
 
        f.write(int(i + 2) * tab + "hash.update(str(word))\n")
        f.write(int(i + 2) * tab + "value = hash.hexdigest()\n") 
        if verbose == 1 : f.write(int(i + 2) * tab + "print " + iwords + ' + " : " + str(value)\n')
        f.write(int(i + 2) * tab + "if str(hashh) == str(value):\n")
        f.write(int(i + 3) * tab + "raise Exception\n")
        iwords = ""
        i += 1
 
    f.write(tab + "except(Exception):")
    f.write('\n'+ 2 * tab + "print '********************  Hash Crackeado ' + 20 * '*'")
    f.write('\n' + 2 * tab + "print '[+] HASH :', hashh")
    f.write('\n' + 2 * tab + "print '[+] PASS :', str(word)")
    f.write('\n' + 2 * tab + "print '[+] Hora de finalizacion :', timer()")
    f.write('\n' + 2 * tab + "sys.exit(1)")
    f.write('\n' + tab + "except(KeyboardInterrupt):")
    f.write('\n' + 2 * tab + "print '[+] Process Ended ',timer()")
    f.write('\n' + 2 * tab + "sys.exit(1)")
    f.write("\ncrackhash()")
    f.close()
 
    print '[+] Hora de inicio : ', timer()
 
    import CRACK
    CRACK.crackhash()

Calculadora de Matrices en Python

Hola a todos. Estaba aburrido y decidi codear algo util en Python. Hice esta calculadora que resuelve operaciones con matrices.


Codigo Fuente:
#/==================================\
#  Calculadora de matrices en Python
#  CODED BY ANTRAX
#  antrax.dc0de [at] gmail [dot] com
#\==================================/

#Menu

salir = "s"

while salir == "s":
    
    print "    --=** MENU **=--"
    print ""
    print "[1] Suma de Matrices"
    print "[2] Resta de Matrices"
    print "[3] Multiplicacion de Matrices"
    print "[4] Multiplicacion por un Numero"
    print "[5] Transpuesta de una Matriz"
    print ""
    
#Modelo de la Matriz
    print "Modelo de la Matriz"
    print ""
    print   "[F1C1 F1C2 F1C3]"
    print   "[F2C1 F2C2 F2C3]"
    print   "[F3C1 F3C2 F3C3]"
    print ""

#Opcion "1" SUMA
    x=input("Ingrese Opcion: ")
    print ""
    if x==1:

#Matriz "A"
        print "Ingrese la Matriz A"
        print ""
        af1c1=int(raw_input("Ingrese el valor de F1C1: "))
        af1c2=int(raw_input("Ingrese el valor de F1C2: "))
        af1c3=int(raw_input("Ingrese el valor de F1C3: "))
        af2c1=int(raw_input("Ingrese el valor de F2C1: "))
        af2c2=int(raw_input("Ingrese el valor de F2C2: "))
        af2c3=int(raw_input("Ingrese el valor de F2C3: "))
        af3c1=int(raw_input("Ingrese el valor de F3C1: "))
        af3c2=int(raw_input("Ingrese el valor de F3C2: "))
        af3c3=int(raw_input("Ingrese el valor de F3C3: "))

#Visualizacion Matriz "A"
        print ""
        print "MATRIZ A"
        print ""
        print "[", af1c1, af1c2, af1c3, "]"
        print "[", af2c1, af2c2, af2c3, "]"
        print "[", af3c1, af3c2, af3c3, "]"
        print ""

#Matriz "B"
        print "Ingrese la Matriz B"
        print ""
        bf1c1=int(raw_input("Ingrese el valor de F1C1: "))
        bf1c2=int(raw_input("Ingrese el valor de F1C2: "))
        bf1c3=int(raw_input("Ingrese el valor de F1C3: "))
        bf2c1=int(raw_input("Ingrese el valor de F2C1: "))
        bf2c2=int(raw_input("Ingrese el valor de F2C2: "))
        bf2c3=int(raw_input("Ingrese el valor de F2C3: "))
        bf3c1=int(raw_input("Ingrese el valor de F3C1: "))
        bf3c2=int(raw_input("Ingrese el valor de F3C2: "))
        bf3c3=int(raw_input("Ingrese el valor de F3C3: "))
        print ""

#Visualizacion Matriz "B"
        print "MATRIZ B"
        print""
        print "[", bf1c1, bf1c2, bf1c3, "]"
        print "[", bf2c1, bf2c2, bf2c3, "]"
        print "[", bf3c1, bf3c2, bf3c3, "]"
        print ""
    
#Operacion Suma
        rf1c1 = af1c1 + bf1c1
        rf1c2 = af1c2 + bf1c2
        rf1c3 = af1c3 + bf1c3
        rf2c1 = af2c1 + bf2c1
        rf2c2 = af2c2 + bf2c2
        rf2c3 = af2c3 + bf2c3
        rf3c1 = af3c1 + bf3c1
        rf3c2 = af3c2 + bf3c2
        rf3c3 = af3c3 + bf3c3
    
#Visualizacion Matriz "Resultado"
        print "MATRIZ Resultado"
        print ""
        print "[", rf1c1, rf1c2, rf1c3, "]"
        print "[", rf2c1, rf2c2, rf2c3, "]"
        print "[", rf3c1, rf3c2, rf3c3, "]"
        print ""
    
#Opcion "2" RESTA
    elif x==2:

#Matriz "A"
        print "Ingrese la Matriz A"
        print ""
        af1c1=int(raw_input("Ingrese el valor de F1C1: "))
        af1c2=int(raw_input("Ingrese el valor de F1C2: "))
        af1c3=int(raw_input("Ingrese el valor de F1C3: "))
        af2c1=int(raw_input("Ingrese el valor de F2C1: "))
        af2c2=int(raw_input("Ingrese el valor de F2C2: "))
        af2c3=int(raw_input("Ingrese el valor de F2C3: "))
        af3c1=int(raw_input("Ingrese el valor de F3C1: "))
        af3c2=int(raw_input("Ingrese el valor de F3C2: "))
        af3c3=int(raw_input("Ingrese el valor de F3C3: "))
        print ""
    
#Visualizacion Matriz "A"
        print "MATRIZ A"
        print ""
        print "[", af1c1, af1c2, af1c3, "]"
        print "[", af2c1, af2c2, af2c3, "]"
        print "[", af3c1, af3c2, af3c3, "]"
        print ""
    
#Matriz "B"
        print "Ingrese la Matriz B"
        print ""
        bf1c1=int(raw_input("Ingrese el valor de F1C1: "))
        bf1c2=int(raw_input("Ingrese el valor de F1C2: "))
        bf1c3=int(raw_input("Ingrese el valor de F1C3: "))
        bf2c1=int(raw_input("Ingrese el valor de F2C1: "))
        bf2c2=int(raw_input("Ingrese el valor de F2C2: "))
        bf2c3=int(raw_input("Ingrese el valor de F2C3: "))
        bf3c1=int(raw_input("Ingrese el valor de F3C1: "))
        bf3c2=int(raw_input("Ingrese el valor de F3C2: "))
        bf3c3=int(raw_input("Ingrese el valor de F3C3: "))
        print ""

#Visualizacion Matriz "B"
        print "MATRIZ B"
        print ""
        print "[", bf1c1, bf1c2, bf1c3, "]"
        print "[", bf2c1, bf2c2, bf2c3, "]"
        print "[", bf3c1, bf3c2, bf3c3, "]"
        print ""
    
#Operacion Resta    
        rf1c1 = af1c1 - bf1c1
        rf1c2 = af1c2 - bf1c2
        rf1c3 = af1c3 - bf1c3
        rf2c1 = af2c1 - bf2c1
        rf2c2 = af2c2 - bf2c2
        rf2c3 = af2c3 - bf2c3
        rf3c1 = af3c1 - bf3c1
        rf3c2 = af3c2 - bf3c2
        rf3c3 = af3c3 - bf3c3

#Visualizacion Matriz "Resultado"
        print "MATRIZ Resultado"
        print ""
        print "[", rf1c1, rf1c2, rf1c3, "]"
        print "[", rf2c1, rf2c2, rf2c3, "]"
        print "[", rf3c1, rf3c2, rf3c3, "]"
        print ""

#Opcion "3" MULTIPLICACION
    elif x==3:
    
#Matriz "A"
        print "Ingrese la Matriz A"
        print ""
        af1c1=int(raw_input("Ingrese el valor de F1C1: "))
        af1c2=int(raw_input("Ingrese el valor de F1C2: "))
        af1c3=int(raw_input("Ingrese el valor de F1C3: "))
        af2c1=int(raw_input("Ingrese el valor de F2C1: "))
        af2c2=int(raw_input("Ingrese el valor de F2C2: "))
        af2c3=int(raw_input("Ingrese el valor de F2C3: "))
        af3c1=int(raw_input("Ingrese el valor de F3C1: "))
        af3c2=int(raw_input("Ingrese el valor de F3C2: "))
        af3c3=int(raw_input("Ingrese el valor de F3C3: "))
        print ""

#Visualizacion Matriz "A"
        print "MATRIZ A"
        print ""
        print "[", af1c1, af1c2, af1c3, "]"
        print "[", af2c1, af2c2, af2c3, "]"
        print "[", af3c1, af3c2, af3c3, "]"
        print ""
    
#Matriz "B"
        print "Ingrese la Matriz B"
        print ""
        bf1c1=int(raw_input("Ingrese el valor de F1C1: "))
        bf1c2=int(raw_input("Ingrese el valor de F1C2: "))
        bf1c3=int(raw_input("Ingrese el valor de F1C3: "))
        bf2c1=int(raw_input("Ingrese el valor de F2C1: "))
        bf2c2=int(raw_input("Ingrese el valor de F2C2: "))
        bf2c3=int(raw_input("Ingrese el valor de F2C3: "))
        bf3c1=int(raw_input("Ingrese el valor de F3C1: "))
        bf3c2=int(raw_input("Ingrese el valor de F3C2: "))
        bf3c3=int(raw_input("Ingrese el valor de F3C3: "))
        print ""

#Visualizacion Matriz "B"
        print "MATRIZ B"
        print ""
        print "[", bf1c1, bf1c2, bf1c3, "]"
        print "[", bf2c1, bf2c2, bf2c3, "]"
        print "[", bf3c1, bf3c2, bf3c3, "]"
        print ""
    
#Operacion Multiplicacion    
        rf1c1= (af1c1 * bf1c1) + (af1c2 * bf2c1) + ( af1c3 * bf3c1)
        rf1c2= (af1c1 * bf1c2) + (af1c2 * bf2c2) + ( af1c3 * bf3c2)
        rf1c3= (af1c1 * bf1c3) + (af1c2 * bf2c3) + ( af1c3 * bf3c3)
        rf2c1= (af2c1 * bf1c1) + (af2c2 * bf2c1) + ( af2c3 * bf3c1)
        rf2c2= (af2c1 * bf1c2) + (af2c2 * bf2c2) + ( af2c3 * bf3c2)
        rf2c3= (af2c1 * bf1c3) + (af2c2 * bf2c3) + ( af2c3 * bf3c3)
        rf3c1= (af3c1 * bf1c1) + (af3c2 * bf2c1) + ( af3c3 * bf3c1)
        rf3c2= (af3c1 * bf1c2) + (af3c2 * bf2c2) + ( af3c3 * bf3c2)
        rf3c3= (af3c1 * bf1c3) + (af3c2 * bf2c3) + ( af3c3 * bf3c3)

#Visualizacion Matriz "Resultado"
        print "MATRIZ Resultado"
        print ""
        print "[", rf1c1, rf1c2, rf1c3, "]"
        print "[", rf2c1, rf2c2, rf2c3, "]"
        print "[", rf3c1, rf3c2, rf3c3, "]"
        print ""

#Opcion "4" MULTIPLICACION POR UN NUMERO
    elif x==4:
        z=int(raw_input("Ingrese el numero para multiplicar con la matriz: "))
        print ""
        
#Matriz "A"
        print "Ingrese la Matriz A"
        print ""
        af1c1=int(raw_input("Ingrese el valor de F1C1: "))
        af1c2=int(raw_input("Ingrese el valor de F1C2: "))
        af1c3=int(raw_input("Ingrese el valor de F1C3: "))
        af2c1=int(raw_input("Ingrese el valor de F2C1: "))
        af2c2=int(raw_input("Ingrese el valor de F2C2: "))
        af2c3=int(raw_input("Ingrese el valor de F2C3: "))
        af3c1=int(raw_input("Ingrese el valor de F3C1: "))
        af3c2=int(raw_input("Ingrese el valor de F3C2: "))
        af3c3=int(raw_input("Ingrese el valor de F3C3: "))
        print ""

#Visualizacion Matriz "A"
        print "MATRIZ A"
        print ""
        print "[", af1c1, af1c2, af1c3, "]"
        print "[", af2c1, af2c2, af2c3, "]"
        print "[", af3c1, af3c2, af3c3, "]"
        print ""

#Operacion Multiplicacion por numero

        rf1c1 = z * af1c1
        rf1c2 = z * af1c2
        rf1c3 = z * af1c3
        rf2c1 = z * af2c1
        rf2c2 = z * af2c2
        rf2c3 = z * af2c3
        rf3c1 = z * af3c1
        rf3c2 = z * af3c2
        rf3c3 = z * af3c3

#Visualizacion Matriz "Resultado"
        print "MATRIZ Resultado"
        print ""
        print "[", rf1c1, rf1c2, rf1c3, "]"
        print "[", rf2c1, rf2c2, rf2c3, "]"
        print "[", rf3c1, rf3c2, rf3c3, "]"
        print ""

#Opcion "5" Transpuesta
    elif x==5:
        
#Matriz "A"
        print "Ingrese la Matriz A"
        print ""
        af1c1=int(raw_input("Ingrese el valor de F1C1: "))
        af1c2=int(raw_input("Ingrese el valor de F1C2: "))
        af1c3=int(raw_input("Ingrese el valor de F1C3: "))
        af2c1=int(raw_input("Ingrese el valor de F2C1: "))
        af2c2=int(raw_input("Ingrese el valor de F2C2: "))
        af2c3=int(raw_input("Ingrese el valor de F2C3: "))
        af3c1=int(raw_input("Ingrese el valor de F3C1: "))
        af3c2=int(raw_input("Ingrese el valor de F3C2: "))
        af3c3=int(raw_input("Ingrese el valor de F3C3: "))
        print ""

#Visualizacion Matriz "A"
        print "MATRIZ A"
        print ""
        print "[", af1c1, af1c2, af1c3, "]"
        print "[", af2c1, af2c2, af2c3, "]"
        print "[", af3c1, af3c2, af3c3, "]"
        print ""

#Visualizacion Matriz "Resultado"
        print "MATRIZ Transpuesta"
        print ""
        print "[", af1c1, af2c1, af3c1, "]"
        print "[", af1c2, af2c2, af3c2, "]"
        print "[", af1c3, af2c3, af3c3, "]"
        print ""
    salir = raw_input("Desea realizar otra operacion?(S/N) ")
    print ""


Tambien es compatible con Android.