Percursos
/
Python
Python
/
Exercícios
/
Jardim de infância
Jardim de infância

Jardim de infância

Fácil

Introdução

A turma do jardim de infância está a aprender a cultivar plantas. A professora achou que seria uma boa ideia dar à turma sementes para plantar e fazer crescer na terra. Para isso, as crianças colocaram copinhos ao longo dos peitoris das janelas e plantaram um tipo de planta em cada copo. As crianças puderam escolher as suas preferidas entre quatro tipos de sementes disponíveis: relva, trevo, rabanetes e violetas.

Instruções

A tua tarefa é, dado um diagrama, determinar que plantas cada criança da turma do jardim de infância tem a seu cargo.

Há 12 crianças na turma:

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

Plantam-se quatro tipos diferentes de sementes:

Planta Codificação no diagrama
Grass G
Clover C
Radish R
Violet V

Cada criança recebe quatro copos, dois em cada fila:

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

O professor atribui os copos às crianças por ordem alfabética dos seus nomes, o que significa que Alice vem primeiro e Larry por último.

Aqui está um diagrama de exemplo que representa as plantas da Alice:

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

Na primeira fila, a mais próxima das janelas, tem um violet e um radish. Na segunda fila tem um radish e algum grass.

O teu programa receberá as plantas da esquerda para a direita, começando pela fila mais próxima das janelas. A partir disto, deverá conseguir determinar que plantas pertencem a cada criança.

Por exemplo, se lhe for dito que o jardim tem o seguinte aspeto:

[window][window][window]
VRCGVVRVCGGCCGVRGCVCGCGV
VRCCCGCRRGVCGCRVVCVGCGCV

Então, se lhe pedirem as plantas da Alice, deve fornecer:

  • Violets, radishes, violets, radishes

Já se lhe pedirem as plantas do Bob, obteria:

  • Clover, grass, clover, clover

Como este exercício está estruturado no percurso de Python

Os testes deste exercício esperam que o teu programa seja implementado como uma class Garden (vê também classes). Se não estás familiarizado com classes em Python, este tutorial da Real Python pode ser um bom ponto de partida adicional.

A tua class deve implementar um method chamado plants, que recebe o nome de um aluno como argumento e devolve a list dos nomes das plantas que pertencem a esse aluno.

Construtores

Criar o jardim de exemplo:

[window][window][window]
VRCGVVRVCGGCCGVRGCVCGCGV
VRCCCGCRRGVCGCRVVCVGCGCV

seria, nos testes, representado como Garden("VRCGVVRVCGGCCGVRGCVCGCGV\nVRCCCGCRRGVCGCRVVCVGCGCV").

Para que esta representação funcione, a tua class terá de implementar um __init__() método especial. Se não estás familiarizado com __init__() ou com construtores, a página objetos de classe e de instância da documentação do Python dá uma explicação mais detalhada.

Parâmetros predefinidos

Em alguns testes, é passada uma list de alunos como argumento a __init__(). Isto deve substituir a lista de doze alunos fornecida no enunciado do problema. Ambas estas instruções têm de funcionar com o teu 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"]) 

Uma abordagem é tornar a list de alunos um argumento predefinido; a documentação do Python descreve os default parameters em detalhe ao explicar definições de funções.

Editar via GitHub A ligação abre numa nova janela ou separador
Python Exercism

Estás pronto para começar Jardim de infância?

Inscreve-te no Exercism para aprenderes e dominares Python com 17 conceitos146 exercícios, e mentoria humana real, tudo grátis.