Introdução
Neste laboratório, aprenderemos sobre as Expressões de Atribuição do Python, também conhecidas como o "operador morsa" (:=). Este operador, introduzido no Python 3.8, permite atribuir um valor a uma variável como parte de uma expressão. É particularmente útil para otimizar código, evitar cálculos redundantes e simplificar expressões complexas.
Ao final deste laboratório, você deverá ser capaz de entender e aplicar as expressões de atribuição em seus programas Python. Começaremos com exemplos simples e progrediremos gradualmente para exemplos mais complexos.
Expressão de Atribuição Simples
Nesta etapa, começaremos com um exemplo simples para entender a sintaxe básica das expressões de atribuição.
Abrir o Shell do Python
Abra o shell do Python digitando o seguinte comando no terminal.
python3
Teste Simples
Vamos começar com um exemplo simples
## Exemplo básico de uma expressão de atribuição
n = 5
result = (squared := n * n)
print(squared, result)
Saída:
25 25
Aqui, atribuímos o resultado de n * n à variável squared usando o operador morsa := dentro dos parênteses. Em seguida, atribuímos o valor de squared à variável result. Finalmente, imprimimos os valores de squared e result.
Usando Expressões de Atribuição em uma Declaração Condicional
Nesta etapa, exploraremos o uso de expressões de atribuição dentro de uma declaração condicional.
## Usando expressões de atribuição em uma declaração condicional
input_str = "Hello, world!"
if (length := len(input_str)) > 10:
print(f"A string tem {length} caracteres, que é mais de 10.")
else:
print(f"A string tem {length} caracteres, que é menor ou igual a 10.")
Saída:
The string has 13 characters, which is more than 10.
Aqui, calculamos o comprimento de input_str e o atribuímos à variável length usando o operador morsa dentro da condição da declaração if. Isso nos permite usar o valor de length em ambos os ramos da condicional.
Usando Expressões de Atribuição em um Loop
Agora, vamos ver como usar expressões de atribuição em um loop.
## Usando expressões de atribuição em um loop
numbers = [1, 2, 3, 4, 5]
while (n := numbers.pop()) > 2:
print(f"Popped {n}, which is greater than 2.")
print(f"Popped {n}, which is less than or equal to 2.")
Saída:
Popped 5, which is greater than 2.
Popped 4, which is greater than 2.
Popped 3, which is greater than 2.
Popped 2, which is less than or equal to 2
Neste exemplo, usamos o operador morsa dentro da condição do loop while para remover elementos da lista numbers e atribuí-los à variável n. O loop continua até que um elemento menor ou igual a 2 seja removido.
Usando Expressões de Atribuição em List Comprehension
Finalmente, vamos explorar o uso de expressões de atribuição em uma list comprehension.
## Usando expressões de atribuição em uma list comprehension
from math import sqrt
numbers = [1, 4, 9, 16, 25]
roots = [int(root) for n in numbers if (root := sqrt(n)) == int(root)]
print(roots)
Saída:
[1, 2, 3, 4, 5]
Neste exemplo, usamos o operador morsa dentro de uma list comprehension para calcular a raiz quadrada de cada número em numbers e verificar se é um inteiro. Se for, adicionamos a raiz quadrada inteira à lista roots.
Resumo
Neste laboratório, exploramos as Expressões de Atribuição (operador morsa) do Python através de uma série de exemplos passo a passo. Cobrimos a sintaxe básica e o uso em instruções condicionais, loops e list comprehensions. A esta altura, você deve ter uma boa compreensão de como usar expressões de atribuição em seu código Python para otimizar e simplificar expressões complexas.
Lembre-se de usar as expressões de atribuição com sabedoria para tornar seu código mais legível e eficiente. Como acontece com qualquer recurso de programação, é importante não usá-lo em excesso, pois pode levar a um código menos sustentável se usado excessivamente ou de forma inadequada.
Continue praticando e experimentando com o operador morsa em diferentes cenários para aprimorar suas habilidades de programação em Python. Boa sorte e boa codificação!



