El programa de prefijo (otra vuelta de tuerca)

jileon en parcan.es jileon en parcan.es
Vie Mayo 24 13:53:48 CEST 2002


Hola, he visto la pregunta de como hacer el programa de los 
prefijos más cortos usando dicionarios, y he hecho algunas 
modificaciones en ese sentido, además de "pythonizar" un poco 
más el programa, p.e. en vez de usar un mensaje de error, el 
programa ahora eleva una excepción, y alguna otra tontería. 
Espero que le sirva a alguien. Un saludo a todos.  

-------------------------------------------------------
#!/usr/bin/env python

# Programa que devuelve la compañía del número de tlf. móvil que
# introduzcamos. Sé que es una tontería y el código sencillo 
pero a algún
# novato (como yo) le servirá. Los prefijos los tenía de hace 
tiempo, la
# lista NO está actualizada. Muchísimas gracias a la lista de 
python de
# Aditel por la ayuda prestada :) Alfredo (rkt en ifrance.com)

import sys, string

companies = { "Movistar" : string.split("606 608 609 616 619 620 
626 629 630 636 639 646 649 650 659 660 669 676 679 680 686 689 
690 696 699"),
	"Vodafone" : string.split("600 607 610 617 627 666 667 670 
677 678 687"),
	"Amena" : string.split("651 652 653 654 655 656 657 658") 
}

def mvlchk(numero):
	if len(numero) != 9:
		raise TypeError("El número debe tener al menos 9 
carácteres")
	prefijo = numero[0:3]
	for company in companies.keys():
		if prefijo in companies[company]:
			print "El número introducido pertenece a %s" % 
company
			break
	else:
		print "Los carácteres introducidos no son números o 
es un número no válido"

if __name__ == '__main__':
	if len(sys.argv) == 2:
		mvlchk(sys.argv[1])
	else:
		print """
		No hombre, se usa así:
		mvlcheck NUMERO
		-
		Ejemplo: mvlcheck 666555444
		"""





Más información sobre la lista de distribución Python-es