Rutas
/
Python
Python
/
Ejercicios
/
Jardín de infantil
Jardín de infantil

Jardín de infantil

Fácil

Introducción

La clase de infantil está aprendiendo a cultivar plantas. La maestra pensó que sería buena idea dar a la clase semillas para plantarlas y hacerlas crecer en la tierra. Con ese fin, los niños han colocado vasitos a lo largo de los alféizares de las ventanas y han plantado un tipo de planta en cada vasito. Los niños pudieron elegir sus favoritas entre cuatro tipos de semillas disponibles: grass, clover, radishes y violets.

Instrucciones

Tu tarea consiste en determinar, dado un diagrama, qué plantas le corresponden a cada niño de la clase de infantil.

En la clase hay 12 niños:

  • Alice, Bob, Charlie, David, Eve, Fred, Ginny, Harriet, Ileana, Joseph, Kincaid y Larry.

Se plantan cuatro tipos distintos de semillas:

Planta Codificación en el diagrama
Grass G
Clover C
Radish R
Violet V

Cada niño recibe cuatro vasos, dos en cada fila:

[window][window][window]
........................ # each dot represents a cup
........................

Su profesor asigna los vasos a los niños por orden alfabético de sus nombres, lo que significa que Alice es la primera y Larry el último.

Aquí tienes un diagrama de ejemplo que representa las plantas de Alice:

[window][window][window]
VR......................
RG......................

En la primera fila, la más cercana a las ventanas, tiene «violet» y «radish». En la segunda fila tiene «radish» y un poco de «grass».

A tu programa se le darán las plantas de izquierda a derecha, empezando por la fila más cercana a las ventanas. A partir de esto, debería poder determinar qué plantas le corresponden a cada alumno.

Por ejemplo, si se le dice que el jardín tiene este aspecto:

[window][window][window]
VRCGVVRVCGGCCGVRGCVCGCGV
VRCCCGCRRGVCGCRVVCVGCGCV

Entonces, si se le piden las plantas de Alice, debería devolver:

  • Violets, radishes, violets, radishes

Y si se le piden las plantas de Bob, debería devolver:

  • Clover, grass, clover, clover

Cómo está estructurado este ejercicio en el track de Python

Los tests de este ejercicio esperan que tu programa se implemente mediante una class llamada Garden (consulta también classes). Si no estás familiarizado con las clases en Python, este tutorial de Real Python podría ser un buen punto de partida adicional.

Tu class debería implementar un method llamado plants, que recibe el nombre de un estudiante como argumento y devuelve la list de nombres de plantas que pertenecen a ese estudiante.

Constructores

Crear el jardín de ejemplo:

[window][window][window]
VRCGVVRVCGGCCGVRGCVCGCGV
VRCCCGCRRGVCGCRVVCVGCGCV

estaría representado en los tests como Garden("VRCGVVRVCGGCCGVRGCVCGCGV\nVRCCCGCRRGVCGCRVVCVGCGCV").

Para que esta representación funcione, tu class tendrá que implementar un __init__() método especial. Si no estás familiarizado con __init__() o con los constructores, la página sobre objetos de clase y de instancia de la documentación de Python ofrece una explicación más detallada.

Parámetros por defecto

En algunos tests, se pasa una list de estudiantes como argumento a __init__(). Esta debería reemplazar la plantilla de doce estudiantes que se proporciona en el enunciado del problema. Ambas instrucciones tienen que funcionar con tu método __init__():

# Make a garden based on the default 12-student roster.
Garden("VRCGVVRVCGGCCGVRGCVCGCGV\nVRCCCGCRRGVCGCRVVCVGCGCV") 

# Make a garden based on a 2-student roster.
Garden("VRCC\nVCGG", students=["Valorie", "Raven"]) 

Un enfoque es hacer que la list de estudiantes sea un argumento por defecto; la documentación de Python describe los default parameters en profundidad al explicar las definiciones de funciones.

Editar en GitHub El enlace se abre en una ventana o pestaña nueva
Python Exercism

¿Listo para empezar Jardín de infantil?

Regístrate en Exercism para aprender y dominar Python con 17 conceptos146 ejercicios y mentoría humana real, todo gratis.