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