Cifrado Vigenère

El método original fue descrito por Giovan Battista Belasso en su libro de 1553 La cifra del Sig. Giovan Battista Belasso. Sin embargo, fue incorrectamente atribuido más tarde a Blaise de Vigenère, concretamente en el siglo XIX, y por ello aún se le conoce como el «cifrado Vigenère».

#!/usr/bin/python
#-*- coding: utf-8 -*-
#
abc = "abcdefghijklmnopqrstuvwxyz "

def cifrar(cadena, clave):  # FUNCION CIFRADO
    text_cifrar = ""
    i = 0
    for letra in cadena: 
        suma = abc.find(letra) + abc.find(clave[i % len(clave)])
        modulo = int(suma) % len(abc)
        text_cifrar = text_cifrar + str(abc[modulo]) 
        i = i + 1
    return text_cifrar

def descifrar(cadena, clave):  
    text_cifrar = ""
    i = 0
    for letra in cadena:
        suma = abc.find(letra) - abc.find(clave[i % len(clave)])  
        modulo = int(suma) % len(abc)
        text_cifrar = text_cifrar + str(abc[modulo])  
        i = i + 1
    return text_cifrar

def main():
    c = str(raw_input("Introduce cadena a cifrar: ")).lower()    
    clave = str(raw_input("Introduce clave: ")).lower() 
    print cifrar(c, clave)
    print

    c = str(raw_input("Introduce cadena a descifrar: ")).lower() 
    clave = str(raw_input("Introduce clave: ")).lower()
    print descifrar(c, clave) 
    print

if __name__ == "__main__":
    main()

El resultado sería el siguiente:

Introduce cadena a cifrar: cifrado de giovan battista belasso
Introduce clave: python
rfyyoqcxwlntxlnhamqyl wehysisyppkv

Introduce cadena a descifrar: rfyyoqcxwlntxlnhamqyl wehysisyppkv
Introduce clave: python
cifrado de giovan battista belasso

Tabla de Vigenère

Factorial de un número

El siguiente programilla nos daría el factorial de cualquier número.

#!/usr/bin/python
#
# SCRIPT QUE NOS DA EL FACTORIAL DE UN NUMERO
# INTRODUCE UN NUMERO Y HALLA SU FACTORIAL

# FORMULA: 0! = 1
# n! = n * (n - 1)!

def factorial(n):
    if n == 0:
        return 1
    else:                             # SI ES VALOR DISTINTO A 0... 
        recursivo = factorial(n-1)    # OBTEN EL FACTORIAL DEL NUMERO ANTERIOR
        resultado = n * recursivo     # MULTIPLICALO POR EL VALOR DADO
        return resultado

x = input("Introduce un numero para hallar su factorial: ")
print factorial(x)

División entre dos números

El siguiente programa es también muy sencillito. Se trata de una simple división entre dos números ya introducidos con anterioridad. En este caso serían el 6 y el 2.

#!/usr/bin/python
#
# SIMPLE FUNCION QUE DIVIDE DOS NUMEROS
a = 6
b = 2

def division(a, b):    
    print a/b

division(a, b)   # LLAMAMOS A LA FUNCION 

Llamando a la función, el resultado nos daría 3. 

Calculadora básica

Esto es una calculadora muy sencillita que te pedirá que ingreses 3 números y te hace la operación que deseas hacer, en este caso una suma.

#!/usr/bin/python
# 
# EL EJEMPLO MAS BASICO DE CALCULADORA

a = input('Introduce primer numero: ')
b = input('Introduce segundo numero: ')
c = input('Introduce tercer numero: ')

print 'La suma de los tres numeros introducidos es: ' , a + b + c

La salida es: 

Primero te pedirá que introduzcas tres números. 
Pongamos por caso que introducimos tres veces el número 5
Luego te dirá: La suma de los tres números introducidos es: 15 (5+5+5)

Y a partir de este modelo básico, a complicar las cosas.