Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Resolução de Atividades - 11. Removendo o último item de um pedido

def main():

    # Paulo quer um programa que imprima e retire o último elemento que ele acabou adicionando por engano

    print ("Bom dia senhor Paulo, tudo bem? Insira a lista de pedidos que o senhor recebeu para que seja retirado o último pedido.")

    lista_usuario = input ("\nDigite os itens, separados por vírgula: ").split (", " and " e ")

    # Solução: O método pop() permite retirar o último elemento sem precisar ficar calculando o tamanho da lita manualmente para usar o método remove()

    lista_usuario.pop()

    print (f"Aqui está a lista de usuários corrigidas: {lista_usuario}")



if __name__ == "__main__":

    main()
1 resposta

Olá, Victor. Tudo bem por aí?

A lógica do pop() está correta e é exatamente o caminho mais direto pra esse tipo de problema, sem precisar calcular tamanho de lista nem usar índice manual. O ponto que merece atenção é o split, porque .split(", " and " e ") não funciona do jeito que imaginou. Em Python, a expressão ", " and " e " é avaliada antes de virar argumento do split, e como ambas as strings são "verdadeiras", o resultado dessa expressão é simplesmente " e ". Ou seja, seu split está separando só por " e ", ignorando a vírgula.

Por exemplo, pra entrada "água, uva e limão", a saída foi: "Aqui está a lista de usuários corrigidas: ['agua, uva']", ou seja, o split só separou no " e ", deixando "agua, uva" junto como um item só, e o pop() removeu o "limao". Pra aceitar entradas separadas por vírgula, o ideal é:

lista_usuario = input("\nDigite os itens, separados por vírgula: ").split(", ")

Parabéns pelo empenho em entender o motivo por trás da solução, e não só aplicar. O fórum está à disposição pra qualquer dúvida.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!