domingo, 3 de maio de 2015

Python para Testers 4 – Números e números Parte I



Não adianta fugir deles, uma bela hora os números serão necessários. Sendo assim, vamos já conhecer os tipos numéricos e as operações a serem feitas com eles em Python.

Tipos de Números
Existem três tipos numéricos em Python: Integer, Float e Long. Os integer (inteiros) são os que mais usamos.  Os float são os famosos "números quebrados" e os long são também números inteiros, a diferença é que eles são virtualmente ilimitados, ou seja, vai impor um limite aqui é a quantidade de memória do computador.
Dito isso vamos às operações.


Operações
O Python tem uma série de operadores definidos para manipular números através de cálculos aritméticos:
▪ Soma (+).
▪ Diferença (-).
▪ Multiplicação (*).
▪ Divisão (/): entre dois inteiros funciona igual à divisão inteira.
▪ Divisão inteira (//): o resultado é truncado para o inteiro imediatamente inferior.
▪ Módulo (%): retorna o resto da divisão.

Expressões
Expressão é algo como “1-7+9”, ou algo como (7*9)+((45-9)%8)-787.  Sim, é o mesmo conceito que aprendemos lá na saudosa sexta série. E de lá mesmo vamos relembrando as regras de precedência de operadores:

● Parênteses têm a mais alta precedência e podem ser usados para forçar uma expressão a ser avaliada na ordem que você quiser. Já que expressões entre parênteses são avaliadas primeiro, 2 * (3-1) é 4, e (1+1)**(5-2) é 8. Você também pode usar parênteses para tornar uma expressão mais fácil de ler, como em (minuto * 100) / 60, ainda que isso não altere o resultado.

● Exponenciação ou potenciação tem a próxima precedência mais alta, assim 2**1+1 é 3 e não 4, e 3*1**3 é 3 e não 27.

● Multiplicação e Divisão têm a mesma precedência, que é mais alta do que a da Adição e da Subtração, que também têm a mesma precedência. Assim 2*3-1 dá 5 em vez de 4, e 2/3-1 é -1, não 1 (lembre-se de que na divisão inteira, 2/3=0).

● Operadores com a mesma precedência são avaliados da esquerda para a direita. Assim, na expressão minuto*100/60, a multiplicação acontece primeiro, resultando em 5900/60, o que se transforma produzindo 98. Se as operações tivessem sido avaliadas da direita para a esquerda, o resultado poderia ter sido 59*1, que é 59, que está errado.

Bibliografia:

Como pensar como um cientista da Computação usando Python –(traduzido pelo projeto Pensar Python - http://eltonminetto.net/docs/pythontut.pdf)

Respostas do post anterior
https://drive.google.com/file/d/0BxOATl5oJZ-AU09rbVgtQ3NJRzQ/view?usp=sharing