Operador Walrus em Python – O que é e Como Usar?

Você já ouviu falar do operador walrus em Python? Nesta aula, vou te mostrar o que ele é e como utilizá-lo!

O operador walrus em Python (:=) permite atribuir um valor a uma variável e usá-lo na mesma expressão. Introduzido na versão 3.8, ele é útil dentro de if e while, evitando repetir cálculos. Por exemplo, if (n := len(dados)) > 10: guarda o tamanho em n e testa a condição de uma vez.

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

O que você aprende neste vídeo

Resposta rápida: A aula ensina o operador walrus do Python, o := que atribui um valor a uma variável e usa esse mesmo valor na mesma linha. Você acompanha um exemplo de bônus por vendas, vê a sintaxe com os parênteses obrigatórios em volta da atribuição e quando o operador ajuda ou atrapalha a leitura do código.

Neste vídeo (11 min):

  • 1:00 - A ideia do operador, usar uma informação e guardá-la numa variável na mesma linha
  • 2:00 - Exemplo do bônus com if comparando as vendas do funcionário com a meta
  • 3:00 - Conversão do input() com int() e a chamada colocada direto dentro do if
  • 5:00 - As duas saídas depois da mudança de regra, recriar a variável ou resolver na mesma linha
  • 6:00 - Sintaxe do operador, com os parênteses obrigatórios em volta da atribuição
  • 8:00 - Cuidado de estilo, equilibrando menos repetição e a leitura de quem abre o código
  • 10:00 - Onde o operador costuma aparecer, em if e while que consomem um valor de fora

Trechos do vídeo:

  • O operador walrus atribui um valor a uma variável e usa esse mesmo valor na mesma linha de código.
  • A atribuição com := precisa ficar entre parênteses dentro da condição, senão o código não roda.
  • O operador é opcional, o mesmo programa funciona criando a variável antes e usando ela depois.
  • A recomendação da aula é usar em condições simples, porque várias atribuições dentro do mesmo if atrapalham a leitura.

Operador Walrus em Python – O que é e Como Usar?

Na aula de hoje, vou te ensinar sobre o operador walrus em Python, também conhecido como walrus operator ou operador de morsa. Veremos o que é esse operador e como ele funciona.

Esse operador permite que você use e atribua uma variável ao mesmo tempo. Ou seja, você consegue utilizar a variável e atribuir um valor a ela em uma única linha de código.

Vamos compreender melhor esse conceito e a utilização do operador walrus em Python por meio de um exemplo prático.

O que é o operador walrus em Python?

Em Python, os operadores são símbolos que executam operações em valores ou variáveis. Podemos utilizá-los para diversas funções, incluindo operações matemáticas, comparações, atribuições, lógicas, associações e muito mais.

O operador walrus é um operador especial representado por := . Ele recebe esse nome por se assemelhar a uma morsa (walrus em inglês) com os olhos e os dois dentões.

Como funciona o operador walrus em Python?

Esse operador é utilizado para atribuir um valor a uma variável e usá-la ao mesmo tempo, tudo em uma única linha de código.

Antes da introdução do operador walrus em Python, era necessário atribuir o valor de um cálculo ou expressão a uma variável e, depois, usá-la em outra linha, como em uma comparação ou em outra expressão.

Através do operador walrus, você pode fazer isso imediatamente. Ou seja, você atribui o valor à variável e já a utiliza em uma expressão na mesma linha. Vamos entender melhor através de um exemplo.

Imagine que você está construindo um código para ajudar uma empresa a determinar a quantidade de bônus que precisa pagar a um funcionário.

A lógica a ser seguida é a seguinte: se as vendas do funcionário forem maiores do que R$ 1000,00, ele receberá um bônus de R$ 50,00.

Codigo
vendas = int(input("Vendas do funcionário: "))

if vendas > 1000:
    bonus = 50
else:
    bonus = 0

print("Bonus: ", bonus)

Nesse código, estamos obtendo o valor que o usuário inseriu no input, convertendo-o para um número inteiro e verificando se ele é maior que 1000. Se for, atribuímos o bônus de 50; caso contrário, o bônus será 0.

Ícone PythonPython Impressionador

Você vai aprender a linguagem de Programação que mais cresce no Mundo para fazer automações incríveis, desenvolver sites, fazer análises de dados, trabalhar com Ciência de Dados, Inteligência Artificial, mesmo que você nunca tenha tido nenhum contato com Programação na vida.

Começar agoraSeta para a direita
Fundo PythonTelas Python
Luz Python

É importante destacar que, para simplificar o exemplo, estamos partindo do pressuposto de que todas as entradas serão fornecidas corretamente e apenas com números inteiros.

Se executarmos esse código, veremos que ele funcionará corretamente.

Cálculo do bonus inicial

Mas repare no seguinte: estamos atribuindo o input primeiro à variável vendas e depois fazendo a comparação dentro do if. No entanto, essa variável não é mais utilizada em nenhum outro momento dentro do código. Dessa forma, poderíamos colocar o próprio input na comparação.

Codigo
if int(input("Vendas do funcionário: ")) > 1000
    bonus = 50
else:
    bonus = 0

print("Bonus: ", bonus)

Estamos usando o input como referência, mas isso também seria válido para uma função, por exemplo. Em vez de armazenar o resultado dela em uma variável, você poderia passá-la diretamente dentro do if.

Agora, vamos utilizar o código acima para ilustrar o uso do operador walrus em Python. Suponha que uma nova regra de bônus seja implementada na empresa, onde o valor será correspondente a 5% do total de vendas do funcionário (0.05 * vendas).

No entanto, perceba que não temos mais a variável vendas. Para resolver essa situação, poderíamos retornar o código à sua forma anterior, atribuindo o input a uma variável chamada vendas.

Codigo
vendas = int(input("Vendas do funcionário: "))

if vendas > 1000:
    bonus = 0.05 * vendas
else:
    bonus = 0

print("Bonus: ", bonus)

Porém, observe que foi necessário modificar três linhas do código para aplicar essas mudanças no cálculo do bônus. Podemos simplificar essa abordagem utilizando o operador walrus para ser mais prático e direto.

Codigo
if (vendas := int(input("Vendas do funcionário: "))) > 1000:
    bonus = 0.05 * vendas
else:
    bonus = 0

print("Bonus: ", bonus)
print("Vendas:", vendas)

Dessa forma, conseguimos definir a variável vendas em uma única linha, utilizando o input, e salvando o valor atribuído a ela para, em seguida, fazer a comparação. No final, podemos até mesmo dar um print no valor de vendas, além do bônus.

Observação: É necessário colocar toda a expressão entre parênteses para garantir a correta interpretação do operador walrus.

Cálculo do bonus com operador walrus em python

Esses são exemplos de casos em que o operador walrus em Python é utilizado. Você pode aplicá-lo em estruturas condicionais (if), loops (for e while) sempre que quiser atribuir e salvar o valor em uma variável e utilizá-la em sequência.

Vale ressaltar que o uso do operador walrus em Python dependerá das suas necessidades. Não é obrigatório utilizá-lo, mas pode ser útil para facilitar a manutenção de um código existente ou simplificar algum processo do seu código.

Cuidado com o operador walrus em Python

Como eu mostrei anteriormente, o walrus operator pode ser uma forma útil de simplificar ou auxiliar em um processo específico no código, ou em sua manutenção. No entanto, é importante ter cuidado ao usá-lo e não abusar do seu uso de forma indiscriminada.

É recomendável utilizar o operador walrus em casos mais simples, evitando inseri-lo em linhas de código que já estão carregadas de informações, pois isso pode dificultar a leitura e compreensão do código, tanto para você no futuro, quanto para outros desenvolvedores que possam trabalhar no mesmo projeto.

Busque encontrar um equilíbrio entre a concisão do código e sua legibilidade. É crucial evitar repetições desnecessárias e linhas de código excessivamente longas, mas também é fundamental garantir que o código seja claro e de fácil entendimento.

A decisão de utilizar o operador walrus em Python deve ser baseada na sua preferência, na legibilidade do código e nas necessidades específicas do projeto em questão.

Porém, tenha cuidado e avalie se sua aplicação contribuirá para a clareza e manutenibilidade do código em questão.

Perguntas frequentes

1. O que é o operador walrus em Python?

É o operador de atribuição em expressão, escrito como :=, disponível a partir do Python 3.8. Ele atribui um valor a uma variável e retorna esse valor ao mesmo tempo, tudo em uma única expressão. O apelido “walrus” vem do formato dos dois pontos e do sinal de igual, parecidos com a morsa.

2. Para que serve o operador walrus?

Ele serve para atribuir e usar um valor na mesma linha, deixando o código mais curto e eficiente. É comum em laços while que leem dados, em if que aproveitam o resultado de uma função e em list comprehensions, evitando chamar o mesmo cálculo duas vezes. Bem usado, melhora a legibilidade sem repetição.

3. Em qual versão do Python o operador walrus foi adicionado?

O operador walrus (:=) chegou no Python 3.8, lançado em 2019, pela proposta PEP 572. Portanto, ele não funciona em versões anteriores, como o Python 3.7 ou 2.7. Se o seu código precisa rodar em versões mais antigas, evite o walrus ou atualize o interpretador para a 3.8 ou superior.

4. Qual a diferença entre := e = no Python?

O sinal = é usado em comandos de atribuição comuns, em linha própria, e não retorna valor. Já o := (walrus) atribui e retorna o valor dentro de uma expressão maior, como uma condição de if ou while. Em resumo, use = para atribuir; := quando precisa atribuir e usar ao mesmo tempo.

Conclusão – Operador Walrus em Python

Nessa aula, expliquei o que é e como usar o operador walrus em Python. Através de exemplos práticos, pudemos compreender como esse operador pode simplificar nossos códigos e facilitar sua manutenção.

Esse conhecimento permitirá que você aprimore sua escrita de código e compreenda melhor quando estiver lendo o código de outros desenvolvedores e se deparar com esse operador.

Agora você já pode aplicar o operador walrus em seus próprios códigos, principalmente em estruturas condicionais (if) e loops (for e while).

 Lembre-se, no entanto, de usar o operador walrus em situações mais simples, de forma a não comprometer a legibilidade e compreensão do seu código.

Com a correta aplicação do operador walrus, você poderá escrever códigos mais concisos e eficientes, facilitando a manutenção e o entendimento do seu trabalho.

Hashtag Treinamentos

Para acessar outras publicações de Python, clique aqui!


Quer aprender mais sobre Python com um minicurso básico gratuito?