El programa de prefijo (otra vuelta de tuerca)

Manuel Durán Aguete manuel.duran en quantumgap.com
Vie Mayo 24 14:43:18 CEST 2002


Hola,

	Como recomendacion yo le daria la vuelta al diccionario,
por ejemplo: companies = { "PREFIJO1": Operador, ....... } de este modo
te evitarias el bucle "for company in companies.keys()" y lo podrias
sacar directamente.

							Saludos.


El vie, 24-05-2002 a las 13:53, jileon en parcan.es escribió:
> 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
> 		"""
> 
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo.py/python-es
> 






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