Tracks
/
Python
Python
/
Ejercicios
/
Jardín de infantes
Jardín de infantes

Jardín de infantes

Fácil

Introducción

El grupo de kínder está aprendiendo sobre el cultivo de plantas. A la maestra le pareció buena idea darle a la clase semillas para sembrar y cultivar en la tierra. Con ese fin, los niños colocaron vasitos a lo largo de las repisas de las ventanas y sembraron 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 es, a partir de un diagrama, determinar qué plantas le corresponden a cada estudiante de la clase del kínder.

En la clase hay 12 estudiantes:

  • 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 estudiante recibe cuatro vasos, dos en cada fila:

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

Su docente asigna los vasos a los estudiantes en orden alfabético según sus nombres, así que Alice va primero y Larry va al final.

Este es 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 una violet y un radish. En la segunda fila tiene un 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. Con esto, debe poder determinar qué plantas le pertenecen a cada estudiante.

Por ejemplo, si se le dice que el jardín se ve así:

[window][window][window]
VRCGVVRVCGGCCGVRGCVCGCGV
VRCCCGCRRGVCGCRVVCVGCGCV

Entonces, si se le piden las plantas de Alice, debe devolver:

  • Violets, radishes, violets, radishes

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

  • Clover, grass, clover, clover

Cómo está estructurado este ejercicio en la pista de Python

Las pruebas de este ejercicio esperan que tu programa se implemente como una class Garden (mira también classes). Si aún no conoces las clases en Python, este tutorial de Real Python puede ser un buen punto de partida adicional.

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

Constructores

Crear el jardín de ejemplo:

[window][window][window]
VRCGVVRVCGGCCGVRGCVCGCGV
VRCCCGCRRGVCGCRVVCVGCGCV

se representaría, en las pruebas, como Garden("VRCGVVRVCGGCCGVRGCVCGCGV\nVRCCCGCRRGVCGCRVVCVGCGCV").

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

Parámetros predeterminados

En algunas pruebas, se pasa una list de estudiantes como argumento a __init__(). Esto debe reemplazar la lista de doce estudiantes que se proporciona en el enunciado del problema. Ambas sentencias deben 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 predeterminado; 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 una pestaña nuevas
Python Exercism

¿Todo listo para empezar Jardín de infantes?

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