Operadores

O que iremos cobrir?
Operações que podemos executar com os dados, mais especificamente as operações aritméticas, operações com strings e operações lógicas (Boolean) e por fim operações com listas.

Agora que sabemos como criar data de diferentes tipos e já sabemos como atribui-los a variáveis, para mais tarde as podermos utlizar mas o que podemos fazer com esses dados?, quais as formas de as manipular? É exactamente para isso é que servem os operadores. Eles trabalham nos dados. Não irei cobrir todos os operadores existentes no Python, em vez disso irei falar sobre os operadores que se podes encontrar em quase todas as linguagens.

Operadores aritméticos

Já deves estar familiarizado com a maioria destes operadores aritméticos, porque já os vimos a quase todos no capitulo das sequências simples. Contudo vamos recapitular:

Operadores aritméticos
OperadorDescriçãoEfeitos
M+N Adição (Aritmético)
M-N Subtracção (Aritmético)
M*N Multiplicação (Aritmético)
M/N Divisão (Aritmético)
M**N M elevado N (Aritmético)
M>>N envia M, N lugares a direita (Bitwise)
M< envia  M, N lugares a esquerda (Bitwise)
~M Complemento de M (Bitwise)
M & N Bitwise AND de M,N (Bitwise)
M | N Bitwise OR de M,N (Bitwise)

Operadores de strings

Existe um número de operações que posem ser efectuadas com strings, algumas dessas operações já vêm construídas na cerne do Python, mas muitas outras terão que ser Importadas( como fizemos com o sys no capitulo das Sequências simples).

Operadores de strings
OperadorDescriçãoLocalização
S+T Concatenação Built in
S*N Repetição Built in
upper(S) Maiúsculas S módulo string
split(S) Separa S em 'palavras' módulo string  

Boolean(ou operadores lógicos)

Operadores lógicos 
OperadorDescriçãoDescrição
A and B AND verdadeiro se ambos A e B forem verdade
A or B OR verdadeiro tanto se um ou ambos forem verdade
A == B Igualdade verdadeiro se A e B forem idênticos 
A <> B Desigualdade verdadeiro se A e B NÃO forem idênticos 
not B Desigualdade verdadeiro se B não for verdade

Nota: Repara que quase todos os operadores precisam de pelo menos dois valores para efectuar uma operação lógica, digo quase todos, porque o último operador apenas precisa de um valor.

Acedendo as listas

Operadores de listas
OperadorDescriçãoLocalização
L+J Concatenação Built in
L*N Repetição Built in
L[I] Índice Built in

Observações gerais

Todas as linguagens de programação hão-de ter uma ou outra operação que serão próprias da linguagem, e não acontecem em mais nenhuma linguagem. São estas particularidades que tornam as linguagens mais ou menos populares, entre os programadores.

Um exemplo dessas particularidades no Python são operações como List Slicing (uma forma de aceder aos elementos de uma lista através da sua posição dentro da lista) e o Tuple (que é a atribuição de varias variáveis ao mesmo tempo) ex: x,y = 12,13.

Algumas linguagens de programação dão-nos a hipótese de executar algo conhecido por Operator overloading, ou seja, é a possibilidade de o próprio programador de criar os seus próprios operadores, para novos tipos de dados que tenha desenvolvido. Outras linguagens (como o Lisp) vão ainda mais longe e permitem a modificação do comportamento dos operadores já existentes, mas em geral isso costuma ser uma péssima ideia, visto que o comportamento do programa torna-se virtual impossível de compreender (imaginem alguém redefinir o conceito de adição ou subtracção)

O Tcl, atreve-se a ir ainda mais longe, permitindo ao programador não só a redefinição do comportamento dos operadores já existentes, mas também permitindo também a redefinição da própria estrutura da linguagem ( estruturas essas que falaremos dentro de pouco). Isto é uma das ferramentas mais poderosas que o Tcl tem, mas por outro lado, pode se tornar numa fonte de confusão de usado de uma descuidada pelos programadores.

Pontos a lembrar
  • Existem muitos operadores próprios de cada linguagem de programação, e parte da aprendizagem de uma linguagem nova é tornar-nos familiares com os novos tipos de dados, e dos operadores existentes para esses dados.
  • O mesmo operador pode existir em várias linguagens, mas isso não significa que o comportamento que ele venha a ter nas varias linguagens seja idêntico, ou mesmo semelhante!
Anterior  Próxima  Índice


em caso que tenhas alguma dúvida ou queiras comentar esta página envia-me um e-mail para: babyboy@oninet.pt