Escreva o códigoDesafioPython
Poção de cura pela quantidade
Juntar função, validação e match com guard em um caso real.
O caldeirão só entende cura. Crie uma função para_qtd que recebe texto e devolve int(texto) se texto.isdigit(), senão 0. Leia o nome e a quantidade em duas linhas e converta o nome com .lower(). Com match e guard, se for cura com quantidade maior ou igual a 3 imprima cura total: X, se for cura menor imprima cura parcial: X, senão imprima pocao desconhecida com case _.
Entrada: Duas linhas: o nome da poção e a quantidade (texto).
Saída: Uma linha com o efeito da poção.
Revisa aula 10 (21/08), aula 9 (18/08), aula 11 (25/08)
Exemplo 1
- Entrada
cura 5
- Saída esperada
cura total: 5
Cura com 5 é total.
Exemplo 2
- Entrada
cura 2
- Saída esperada
cura parcial: 2
Cura com 2 é parcial.
Solução comentada
Verifique uma tentativa sua para liberar a solução.
def para_qtd(texto):
if texto.isdigit():
return int(texto)
return 0
nome = input().lower()
qtd_txt = input()
qtd = para_qtd(qtd_txt)
match nome:
case "cura" if qtd >= 3:
print(f"cura total: {qtd}")
case "cura":
print(f"cura parcial: {qtd}")
case _:
print("pocao desconhecida")A função para_qtd valida com .isdigit() e converte com int(), garantindo número mesmo com texto inválido. O nome padronizado com .lower() entra no match, e o guard if qtd >= 3 separa cura total da parcial. O case _ pega poções desconhecidas.
Erro comum: Esquecer .lower() e não reconhecer CURA.
Escreva sua solução e verifique quando quiser.