domingo, 22 de julio de 2012
Python ... ejemplos prácticos no. 5
5. 1. Ejemplo de clases y objetos:
#defino la clase y sus propiedades
class Heroe:
def __init__(self,nombre,pais,poderes):
self.nombre=nombre
self.pais=pais
self.poderes=poderes
def getNombre(self):
return self.nombre
def getPais(self):
return self.pais
def getPoderes(self):
return self.poderes
#main, defino las instancias
spiderman= Heroe("spiderman","USA",['sentido aracnido','fuerza de araña','super agilidad','trepar muros'])
#spiderman
#imprimo los datos
print type(spiderman)
print "\nHeroe: ",spiderman.getNombre()
print "\nPais: ",spiderman.getPais()
print "\nPoderes: " ## puede ser print "\nPoderes: ",spiderman.getPoderes pero lo muestra como lista
for i in spiderman.getPoderes():
print i
5.2 Horoscopoc chino mejorado:
#ahora uso diccionarios
animales={0:"mono",1:"gallo",2:"perro",3:"cerdo",4:"rata",5:"buey",6:"tigre",7:"conejo",8:"dragon",9:"serpiente",10:"caballo",11:"cabra"}
anyos=[1981,1990,1994,1998,2002,2006,2009,2012]
resto=0
print "\t[Horoscopo chino en Pyhton]"
for i in anyos:
resto=i%12
print "si naciste en: ",i," te correscpone el signo del: ",animales[resto]
5.3 Combinación y Permutación:
def factorial(x):
if (x==0):
return 1
else:
return x * factorial(x-1)
def permutacion(n,r):
menor=0
mayor=0
if(n<r):
menor=n
mayor=r
else:
menor=r
mayor=n
return factorial(mayor)/factorial(mayor-menor)
def combinatorio(n,r):
menor=0
mayor=0
if(n<r):
menor=n
mayor=r
else:
menor=r
mayor=n
return (factorial(mayor)/(factorial(mayor) * factorial(mayor-menor)))
print permutacion(10,9)
print combinatorio(10,9)
Suscribirse a:
Enviar comentarios (Atom)
Este comentario ha sido eliminado por el autor.
ResponderEliminarmmm... blogger me está haciendo una broma y me duplicó comentario, que eliminé y de del duplicado no quedó ninguno... En fin.
ResponderEliminarSolo para decirte que está muy bien esto que haces de dar el kick-off con otros lenguajes, pero, creo que te la has pasado de Javalero jejeje. Recuerda que en Python todo atributo/propiedad/método definido es público a no ser que le pongas "__" al principio, haciendo que en la clase de Heroe los getters y setters estén de sobra. Si te gusta seguir ese principio de usar getters y setters bien puedes nombrar a los atributos "self.__nombre = nombre", de esa manera necesitarás un método que pueda acceder o escribir dicha propiedad.
Respecto al horóscopo, creo que se pasa de verborrea, ¿para qué definir un diccionario con índice siendo que con un arreglo tendrás los mismos índices?. Y en lugar de definir resto, ¿porqué no lo haces "al vuelo" algo como: "animales[i%2]"?
Y pues ya XP... no lo digo en mal rollo Mister Negativo, lo digo en buen plan y todo, solo para sacar dudas y tratar de ayudar.
Gracias por el comentario.
ResponderEliminar