Assim como na matemática, as linguagens de programação como Python têm operadores. Você pode pensar nelas como funções extremamente simples que estão na base da ciência da computação. Essas são as operações mais simples às quais um programa de computador pode ser reduzido. Eles são conhecimentos essenciais para qualquer aspirante a cientista de dados ou engenheiro de software.
Se você quiser saber mais sobre os fundamentos da linguagem de programação Python, não deixe de conferir nosso curso gratuito Intro to Python for Data Science.
Operadores aritméticos
É provável que você já esteja familiarizado com elas, já que vêm da matemática básica.
Os operadores aritméticos são: adição (+), subtração (-), multiplicação (*), divisão (/), expoente (**), divisão de piso (//) e módulo (%). As quatro primeiras são bastante simples: adição, subtração, multiplicação e divisão, e você provavelmente já está familiarizado com elas.
Os outros três são um pouco mais complicados. O operador de expoente significa "elevado à potência de". Por exemplo, 2 ** 3 significa que 2 é multiplicado por ele mesmo 3 vezes, portanto 2 ** 3 é igual a 2 * 2 * 2, que é igual a 8.
A divisão por piso é igual à divisão normal, exceto pelo fato de que o resultado é sempre arredondado para o final. No exemplo abaixo, 5 é dividido por 2, resultando em 2,5. Mas como se trata da divisão do piso, 2,5 é arredondado para 2.
Por fim, o módulo é o restante após a divisão. No caso de 5%2, o número 2 só cabe duas vezes em 5, o que significa que o restante é 1.
# Exponentprint(5**2)# This is the same as 5 * 5# Floor Divisionprint(5//2)# Modulusprint(5%2)Tecnologia
Em Python, o operador de adição também pode ser usado para concatenar cadeias de caracteres. Isso significa que eles serão reunidos em uma única string, por exemplo:
firstName ="Théo"
introduction ="Hi, my name is "+ firstName +"."print(introduction)Tecnologia
Se você tem alguma experiência em programação, certamente já usou operadores de atribuição antes. Eles atribuem um determinado valor a uma variável. O mais usado é o =. Para usá-lo, basta digitar o nome da variável à qual você deseja atribuir um novo valor, o endereço = e o valor que deseja atribuir. Por exemplo, se quiser atribuir o valor 100 à variável balance, você pode fazer o seguinte:
Os outros operadores de atribuição funcionam exatamente da mesma forma. São elas:
*=
/=
**=
//=
%=
Operadores de comparação
Você pode usar operadores de comparação para, como você adivinhou, comparar os valores das variáveis. Eles sempre retornarão um valor booleano, que é True ou False. Há seis deles:
Equal: ==
Não é igual: !=
Maior que: >
Menos de: <
Maior que ou igual: >=
Menor ou igual: <=
Aqui estão alguns exemplos de comparações:
a =3
b =5print(a == b)# Equalprint(a != b)# Not equalprint(a > b)# Greater thanprint(a < b)# Less thanprint(a >= b)# Greater than or equal toprint(a <= b)# Less than or equal toTecnologia
== e != também podem ser usados para comparar cadeias de caracteres em vez de números. Os outros operadores não são compatíveis com cadeias de caracteres, pois uma cadeia de caracteres não pode ser realmente maior que outra cadeia de caracteres.
Talvez você já esteja familiarizado com eles! Na lógica, eles são chamados de conectivos lógicos. Eles também são amplamente usados na linguagem humana. São eles: and, or e not.
and só retornará True se ambos os operandos (os dois objetos booleanos que você está comparando) forem True. Por exemplo:
Lembre-se de que, anteriormente, você viu como o + pode ser usado para somar números, mas que ele também pode ser usado para concatenar ou combinar cadeias de caracteres. Portanto, o + funciona de forma diferente, dependendo do tipo de objeto em que você o utiliza. Mas esse nem sempre será o caso. Às vezes, o operador com o qual você está trabalhando simplesmente não é compatível com o tipo de objeto no qual você deseja usá-lo.
Veja um exemplo. Digamos que você tenha dois objetos Dog, ozzy e filou. Eles pertencem à classe Dog abaixo. Você pode pensar na classe como um projeto de como os objetos devem ser e como devem se comportar. Nesse caso, os objetos Dog têm um nome, idade e altura. Depois que a classe é definida, você pode instanciar objetos. Um deles é o Ozzy, com 3 anos de idade e 30 centímetros de altura. O outro é Filou, ele tem 5 anos e 65 centímetros de altura.
Este exemplo usa o conceito de programação orientada a objetos. Se quiser saber mais sobre isso, não deixe de ler nosso tutorial sobre Programação orientada a objetos em Python
Digamos que você queira comparar os dois cães com o sinal de maior que: >. Isso não funcionará. Você receberá um erro dizendo '>' not supported between instances of 'Dog' and 'Dog'. Isso significa que o site > não sabe como comparar objetos da classe Dog.
---------------------------------------------------------------------------
TypeError Traceback(most recent call last)<ipython-input-96-428069ab24cc>in<module>()9 filou =Dog("Filou",5,65)10--->11print(filou > ozzy)TypeError:'>' not supported between instances of'Dog' and 'Dog'Tecnologia
Felizmente, com a sobrecarga de operador, você pode definir o comportamento do operador para quando ele for chamado nos objetos Dog. Nesse caso, um método chamado __gt__, que significa "maior que", deve ser definido, recebendo dois argumentos. Como queremos comparar nossos cães com base em sua altura, o método retorna self.height > other.height.
Como você sabe qual deles será executado primeiro? Como você deve ler uma linha de código com muitos desses símbolos? Ele é executado da esquerda para a direita ou há alguma ordem específica?
É aqui que entra a precedência. Os operadores Python são executados em uma ordem muito específica, e alguns têm prioridade sobre outros.
Na tabela a seguir, você pode ver a precedência dos operadores, na ordem de cima para baixo. Essas regras são as mesmas da matemática, em que determinados cálculos em uma fórmula precisam ser realizados antes de outros.
Precedência
Operador
Descrição
1
**
expoente
2
*, /, %, //
multiplicar, dividir, módulo, divisão por piso
3
+, -
plus, minus
4
>, <, >=, <=
comparison
5
==, !=
igualdade
6
= %= /= //= -= += *= **=
atribuição
7
e, ou, não
lógico
Associatividade
Você viu que a precedência é importante! Mas e as que estão no mesmo nível de precedência, como multiplicação e divisão? Eles são executados ao mesmo tempo? No. *, \, % e \\ são executados da esquerda para a direita, enquanto ** é executado da direita para a esquerda. Isso é chamado de associatividade.
Dê uma olhada no exemplo a seguir. Nesse caso, os operadores serão executados da esquerda para a direita, e o resultado será 3.
Ao adicionar parênteses, no entanto, você pode alterar a ordem em que os operadores são executados. Isso é associatividade, que funciona da mesma forma que a associatividade em matemática. O que estiver entre parênteses será calculado primeiro. Nesse caso, a divisão do piso será realizada primeiro, seguida pela multiplicação.
Agora você sabe o que são operadores, como deve usá-los e como eles funcionam. Você também aprendeu sobre sobrecarga, precedência e associatividade. Você está no caminho certo para se tornar um mestre em Python! Se você quiser aprender ainda mais, não hesite em conferir nosso curso Python Intermediário para Ciência de Dados.
Introdução às estruturas de dados do Python: saiba mais sobre tipos de dados e estruturas de dados primitivas e não primitivas, como strings, listas, pilhas etc.
Descubra como escrever funções em Python reutilizáveis e eficientes. Domine parâmetros, instruções de retorno e temas avançados como funções lambda. Organize melhor seu código com main() e outras boas práticas.
Neste tutorial de Python, você vai explorar conversões implícitas e explícitas de tipos de dados, tanto em estruturas primitivas quanto não primitivas, com a ajuda de exemplos de código!
O operador de morsa do Python := permite que você atribua um valor a uma variável dentro de uma expressão, combinando atribuição e uso em uma única etapa.
Mergulhe na ciência de dados com Python para analisar e visualizar seus dados de forma eficaz. Não precisa ter experiência ou conhecimento em programação.
Assim como na matemática, as linguagens de programação como Python têm operadores. Você pode pensar nelas como funções extremamente simples que estão na base da ciência da computação. Essas são as operações mais simples às quais um programa de computador pode ser reduzido. Eles são conhecimentos essenciais para qualquer aspirante a cientista de dados ou engenheiro de software.
Neste tutorial, você aprenderá sobre
Se você quiser saber mais sobre os fundamentos da linguagem de programação Python, não deixe de conferir nosso curso gratuito Intro to Python for Data Science.
Operadores aritméticos
É provável que você já esteja familiarizado com elas, já que vêm da matemática básica.
Os operadores aritméticos são: adição (
+), subtração (-), multiplicação (*), divisão (/), expoente (**), divisão de piso (//) e módulo (%). As quatro primeiras são bastante simples: adição, subtração, multiplicação e divisão, e você provavelmente já está familiarizado com elas.Os outros três são um pouco mais complicados. O operador de expoente significa "elevado à potência de". Por exemplo,
2 ** 3significa que2é multiplicado por ele mesmo3vezes, portanto2 ** 3é igual a2 * 2 * 2, que é igual a 8.A divisão por piso é igual à divisão normal, exceto pelo fato de que o resultado é sempre arredondado para o final. No exemplo abaixo, 5 é dividido por 2, resultando em 2,5. Mas como se trata da divisão do piso, 2,5 é arredondado para 2.
Por fim, o módulo é o restante após a divisão. No caso de
5%2, o número 2 só cabe duas vezes em 5, o que significa que o restante é 1.Em Python, o operador de adição também pode ser usado para concatenar cadeias de caracteres. Isso significa que eles serão reunidos em uma única string, por exemplo:
Operadores de atribuição
Se você tem alguma experiência em programação, certamente já usou operadores de atribuição antes. Eles atribuem um determinado valor a uma variável. O mais usado é o
=. Para usá-lo, basta digitar o nome da variável à qual você deseja atribuir um novo valor, o endereço=e o valor que deseja atribuir. Por exemplo, se quiser atribuir o valor 100 à variávelbalance, você pode fazer o seguinte:Se quiser incrementar o valor de
balancecom 10, você pode usarbalance += 10. Isso é equivalente abalance = balance + 10, mas é muito mais curto.O mesmo se aplica a
-=,balance -= 10é o mesmo quebalance = balance - 10:Os outros operadores de atribuição funcionam exatamente da mesma forma. São elas:
*=/=**=//=%=Operadores de comparação
Você pode usar operadores de comparação para, como você adivinhou, comparar os valores das variáveis. Eles sempre retornarão um valor booleano, que é
TrueouFalse. Há seis deles:==!=><>=<=Aqui estão alguns exemplos de comparações:
==e!=também podem ser usados para comparar cadeias de caracteres em vez de números. Os outros operadores não são compatíveis com cadeias de caracteres, pois uma cadeia de caracteres não pode ser realmente maior que outra cadeia de caracteres.Operadores lógicos
Talvez você já esteja familiarizado com eles! Na lógica, eles são chamados de conectivos lógicos. Eles também são amplamente usados na linguagem humana. São eles:
and,orenot.andsó retornará True se ambos os operandos (os dois objetos booleanos que você está comparando) forem True. Por exemplo:Para entender o comportamento desse operador lógico, você pode usar uma tabela-verdade:
oré True, sempre que qualquer operando (um ou mais) for True.Observe que eles também funcionam com mais de dois operandos, por exemplo:
notretornará o oposto de seu operando, portanto,TrueseFalsefor fornecido e vice-versa.Sobrecarga do operador
Lembre-se de que, anteriormente, você viu como o
+pode ser usado para somar números, mas que ele também pode ser usado para concatenar ou combinar cadeias de caracteres. Portanto, o+funciona de forma diferente, dependendo do tipo de objeto em que você o utiliza. Mas esse nem sempre será o caso. Às vezes, o operador com o qual você está trabalhando simplesmente não é compatível com o tipo de objeto no qual você deseja usá-lo.Veja um exemplo. Digamos que você tenha dois objetos
Dog,ozzyefilou. Eles pertencem à classeDogabaixo. Você pode pensar na classe como um projeto de como os objetos devem ser e como devem se comportar. Nesse caso, os objetosDogtêm um nome, idade e altura. Depois que a classe é definida, você pode instanciar objetos. Um deles é o Ozzy, com 3 anos de idade e 30 centímetros de altura. O outro é Filou, ele tem 5 anos e 65 centímetros de altura.Este exemplo usa o conceito de programação orientada a objetos. Se quiser saber mais sobre isso, não deixe de ler nosso tutorial sobre Programação orientada a objetos em Python
Digamos que você queira comparar os dois cães com o sinal de maior que:
>. Isso não funcionará. Você receberá um erro dizendo'>' not supported between instances of 'Dog' and 'Dog'. Isso significa que o site>não sabe como comparar objetos da classeDog.Felizmente, com a sobrecarga de operador, você pode definir o comportamento do operador para quando ele for chamado nos objetos
Dog. Nesse caso, um método chamado__gt__, que significa "maior que", deve ser definido, recebendo dois argumentos. Como queremos comparar nossos cães com base em sua altura, o método retornaself.height > other.height.Precedência
Quando você está combinando vários operadores, as coisas podem ficar confusas. Dê uma olhada no exemplo abaixo:
Como você sabe qual deles será executado primeiro? Como você deve ler uma linha de código com muitos desses símbolos? Ele é executado da esquerda para a direita ou há alguma ordem específica?
É aqui que entra a precedência. Os operadores Python são executados em uma ordem muito específica, e alguns têm prioridade sobre outros.
Na tabela a seguir, você pode ver a precedência dos operadores, na ordem de cima para baixo. Essas regras são as mesmas da matemática, em que determinados cálculos em uma fórmula precisam ser realizados antes de outros.
Associatividade
Você viu que a precedência é importante! Mas e as que estão no mesmo nível de precedência, como multiplicação e divisão? Eles são executados ao mesmo tempo? No.
*,\,%e\\são executados da esquerda para a direita, enquanto**é executado da direita para a esquerda. Isso é chamado de associatividade.Dê uma olhada no exemplo a seguir. Nesse caso, os operadores serão executados da esquerda para a direita, e o resultado será 3.
Ao adicionar parênteses, no entanto, você pode alterar a ordem em que os operadores são executados. Isso é associatividade, que funciona da mesma forma que a associatividade em matemática. O que estiver entre parênteses será calculado primeiro. Nesse caso, a divisão do piso será realizada primeiro, seguida pela multiplicação.
Conclusão
Agora você sabe o que são operadores, como deve usá-los e como eles funcionam. Você também aprendeu sobre sobrecarga, precedência e associatividade. Você está no caminho certo para se tornar um mestre em Python! Se você quiser aprender ainda mais, não hesite em conferir nosso curso Python Intermediário para Ciência de Dados.