Introdução
Neste projeto, você aprenderá como calcular os valores de dano de duas armas laser de alto desempenho desenvolvidas pelo instituto de pesquisa de armas do Império Galáctico. O laboratório de equipamentos de armas é responsável por testar os valores das armas, e você os ajudará implementando o processo de cálculo de dano.
$ python calculate_weapon_damage.py
[3, 2]
🎯 Tarefas
Neste projeto, você aprenderá:
- Como configurar o ambiente do projeto e criar os arquivos necessários
- Como implementar a função
calculate_weapon_damage()para calcular os valores de dano das duas armas laser - Como testar a função
calculate_weapon_damage()com os dados de exemplo fornecidos
🏆 Conquistas
Após concluir este projeto, você será capaz de:
- Compreender a declaração do problema e os requisitos para o cálculo de dano das armas laser
- Implementar uma função para resolver um sistema de equações lineares e calcular os valores de dano das armas laser
- Testar a função implementada com diferentes dados de entrada para garantir que funcione corretamente
- Aplicar suas habilidades de resolução de problemas e programação a um cenário do mundo real
Configurar o Ambiente do Projeto
Nesta etapa, você configurará o ambiente do projeto e modificará os arquivos necessários para o projeto.
- Abra o arquivo
calculate_weapon_damage.pyem um editor de texto. - No topo do arquivo, adicione a seguinte instrução de importação:
from typing import List
Isso permitirá que você use a anotação de tipo List em seu código.
Implementar a Função calculate_weapon_damage()
Nesta etapa, você implementará a função calculate_weapon_damage() para calcular os valores de dano das duas armas laser.
- Dentro do arquivo
calculate_weapon_damage.py, defina a funçãocalculate_weapon_damage()com a seguinte assinatura:
def calculate_weapon_damage(test1: List[int], test2: List[int]) -> List[int]:
## Seu código aqui
pass
Implemente a lógica para calcular os valores de dano da Arma A e da Arma B. Você pode usar as seguintes etapas como guia:
- Verifique se as matrizes de entrada
test1etest2têm o comprimento correto (3 elementos cada). Caso contrário, retorne uma lista vazia[]. - Desempacote os valores das matrizes de entrada em variáveis
a1,b1,total1ea2,b2,total2. - Resolva o sistema de equações lineares para encontrar os valores de dano
x(para a Arma A) ey(para a Arma B). Você pode usar as seguintes equações:
a1 * x + b1 * y = total1 a2 * x + b2 * y = total2- Converta os valores calculados de
xeyem inteiros e retorne-os como uma lista[x, y]. - Se houver um
ZeroDivisionErrorao resolver as equações, retorne uma lista vazia[].
O código é o seguinte:
def calculate_weapon_damage(test1: List[int], test2: List[int]) -> List[int]: if len(test1) != 3 or len(test2) != 3: return [] a1, b1, total1 = test1 a2, b2, total2 = test2 ## a1 * x + b1 * y = total1 ## a2 * x + b2 * y = total2 try: y = (total1 * a2 - total2 * a1) / (b1 * a2 - b2 * a1) x = (total1 - b1 * y) / a1 except ZeroDivisionError: return [] return [int(x), int(y)]- Verifique se as matrizes de entrada
Adicione o seguinte código no final do arquivo para testar a função
calculate_weapon_damage():
if __name__ == "__main__":
print(calculate_weapon_damage([4, 5, 22], [3, 2, 13]))
Isso imprimirá os valores de dano calculados quando você executar o script.
Testar a Função calculate_weapon_damage()
Nesta etapa, você testará a função calculate_weapon_damage() com os dados de exemplo fornecidos.
- Salve o arquivo
calculate_weapon_damage.py. - Abra um terminal e navegue até o diretório
/home/labex/project. - Execute o script
calculate_weapon_damage.py:
python calculate_weapon_damage.py
Você deve ver a saída [3, 2], que é o resultado esperado para os dados de exemplo fornecidos.
- Tente testar a função com outros dados de entrada para garantir que ela funcione corretamente. Por exemplo, você pode tentar passar
[4, 5, 22]e[3, 2, 14]para ver se a função retorna uma lista vazia[]devido à entrada inválida.
Parabéns! Você implementou com sucesso a função calculate_weapon_damage() para calcular os valores de dano das duas armas laser.
Resumo
Parabéns! Você concluiu este projeto. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.



