<-- Back to list of examples
class Alien:
""" Clase que define un alien"""
def __init__(self, color, peso):
""" Constructor. Establece peso y color"""
self.color = color
self.peso = peso
def tiene_propiedad(mi_alien):
""" Comprobamos si un item posee esa propiedad.
En este caso, ¿es verde el alien? """
if mi_alien.color.upper() == "VERDE":
return True
else:
return False
def comprueba_si_un_elemento_tiene_propiedad_v1(lista):
""" Devuelve true si al menos un item tiene esa
propiedad. """
i = 0
while i < len(lista) and not tiene_propiedad(lista[i]):
i += 1
if i < len(lista):
# Encontrado un item con la propiedad
return True
else:
# No hay ningún mitem con la propiedad
return False
def comprueba_si_un_elemento_tiene_propiedad_v2(lista):
""" Devuelve true si al menos un item tiene esa
propiedad. Funciona como v1, pero con menos código. """
for item in lista:
if tiene_propiedad(item):
return True
return False
def comprueba_si_todos_elementos_tienen_propiedad(lista):
""" Devuelve true si TODOS los items tienen una propiedad. """
for item in lista:
if not tiene_propiedad(item):
return False
return True
def obtener_elementos_coincidentes(lista):
""" Construye una lista completamente nueva con todos los items
que coincidan con nuestra propiedad. """
listaCoincidentes = []
for item in lista:
if tiene_propiedad(item):
listaCoincidentes.append(item)
return listaCoincidentes
def main():
""" Comprobamos todo. """
lista_aliens = []
lista_aliens.append(Alien("Verde", 42))
lista_aliens.append(Alien("Rojo", 40))
lista_aliens.append(Alien("Azul", 41))
lista_aliens.append(Alien("Púrpura", 40))
resultado = comprueba_si_un_elemento_tiene_propiedad_v1(lista_aliens)
print("Resultado del test comprueba_si_un_elemento_tiene_propiedad_v1:", resultado)
resultado = comprueba_si_un_elemento_tiene_propiedad_v2(lista_aliens)
print("Resultado del test comprueba_si_un_elemento_tiene_propiedad_v1:", resultado)
resultado = comprueba_si_todos_elementos_tienen_propiedad(lista_aliens)
print("Resultado del test comprueba_si_todos_elementos_tienen_propiedad:", resultado)
resultado = obtener_elementos_coincidentes(lista_aliens)
print("Número de items devueltos por el test obtener_elementos_coincidentes:", len(resultado))
if __name__ == "__main__":
main()