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
ifcomparando as vendas do funcionário com a meta - 3:00 - Conversão do
input()comint()e a chamada colocada direto dentro doif - 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
ifewhileque 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
ifatrapalham 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.
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.
É 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.

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.
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.
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.
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.

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!


