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)


3 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. mmm... blogger me está haciendo una broma y me duplicó comentario, que eliminé y de del duplicado no quedó ninguno... En fin.

    Solo 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.

    ResponderEliminar

Vibe Coding (la programación vía IA): ¿el futuro de la programación?

Vibe Coding es un nuevo paradigma de programación, una nueva forma de crear código. Es un enfoque emergente en el desarrollo de sof...

Etiquetas

Archivo del blog