Ejercicio fase 1
"""
armar CLASE password
Atributos: longitud y contraseña
longitud x defecto = 8
constructores: uno x defecto y
uno que genera pass con la longitud que le pasemos
Metodo() esFuerte->devuelve un booleano si es fuerte o n o
(2 mayusculas, 1 minuscula, 5 caracteres minimo)
generarPassword-> genera la contraseña con la longitud del objeto que tenga
Metodo Get para contraseña y longitud
Metodo Set para longitud
"""
import random as R
class Password():
def __init__(self, long=8, cont=""):
self.long = long
self.cont = cont
def esFuerte():
return
class generar_password():
def __init__(self):
self.numero = ""
self.letra_min = ""
self.letra_mayu = ""
password_fuerte = generar_password()
a = 0
while a < 9:
password_fuerte.numero = R.randint (0, 100)
password_fuerte.letra_min = chr (R.randint (ord ("a") , ord("z")))
password_fuerte.letra_mayu = chr (R.randint (ord ("A") , ord("Z")))
print ("\nNumero generado: " + str (password_fuerte.numero))
print ("\nLetra Minuscula Generada: " + str (password_fuerte.letra_min))
print ("\nLetra Mayuscula Generada: " + str (password_fuerte.letra_mayu))
a +=1
Resultado
>>> %Run ejercicio_clases_password.py
Numero generado: 24
Letra Minuscula Generada: z
Letra Mayuscula Generada: J
Numero generado: 95
Letra Minuscula Generada: p
Letra Mayuscula Generada: C
Numero generado: 76
Letra Minuscula Generada: m
Letra Mayuscula Generada: X
Numero generado: 85
Letra Minuscula Generada: w
Letra Mayuscula Generada: C
Numero generado: 40
Letra Minuscula Generada: c
Letra Mayuscula Generada: K
Numero generado: 41
Letra Minuscula Generada: k
Letra Mayuscula Generada: C
Numero generado: 68
Letra Minuscula Generada: k
Letra Mayuscula Generada: A
Numero generado: 41
Letra Minuscula Generada: c
Letra Mayuscula Generada: H
Numero generado: 50
Letra Minuscula Generada: o
Letra Mayuscula Generada: L
>>>
Ejercicio Fase 2 – Completo con Clases
"""
armar CLASE password
Atributos: longitud y contraseña
longitud x defecto = 8
constructores: uno x defecto y
uno que genera pass con la longitud que le pasemos
Metodo() esFuerte->devuelve un booleano si es fuerte o n o
(2 mayusculas, 1 minuscula, 5 caracteres minimo)
generarPassword-> genera la contraseña con la longitud del objeto que tenga
"""
import random as R
class Password():
def __init__(self, long=8):
self.long = long
self.cont = ""
if self.long < 8:
self.long = 8
self.generar()
def generar(self):
salir = False
while not salir:
cadena = ""
for c in range(self.long):
n = R.randint(1,100)
if n <= 10:
cadena += chr(R.randint (ord ("A") , ord("Z")))
else:
if n <= 20:
cadena += chr(R.randint (ord ("a") , ord("z")))
else:
cadena += chr(R.randint (ord ("0") , ord("9")))
self.cont = cadena
if self.esFuerte():
salir = True
def esFuerte(self):
cma=0
cmi=0
cdi=0
for letra in self.cont:
if letra.islower():
cmi += 1
else:
if letra.isupper():
cma += 1
else:
cdi += 1
return cma>=1 and cmi >=2 and cdi >= 5
def __str__(self):
return self.cont
class generar_password():
def __init__(self):
self.numero = ""
self.letra_min = ""
self.letra_mayu = ""
def main():
print(Password())
print(Password(1))
print(Password(10))
x = Password()
if x.esFuerte():
print("es fuerte")
x.long = 5
x.cont="pepe"
if x.esFuerte():
print("es fuerte")
else:
print("NNNOOO es fuerte")
main()
Resultado
>>> %Run ejercicio_clases_passwordDOS.py
27md0U37
E1z9e380
14y1m7IFj6
es fuerte
NNNOOO es fuerte
>>>
Ejercicio Clases, atributos y metodos -1
"""
practica de clases, objetos, atributos y metodos
"""
class Personaje(): # CLASE que representa al personaje principal
def __init__(self): # METODO que establece los Atributos del Objeto
self.nombre = "Alberto"
self.sexo = "M"
self.puntos_impacto_max = 80
self.puntos_impacto_actuales = 50
self.vel_max = 20
self.escudo = 21
def __str__(self):
return "Nombre: " + str (self.nombre) + "\nSexo: " + str (self.sexo) \
+ "\nPuntos de Impacto: " + str (self.puntos_impacto_max) \
+ "\nPuntos Impacto Actuales: " + str (self.puntos_impacto_actuales) \
+ "\nVelocidad Maxima: " + str (self.vel_max) + "\nEscudo: " + str (self.escudo)
p = Personaje()
print ("Personaje Principal: \n")
print (str(p))
#/////////////////////////////////////////////////
"""
Ejemplo dos
"""
class Direccion(): # tiene todos los campos para una direccion
def __init__(self):
self.nombre = ""
self.calle1 = ""
self.calle2 = ""
self.ciudad = ""
self.localidad = ""
self.cp = ""
# La CLASE esta DEFINIDA pero NO creada, para CREARLA debemos definir una instancia de la Clase Direccion
casa_direccion = Direccion() # creamos una direccion
# definimos los campos de la Direccion
casa_direccion.nombre = "Alberto"
casa_direccion.calle1 = "Jonte"
casa_direccion.calle2 = "San Nicolas"
casa_direccion.ciudad = "CABA"
casa_direccion.localidad = "Monte Castro"
casa_direccion.cp = "1407GOS"
# ahora creamos otra direccion usando la misma Clase Direccion()
casa_vacaciones = Direccion() # creamos otra direccion
# definimos los campos de esta nueva Direccion
casa_vacaciones.nombre = "Cabañas del Bosque"
casa_vacaciones.calle1 = "Amapolas"
casa_vacaciones.calle2 = "Avenida 5"
casa_vacaciones.ciudad = "Costa del Este"
casa_direccion.localidad = "Partido de la Costa"
casa_vacaciones.cp = "7108"
print ("\nLa direccion de " + casa_direccion.nombre + " es: " + casa_direccion.calle1 \
+ " y " + casa_direccion.calle2)
print ("\nLa casa de Vacaciones esta en: " + casa_vacaciones.calle1 + " y " \
+ casa_vacaciones.calle2 + " " + casa_vacaciones.ciudad )
Resultado
Nombre: Alberto
Sexo: M
Puntos de Impacto: 80
Puntos Impacto Actuales: 50
Velocidad Maxima: 20
Escudo: 21
La direccion de Alberto es: Jonte y San Nicolas
La casa de Vacaciones esta en: Amapolas y Avenida 5 Costa del Este
Ejercicio Clases, atributos y metodos -2
"""
practica de clases, objetos, atributos y metodos
"""
import random as R
class Personaje(): # CLASE que representa al personaje principal
def __init__(self): # METODO que establece los Atributos del Objeto
self.nombre = "Alberto"
self.sexo = "M"
self.puntos_impacto_max = 80
self.puntos_impacto_actuales = 50
self.vel_max = 20
self.escudo = 21
def __str__(self):
return "Nombre: " + str (self.nombre) + "\nSexo: " + str (self.sexo) \
+ "\nPuntos de Impacto: " + str (self.puntos_impacto_max) \
+ "\nPuntos Impacto Actuales: " + str (self.puntos_impacto_actuales) \
+ "\nVelocidad Maxima: " + str (self.vel_max) + "\nEscudo: " + str (self.escudo)
p = Personaje()
print ("Personaje Principal: \n")
print (str(p))
#/////////////////////////////////////////////////
"""
Ejemplo dos
"""
class Direccion(): # tiene todos los campos para una direccion
def __init__(self):
self.nombre = ""
self.calle1 = ""
self.calle2 = ""
self.ciudad = ""
self.localidad = ""
self.cp = ""
# La CLASE esta DEFINIDA pero NO creada, para CREARLA debemos definir una instancia de la Clase Direccion
casa_direccion = Direccion() # creamos una direccion
# definimos los campos (ATRIBUTOS) de la Direccion
casa_direccion.nombre = "Alberto"
casa_direccion.calle1 = "Jonte"
casa_direccion.calle2 = "San Nicolas"
casa_direccion.ciudad = "CABA"
casa_direccion.localidad = "Monte Castro"
casa_direccion.cp = "1407GOS"
# ahora creamos otra direccion usando la misma Clase Direccion()
casa_vacaciones = Direccion() # creamos otra direccion
# definimos los campos de esta nueva Direccion
casa_vacaciones.nombre = "Cabañas del Bosque"
casa_vacaciones.calle1 = "Amapolas"
casa_vacaciones.calle2 = "Avenida 5"
casa_vacaciones.ciudad = "Costa del Este"
casa_direccion.localidad = "Partido de la Costa"
casa_vacaciones.cp = "7108"
print ("\nLa direccion de " + casa_direccion.nombre + " es: " + casa_direccion.calle1 \
+ " y " + casa_direccion.calle2)
print ("\nLa casa de Vacaciones esta en: " + casa_vacaciones.calle1 + " y " \
+ casa_vacaciones.calle2 + " " + casa_vacaciones.ciudad )
"""--------------------------------------------------------------------"""
# ahora definimos los METODOS; los Metodos van Despues de los ATRIBUTOS
"""cuando creamos métodos para clases:
Los atributos deben ir primero, los métodos después.
El primer parámetro, en cualquier método, debe ser self.
Las definiciones de métodos deben ir indentadas exactamente una tabulación.
"""
class soldado():
def __init__(self):
self.edad = 0
self.nombre = ""
self.golpe = 0
self.escudo = 0
def ataca(self): # definicion del METODO ataca()
print ("Ataque!! ")
# ahora lo invocamos de la misma manera que con los atributos
soldado_ataca = soldado()
soldado_ataca.edad = 25
soldado_ataca.nombre = "Jhon Rambo"
soldado_ataca.golpe = R.randint(66, 99)
soldado_ataca.escudo = R.randint(38, 74)
soldado_ataca.ataca()
print ("\nGolpe: " + str (soldado_ataca.golpe))
print ("\nDefensa: " + str (soldado_ataca.escudo))
Resultado
>>> %Run ejercicio_clases_passwordTRES.py
Personaje Principal:
Nombre: Alberto
Sexo: M
Puntos de Impacto: 80
Puntos Impacto Actuales: 50
Velocidad Maxima: 20
Escudo: 21
La direccion de Alberto es: Jonte y San Nicolas
La casa de Vacaciones esta en: Amapolas y Avenida 5 Costa del Este
Ataque!!
Golpe: 95
Defensa: 50
>>>
Ejercicio Dos Soldados
"""
Ejemplo con clases, objetos, atributos y metodos
soldados se atacan y se calcula resultado
"""
import random as R
# definimos la CLASE -Soldado
class Soldado():
def __init__(self):
self.ataque = 0
self.defensa = 0
self.vida = 0
# dentro de la clase Soldado definimos el metodo Ataque
def ataca (self):
print ("Ataque!! ")
# Podemos invocar a los métodos cómo referenciamos atributos de un objeto
el_soldado = Soldado() # creamos el_soldado a partir de la clase Soldado
# establecemos los atributos de el_soldado
el_soldado.nombre = "John Rambo"
el_soldado.ataque = R.randint(30, 100)
el_soldado.defensa = R.randint (10, 80)
el_soldado.vida = 100
# llamamos a la funcion "ataca"
el_soldado.ataca()
"""
tambien podemos acceder a los atributos
usando el operador punto y la referencia self.
def ataca (self):
print ("Ataque!! " , self.nombre)
"""
# ahora mostramos los resultados del ataque
print ("\n" + el_soldado.nombre)
print ("\nGolpe: " + str (el_soldado.ataque))
print ("\nDefensa: " + str (el_soldado.defensa))
# ahora creamos OTRO soldado
el_soldadoDos = Soldado()
print ("\nTurno Soldado Dos\n")
el_soldadoDos.nombre = "Terminator"
el_soldadoDos.ataque = R.randint(80, 150)
el_soldadoDos.defensa = R.randint (10, 80)
el_soldadoDos.vida = 100
el_soldadoDos.ataca()
print ("\n" + el_soldadoDos.nombre)
print ("\nGolpe: " + str (el_soldadoDos.ataque))
print ("\nDefensa: " + str (el_soldadoDos.defensa))
# comparamos los ataques y defensas de los jugadores para ver quien gano
def main ():
if el_soldado.ataque > el_soldadoDos.defensa:
el_soldadoDos.vida = 100 + (el_soldadoDos.defensa - el_soldado.ataque)
print ("\nTerminator, Vida Restante: " , el_soldadoDos.vida)
if el_soldadoDos.vida <= 0:
print ("\nTerminator, Estas Muerto!")
else:
print ("\nTerminator, Defensa Exitosa")
if el_soldadoDos.ataque > el_soldado.defensa:
el_soldado.vida = 100 + el_soldado.defensa - el_soldadoDos.ataque
print ("\nRambo, Vida Restante: " , el_soldado.vida)
if el_soldado.vida <= 0:
print ("\nRambo, Estas Muerto!")
else:
print ("\nRambo, Defensa Exitosa")
main ()
Resultado
>>> %Run soldados_mi_ejemplo.py
Ataque!!
John Rambo
Golpe: 41
Defensa: 44
Turno Soldado Dos
Ataque!!
Terminator
Golpe: 144
Defensa: 42
Terminator, Defensa Exitosa
Rambo, Vida Restante: 0
Rambo, Estas Muerto!