Coding for KidsCoding for Kids
Níveis CriativosDesafiosGuia do Professor
Votar em funcionalidades
Curso Avançado de Desenvolvimento Python
Capítulo
>
Nível

Funções Avançadas
Funções Parciais

Objetivo

Embale e armazene os materiais de construção que foram entregues no cais usando funções parciais.

Alguns suprimentos foram recentemente entregues em um cais, eles devem ser embalados e armazenados para que possam ser usados como materiais de construção. Os materiais precisam ser enrolados em pano e amarrados com barbante. É importante pesar todos os itens ao embalá-los para que possam ser transportados de maneira eficaz posteriormente. Para facilitar isso, podemos otimizar esse processo usando Funções Parciais.

Uma Função Parcial é uma função personalizada que é encurtada por não precisar adicionar valores de argumentos que são em grande parte consistentes. Isso permite usar funções que recebem múltiplos argumentos e executá-las com apenas um único argumento ou quantos você escolher.

from functools import partial

Para começar, você deve importar partial do módulo conhecido como functools, isso permitirá que você crie Funções Parciais. O código de importação deve sempre ser colocado no topo do editor de código.

Configure uma função chamada weight e faça com que ela receba três (3) argumentos: thread, cloth e material. Essa função permitirá calcular o peso dos materiais embalados, e podemos otimizar esse processo ainda mais canalizando-o por meio de uma função parcial.

def weight(thread, cloth, material): return 2 * thread + 5 * cloth + material * 10 package = partial(weight, 4, 2)

Crie uma Função Parcial chamada package, ela é configurada de maneira similar às funções lambda. Use partial() para popular a função e adicione o nome da função, bem como os valores fixos para os argumentos que você deseja atribuir.

Quaisquer argumentos da função original que você não atribuir se tornarão os argumentos que deverão ser atribuídos pela Função Parcial. No caso da Função Parcial package(), é o argumento material.

Caminhe até os X escuros marcados em frente às caixas para pegar os materiais de embalagem. No X do tapete amarelo, use a função collect() para adquirir "thread" e caminhe até o X do tapete roxo e use a função collect() para adquirir "cloth". Esses itens serão usados para embalar os materiais.

Atravesse o cais e pegue todos os materiais de construção, que são: bricks, planks, red_bricks e wood. Depois de coletá-los, adicione o número coletado de cada um a uma variável com o mesmo nome do material, por exemplo: bricks = 3.

Em seguida, caminhe até os X claros em frente às caixas e calcule o peso de cada material de construção antes de armazená-lo. Use a função speak() em conjunto com a Função Parcial package() para calcular o peso. Use as variáveis dos materiais como argumentos para a função package(), por exemplo:

player.speak("Package weighs %s pounds" % package(bricks)) player.place(package(bricks))

Siga isso usando a função place() para armazenar o material dentro das caixas, fazendo-o também com a função package(), conforme o exemplo acima.

No X claro com o tapete red pese e armazene bricks. No X claro com o tapete blue pese e armazene planks. No X claro com o tapete orange pese e armazene red_bricks. No X claro com o tapete green pese e armazene wood. Armazene e pese todos os quatro (4) materiais nas caixas corretas para completar o nível.

Livro de Código