Operações Básicas
Autor: Tiago | Publicado: 2009-07-03T10:39:00-07:00

<!--[if gte mso 9]>     Normal   0         21         false   false   false      PT-BR   X-NONE   X-NONE                                                                                                     <![endif]--><!--[if gte mso 9]>                                                                                                                                                                                                                                                                                                                                                                                                                                <![endif]--> <!--  /* Font Definitions */  @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0cm; 	margin-right:0cm; 	margin-bottom:10.0pt; 	margin-left:0cm; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi; 	mso-fareast-language:EN-US;} h3 	{mso-style-priority:9; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-link:"Título 3 Char"; 	mso-margin-top-alt:auto; 	margin-right:0cm; 	mso-margin-bottom-alt:auto; 	margin-left:0cm; 	mso-pagination:widow-orphan; 	mso-outline-level:3; 	font-size:13.5pt; 	font-family:"Times New Roman","serif"; 	mso-fareast-font-family:"Times New Roman"; 	font-weight:bold;} h4 	{mso-style-noshow:yes; 	mso-style-priority:9; 	mso-style-qformat:yes; 	mso-style-link:"Título 4 Char"; 	mso-style-next:Normal; 	margin-top:10.0pt; 	margin-right:0cm; 	margin-bottom:0cm; 	margin-left:0cm; 	margin-bottom:.0001pt; 	line-height:115%; 	mso-pagination:widow-orphan lines-together; 	page-break-after:avoid; 	mso-outline-level:4; 	font-size:11.0pt; 	font-family:"Cambria","serif"; 	mso-ascii-font-family:Cambria; 	mso-ascii-theme-font:major-latin; 	mso-fareast-font-family:"Times New Roman"; 	mso-fareast-theme-font:major-fareast; 	mso-hansi-font-family:Cambria; 	mso-hansi-theme-font:major-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:major-bidi; 	color:#4F81BD; 	mso-themecolor:accent1; 	mso-fareast-language:EN-US; 	font-weight:bold; 	font-style:italic;} p 	{mso-style-priority:99; 	mso-margin-top-alt:auto; 	margin-right:0cm; 	mso-margin-bottom-alt:auto; 	margin-left:0cm; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman","serif"; 	mso-fareast-font-family:"Times New Roman";} pre 	{mso-style-priority:99; 	mso-style-link:"Pré-formatação HTML Char"; 	margin:0cm; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; 	font-size:10.0pt; 	font-family:"Courier New"; 	mso-fareast-font-family:"Times New Roman";} tt 	{mso-style-noshow:yes; 	mso-style-priority:99; 	font-family:"Courier New"; 	mso-ascii-font-family:"Courier New"; 	mso-fareast-font-family:"Times New Roman"; 	mso-hansi-font-family:"Courier New"; 	mso-bidi-font-family:"Courier New";} span.Ttulo3Char 	{mso-style-name:"Título 3 Char"; 	mso-style-priority:9; 	mso-style-unhide:no; 	mso-style-locked:yes; 	mso-style-link:"Título 3"; 	mso-ansi-font-size:13.5pt; 	mso-bidi-font-size:13.5pt; 	font-family:"Times New Roman","serif"; 	mso-ascii-font-family:"Times New Roman"; 	mso-fareast-font-family:"Times New Roman"; 	mso-hansi-font-family:"Times New Roman"; 	mso-bidi-font-family:"Times New Roman"; 	mso-fareast-language:PT-BR; 	font-weight:bold;} span.Ttulo4Char 	{mso-style-name:"Título 4 Char"; 	mso-style-noshow:yes; 	mso-style-priority:9; 	mso-style-unhide:no; 	mso-style-locked:yes; 	mso-style-link:"Título 4"; 	font-family:"Cambria","serif"; 	mso-ascii-font-family:Cambria; 	mso-ascii-theme-font:major-latin; 	mso-fareast-font-family:"Times New Roman"; 	mso-fareast-theme-font:major-fareast; 	mso-hansi-font-family:Cambria; 	mso-hansi-theme-font:major-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:major-bidi; 	color:#4F81BD; 	mso-themecolor:accent1; 	font-weight:bold; 	font-style:italic;} span.Pr-formataoHTMLChar 	{mso-style-name:"Pré-formatação HTML Char"; 	mso-style-priority:99; 	mso-style-unhide:no; 	mso-style-locked:yes; 	mso-style-link:"Pré-formatação HTML"; 	mso-ansi-font-size:10.0pt; 	mso-bidi-font-size:10.0pt; 	font-family:"Courier New"; 	mso-ascii-font-family:"Courier New"; 	mso-fareast-font-family:"Times New Roman"; 	mso-hansi-font-family:"Courier New"; 	mso-bidi-font-family:"Courier New"; 	mso-fareast-language:PT-BR;} span.textbf 	{mso-style-name:textbf; 	mso-style-unhide:no;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi; 	mso-fareast-language:EN-US;} .MsoPapDefault 	{mso-style-type:export-only; 	margin-bottom:10.0pt; 	line-height:115%;} @page Section1 	{size:612.0pt 792.0pt; 	margin:70.85pt 3.0cm 70.85pt 3.0cm; 	mso-header-margin:36.0pt; 	mso-footer-margin:36.0pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --> <!--[if gte mso 10]>   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Tabela normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin-top:0cm; 	mso-para-margin-right:0cm; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0cm; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-fareast-language:EN-US;}  <![endif]-->  Operações Aritméticas  A maior parte dos operadores aritméticos em Python funciona de maneira intuitiva e análoga aos operadores em outras linguagens. Demonstração:       >>> print a + 3       # adição    10    >>> print a - 2       # subtração    5    >>> print a / 2       # divisão inteira: argumentos inteiros    3                     # e resultado inteiro     >>> print a / 2.5     # divisão em ponto flutuante: pelo    2.8                   # menos um argumento deve ser float     >>> print a % 4       # resto da divisão inteira    3    >>> print a * 2       # multiplicação    14    >>> print a ** 2      # exponenciação    49  A exponenciação também pode ser feita por meio de uma função, pow(). A raiz quadrada e outras funções matemáticas estão implementadas no módulo math.   Com exceção da exponenciação e da divisão inteira, estes operadores são bastante comuns em linguagens de programação. Os operadores aritméticos podem ser usados em floats também:       >>> a = 1.15    >>> print a / a - a * a + a    0.57349375  e os operadores de adição (+) e multiplicação (*), em strings:       >>> a = "casa"    >>> print a * 2    exatoexato    >>> print "linda" + a    linda casa  , listas:       >>> a = [-1, 0]    >>> b = [1, 2, 3]    >>> print b * 3    [1, 2, 3, 1, 2, 3, 1, 2, 3]    >>> print a + b    [-1, 0, 1, 2, 3]  e tuplas:       >>> a = (1, 2)    >>> print a + (2, 1)    (1, 2, 2, 1)  Os operadores adição e multiplicação servem para concatenar listas, tuplas e strings.   Operadores de atribuição   O operador mais simples, e que já fui utilizado em diversos exemplos anteriores, é o operador de atribuição. Este operador é representado por um único símbolo de igualdade, =, definindo uma variável e automaticamente atribuindo a ela um valor. O exemplo abaixo define uma variável a, com valor inteiro 1.       >>> a = 1  A sintaxe para o operador combinado utiliza o símbolo do operador aritmético/bit-wise relevante, seguido da igualdade. Este operador combinado efetua a operação sobre o valor da variável, já atribuindo o resultado a esta mesma. Exemplificando:       >>> a = 1      >>> a += 1      >>> print a      2      >>> a /= 2      >>> print a      1      >>> a *= 10      >>> print a      10  Operadores condicionais   Tradicionalmente, programação envolve testar valores, Um teste é essencialmente uma expressão condicional que tem um resultado verdadeiro ou falso.   Igualdade       >>> print 2 == 4            # igualdade    False    >>> print 2 != 4            # diferente de    True    >>> print "a" == "a"    True    >>> print "a" != "b"    True  Comparação       >>> print 1 < 2             # menor que    True    >>> print 3 > 5             # maior que    False    >>> print 3 >= 4            # maior ou igual que    False  Comparações podem ser realizadas também com outros tipos de variáveis; para strings, listas ou dicionários, as comparações `maior que' e `menor que' se referem ao número e ao valor dos elementos, mas por não serem terrivelmente claras não são muito freqüentemente usadas.       >>> [2,2,3] < [2,3,2]    True    >>> "abacate" < "pera"    True  Dica: quando comparando o número de elementos de uma seqüência ou dicionário, é normalmente utilizada a função len(), que retorna o `comprimento' da seqüência.   Operadores lógicos   Os operadores lógicos not, and e or permitem modificar e agrupar o resultado de testes condicionais:       >>> nome = "pedro"      >>> idade = 24      >>> nome == "pedro" and idade == 25      False      >>> nome == "pedro" and idade < 25      True      >>> len(nome) < 10 or not nome == "pedro"      False  Precedência dos operadores  A tabela abaixo mostra a precedência dos operadores em Python, da mais baixa precedência para a mais alta.               Operador            Descrição                           or         Operador boleano OR             and         Operador boleano AND             not x         Operador boleano NOT             in, not in         teste de membros             is, is not         teste de identidade             <, <=, >, >=, !=, ==         Comparações             |         Operador bit   a bit OR             ^         Operador bit   a bit XOR             &amp;         Operador bit   a bit AND             <<, >>         Deslocamentos de bits             +, -         Adição e subtração             *, /, %         Multiplicação, Divisão e Resto             +x, -x         Positivo, Negativo             ~x         Operador bit   a bit NOT             **         Potenciação        Operadores com a mesma precedência estão na mesma linha da tabela. Por exemplo, + e – tem a mesma precedência.   Ordem de avaliação  Por padrão a tabela acima decide quais operadores são avaliados antes de outros. Porém você pode alterar esta ordem de avaliação através do uso de parênteses. Por exemplo, se você quer que uma adição seja avaliada antes da multiplicação poderia escrever uma expressão assim: (3 + 7) * 9.  Associatividade  Operadores são associados da esquerda para a direita. Isto é operadores com a mesma precedência são avaliados da esquerda para a direita. Por exemplo, 2 + 3 + 5 é avaliada como (2 + 3) + 5. Alguns operadores como o de atribuição, tem associatividade da direita para a esquerda, isto é a = b = c é tratado como a = (b = c).