Python es un lenguaje de programación
creado por Guido van Rossum
a finales de los ochentas cuyo nombre
está inspirado en el grupo de
cómicos ingleses “Monty Python”.
Se trata de un lenguaje interpretado o de script, con tipado dinámico
(no es necesario declarar el tipo de dato que va a contener una
determinada variable),
fuertemente tipado (no permite tratar a una
variable como si fuera de un tipo distinto al que tiene),
multiplataforma (UNIX, Solaris, Linux, DOS, Windows, OS/2, Mac OS,
etc.). Se trata además de un lenguaje de programación
multiparadigma
ya que soporta
orientación
a objetos,
programación
imperativa y, en menor medida,
programación
funcional.
Su sintaxis
simple, clara y sencilla;
el tipado dinámico, el gestor de memoria, la
gran cantidad de
librerías disponibles y la potencia del lenguaje, entre
otros,
hacen que desarrollar una aplicación en Python sea sencillo y
rápido.
Algunos casos de éxito en el uso de
Python son Google, Yahoo, la
NASA, Industrias Light & Magic, y
todas las distribuciones Linux, en
las que Python cada vez
representa un tanto por ciento mayor de los
programas disponibles.
Ligas de interés acerca de Python:
A continuación se presentan algunos ejercicios de programación en Python:
#!/usr/bin/python
print "\n******* Entrada desde teclado *********\n"
#lee la linea desde teclado y la regresa como cadena de caracteres
str1 = raw_input("Entrada 1: ");
print "Entrada recibida : ", str1
#lee la linea desde teclado y la recibe como una expresion valida de Python
str2 = input("Entrada 2: ");
print "Entrada recibida : ", str2
print "\n********Acceso a subcadenas de una cadena*******\n"
str3='Monica Guadalupe Elizondo Amaya'
print "str3: ", str3
print "str3[0], str3[7], str3[17], str3[26]: ", str3[0], str3[7], str3[17], str3[26]
print "str3[0:5]", str3[0:5]
print "\n********Algunos ejemplos de manejo de listas*******\n"
x=2
y='hola'
z=1.4
lista1 = ['Monica', 2013, 0.5, x,y,z];
lista2 = [3,5,8,9,5,7,5];
lista3 = lista1+lista2
print "lista1: ", lista1
print "lista2: ", lista2
print "lista3:", lista3
print "lista2[1:4]: ", lista2[1:4]
del lista1[2]; #borra el elemento en la posicion 2 de lista1
lista1.remove(1.4) #borra un elemento especifico de lista1, aqui tomo el valor de z
lista1.append('tu') #inserta la cadena al final de la lista
lista1.insert(0,z) #inserta el elemento en la posicion 0 de lista1, aqui inserto z
print "lista1 modificada: ", lista1
print "x en lista1: ", x in lista1
print "2 en lista1: ", 2 in lista1
print "'Monica' en lista1: ", 'Monica' in lista1
print "'on' en lista1: ", 'on' in lista1
print "'4' en lista1: ", 4 in lista1
print "Numero de repeticiones del 5 en lista 2: ", lista2.count(5)
print "Indice de primera aparicion del 5 en lista 2: ", lista2.index(5)
print "\n********Diccionarios*******\n"
dict = {'Nombre': 'Miguel', 'Edad': 27, 'Ciudad': 'Monterrey', 'Turno': 'Matutino', 'Salon': 401};
print dict;
print "dict['Nombre']: ", dict['Nombre'];
print "dict['Edad']: ", dict['Edad'];
print "dict.keys(): ", dict.keys();
print "dict.values(): ", dict.values();
items=dict.items();
print "items=dict.items(): ", items;
item=items[1];
print "item=items[1]: ", item;
print "item[0]: ", item[0], " item[1]: ", item[1];
print "usando sorted: ", sorted(dict.keys());
print "\n\n"
A continuación se muestra la salida:
El siguiente programa imprime las palabras de un archivo de texto su el número de repeticiones. Se escoge entre imprimir todas en orden alfabético o imprimir las 10 palabras más repetidas.
#!/usr/bin/python
#el modulo sys contiene informacion sobre el sistema
import sys
# Regresa un diccionario que mapea cada palabra del archivo con su contador
def word_count_dict(filename):
word_count = {}
input_file = open(filename, 'r')
for line in input_file:
words = line.split() #regresa el numero de palabras en la linea
for word in words:
word = word.lower() #Convierte todas las letras mayusculas a minusculas
if not word in word_count:
word_count[word] = 1
else:
word_count[word] = word_count[word] + 1
input_file.close()
return word_count
#imprime en cada linea cada palabra del archivo y su contador en orden alfabetico
def print_words(filename):
word_count = word_count_dict(filename)
words = sorted(word_count.keys())
for word in words:
print word, word_count[word]
# regresa el contador de la dupla palabra:contador
def get_count(word_tuple):
return word_tuple[1]
#imprime el la lista top 10 del archivo de texto
def print_top(filename):
word_count = word_count_dict(filename)
# items es el conjunto de duplas
# Ordena las palabras en del diccionario en orden no creciente respecto a sus apariciones
# key es una funcion que transforma cada elemento a ser comparado, en este caso se utiliza para extraer el contador de la dupla palabra/contador
items = sorted(word_count.items(), key=get_count, reverse=True)
for item in items[:10]:
print item[0], item[1]
def main():
if len(sys.argv) != 3:
print 'argumentos: ./contador.py {count | topcount} filename'
sys.exit(1)
option = sys.argv[1]
filename = sys.argv[2]
if option == 'count':
print_words(filename)
elif option == 'topcount':
print_top(filename)
else:
print 'opcion desconocida: ' + option
sys.exit(1)
if __name__ == '__main__': #es de utilidad para cuando este modulo es re-utilizado en otro modulo
main() #para identificar que el main se realize solo cuando se ejecuta este modulo.
Salidas del programa imprimiendo todas las palabras del texto en orden alfabético y las 10 mas repetidas.