1
resposta

Resposta

despensa = ['FEIJÃO', 'ARROZ', 'DETERGENTE', 'SAL', 'TRIGO']

def check_item(a):
    
    if a in despensa:
        return print(f'O item {a} está disponível na despensa!')
    else:
        return print(f'O item {a} precisa ser comprado.')


item = input('Digite o item que você quer verificar: ').upper()

check_item(item)
1 resposta

Olá, Kelvin. Como vai?

Parabéns pela resolução do desafio! Como Analista de Sistemas Júnior, você aplicou um conceito fundamental de eficiência: a modularização. Criar uma função para encapsular a lógica de verificação torna seu código reutilizável e muito mais organizado.

Sua lógica de utilizar o operador in é a forma mais performática e legível de verificar a existência de um elemento em uma lista no Python. Além disso, o uso do método .upper() na entrada do usuário foi uma excelente sacada de UX (User Experience), garantindo que o programa funcione mesmo que a pessoa digite "feijão" em letras minúsculas.

Gostaria de destacar dois pontos técnicos para o seu crescimento na linguagem:

1. O comportamento do return com print

No seu código, você usou return print(...). Em Python, a função print() sempre retorna None. Portanto, sua função está tecnicamente retornando None. Para seguir as boas práticas, geralmente escolhemos um dos dois caminhos:

  • Ou a função apenas exibe a mensagem (sem o return).
  • Ou a função retorna a string e o print é feito na chamada da função.

2. Tratamento de Strings (Acentuação)

Um detalhe comum em sistemas brasileiros: se o usuário digitar "FEIJAO" (sem o til), o Python dirá que o item não está na despensa, pois para a linguagem à é diferente de A. Em projetos reais, costumamos usar bibliotecas como a unicodedata para remover acentos antes de comparar.

Dica de Refinamento:

Para deixar sua função ainda mais "pura" (fácil de testar), você poderia fazer assim:

despensa = ['FEIJÃO', 'ARROZ', 'DETERGENTE', 'SAL', 'TRIGO']

def check_item(item):
    if item in despensa:
        return f'O item {item} está disponível na despensa!'
    return f'O item {item} precisa ser comprado.'

item_digitado = input('Digite o item: ').upper()
mensagem = check_item(item_digitado)
print(mensagem)

Dessa forma, a função check_item fica responsável apenas pela lógica, enquanto o print fica responsável pela saída, separando as preocupações do seu código.

Você já pensou em como faria se a despensa fosse uma lista de dicionários, contendo também a quantidade de cada item?