Como Funcionam as Atribuições Aumentadas?
A atribuição aumentada combina uma operação binária com uma atribuição em um único passo. Ele recebe uma variável, aplica uma operação nela com outro valor e armazena o resultado de volta na mesma variável.
Se você está familiarizado com uma linguagem como JavaScript, provavelmente já ouviu falar do operador de atribuição de adição (
+=) ou atribuição de subtração (-=) e outros. Eles também existem em Python. A única diferença é que eles são chamados de atribuições aumentadas.
A sintaxe básica de uma atribuição aumentada é assim:
variable <operator>= value
Qual é uma maneira mais eficiente de fazer isso:
variable = variable <operator> value
Por exemplo, aqui está um exemplo de uso de atribuição aumentada para adicionar 5 a uma variável existente:
my_var = 10
my_var += 5
print(my_var) # 15
E aqui está a mesma coisa, mas sem atribuição aumentada:
my_var = 10
my_var = my_var + 5
print(my_var) # 15
A vantagem da atribuição aumentada é que ela fornece uma forma concisa e legível de atualizar o valor de uma variável sem repetir o nome da variável. Por sua vez, isso reduz a redundância e os erros potenciais que podem surgir de um erro de digitação ou algo semelhante.
Todo operador pode usar uma atribuição aumentada. Já vimos o operador de atribuição de adição (+=), então vamos ver outros.
- O operador de atribuição de subtração (
-=) subtrai o operando da direita da variável da esquerda e armazena a diferença na variável da esquerda:
count = 14
count -= 3
print(count) # 11
- O operador de atribuição de multiplicação (
*=) multiplica a variável à esquerda pelo operando à direita e armazena o produto de volta na variável à esquerda:
product = 65
product *= 7
print(product) # 455
- O operador de atribuição de divisão (
/=) divide a variável à esquerda pela da direita e armazena o resultado de volta na variável à esquerda:
price = 100
price /= 4
print(price) # 25.0
- O operador de divisão inteira (
//=) realiza a divisão inteira da variável à esquerda pela da direita e armazena o resultado de volta na variável à esquerda:
total_pages = 23
total_pages //= 5
print(total_pages) # 4
- O operador de atribuição de módulo (
%=) calcula o resto da variável à esquerda dividida pela da direita e armazena o resultado de volta na variável à esquerda:
bits = 35
bits %= 2
print(bits) # 1
- O operador de atribuição de exponenciação (
**=) eleva a variável à esquerda à potência da variável à direita e armazena o resultado de volta na variável à esquerda:
power = 2
power **= 3
print(power) # 8
Você também pode usar alguns operadores de atribuição aumentada com strings. Por exemplo, o operador de atribuição de adição facilita a concatenação de strings:
greet = 'Hello'
greet += ' World'
print(greet) # Hello World
E o operador de atribuição de multiplicação pode ser usado para repetir uma string:
greet = 'Hello'
greet *= 3
print(greet) # HelloHelloHello
Outras atribuições aumentadas lançam um TypeError quando você as usa com strings:
greet = 'Hello'
greet -= ' World'
print(greet) # TypeError: unsupported operand type(s) for -=: 'str' and 'str'
greet = 'Hello'
greet /= 'World'
print(greet) # TypeError: unsupported operand type(s) for /=: 'str' and 'str'
Se você está se perguntando se os operadores de incremento e decremento (++ e --) funcionam em Python, eles não funcionam. Isso ocorre porque o Python evita deliberadamente os atalhos de incremento e decremento no estilo C para manter a linguagem clara e explícita.
Em vez de x++, você pode simplesmente escrever x += 1, o que deixa óbvio que você está incrementando o valor de x em 1.
Escrever ++x em Python apenas aplica o sinal de mais unário duas vezes e não incrementa nada:
my_var = 5
print(+my_var) # 5
print(++my_var) # 5
print(+++my_var) # 5
my_var += 1
print(my_var) # 6Este módulo não possui perguntas. Marque como concluído.