21 set 2017

Aprenda os fundamentos do Python em 30 Dias  —  Dia 2 (Números)

Aprenda os fundamentos do Python em 30 Dias — Dia 2 (Números)

Original: medium.com – devops-challenge


Números

Python tem vários tipos de números
Inteiros: são apenas números inteiros (positivos ou negativos, por exemplo: 1 ou -1)
Ponto flutuante: Com ponto decimal neles (por exemplo: 1.0 ou -1.1)
Bool: Representar valores booleanos True e False (Importante quando queremos testar algo)
Nenhum Tipo: Especial e tem um valor, None

Podemos usar type() para ver o tipo de um objeto

[code lang=python]
>>> type(1)
<class ‘int’>

>>> type(1.0)
<class ‘float’>

>>> type(True)
<class ‘bool’>

>>> type(None)
<class ‘NoneType’>
[/code]

Operações aritméticas

Adição

[code lang=python]
>>> 1+1
2
[/code]

Nota: Se tentarmos adicionar int com float o rsultado será do tipo float

[code lang=python]
>>> 1 + 2.0
3.0
[/code]

Subtração

[code lang=python]
>>> 2–1
1
[/code]

Multiplication

[code lang=python]
>>> 2 * 3
6
[/code]

Division

[code lang=python]
>>> 3/2
1.5
[/code]

NOTA: No caso de você estar usando Python2

[code lang=python]
>>> 3/2
1
[/code]

A razão para esta resposta inesperada da divisão é:
– Python 2, o ponto decimal é truncado e é chamada de divisão clássica;
– Python 3 é chamada de divisão verdadeira.

Há maneiras diferentes de corrigir esse problema em Python2

Especifique um do número para ser um ponto flutuante float

[code lang=text]
>>> 3.0/2
1.5

>>> 3/2.0
1.5
[/code]

Também podemos lançar cast o tipo de função que basicamente transforma um int (inteiro) em float (ponto flutuante).

[code lang=python]
>>> float(3)/2
1.5
[/code]

A maneira de converter um int para float, é feita do mesmo modo usado para converter um float em int

[code lang=python]
>>> int(2.9)
2
[/code]

NOTA:
– O Python não tenta converter (arredondar) para o inteiro mais próximo, apenas trunca a parte decimal;
– Também é possível a importação de um módulo chamado future (através da importação desse módulo estamos importando as funções do Python3 para o Python2)

[code lang=python]
>>> from __future__ import division
>>> 3/2
1.5
[/code]

NOTA: Discutiremos mais sobre os módulos e funções em um capítulo futuro, então não se preocupe se você não compreendê-lo muito bem, neste momento eles não são o escopo de aprendizagem.

Módulo

O operador módulo % retorna o resto da divisão

[code lang=python]
>>> 5%2
1
[/code]

Exponenciação

[code lang=python]
>>> 3**2
9
[/code]

Existem algumas funções comuns incorporadas (built-in functions)

[code lang=python]
>>> pow(2,4)
16
[/code]

Para retornar um valor absoluto

[code lang=python]
>>> abs(-4)
4
[/code]

Para arredondar um número para uma dada precisão em dígitos decimais (default 0 digits)

[code lang=python]
>>> round(1.2345)
1
>>> round(1.2345,2)
1.23
[/code]

Para mais informações, consulte: 9.2. math – Mathematical functions – Python 3.6.1 documentation

Operações Simples

  • Parênteses usados para dizer Python para fazer essas operações primeiro
  • Prioridade dos operadores sem parênteses
    • **
    • *
    • /
      • E –

O Python executa da esquerda para a direita, conforme aparecem na expressão

[code lang=python]
>>> 2*5 + 1
11
>>> 2*(5+1)
12
>>> 2 + 5 * 6 +3
35
>>> (2 + 5) * (6 +3)
63
[/code]

https://blog.dominodatalab.com/video-huge-debate-r-vs-python-data-science/

Atribuições de variáveis

Para atribuir valor para uma variável em Python use o operador =.

[code lang=python]
>>> x = 1
>>> x
>>> x + 2
3
[/code]

O que estamos fazendo aqui é criar um objeto (tudo em Python é um objeto) chamado x e atribuir o número 1

Alguns pontos a observar:
– O valor de x é armazenado na memória do computador
– O operador = (Atribuição) vincula o nome ao valor
– Recuperar valor associado ao nome ou variável invocando o nome ou digitando x

[code lang=python]
>>> pi = 3,14
>>> raio = 1,1
>>> área = pi * (raio ** 2)
Área
3.7994000000000008
[/code]

Então agora a pergunta é: por que estamos fazendo tudo isso? quais são as vantagens dessa desta abordagem?

  • Podemos reutilizar nomes em vez de valores
  • É mais fácil alterar o código mais tarde

[code lang=python]
>>> raio = raio + 2
>>> raio
3.1
[/code]

  • Podemos vincular nomes de variáveis ​​usando novas instruções de
    atribuição
  • Os valores anteriores ainda podem ser armazenados na memória, mas
    perderam a alça por ela (o Python Garbage Collector cuidará do
    trabalho limpo)

Exercício

DEtermine qual deve ser o resultado das expressões a seguir:

  1. 1 + 5 -3
  2. 3 * 4,0
  3. -3
  4. Tente descobrir a diferença nos resultados das expressões 7/3 ou 7.0 / 3 ou 7 / 3.0?
  5. Qual é a diferença no resultado de (1 + 2) * 3 ou 1 + 2 * 3
  6. 2 ** 3
  7. Se a = 5, qual a saída de a = a + 1
  8. Se a = 1 qual é o resultado de a + b
  9. Qual é a diferença quando se tenta arredondar round(-1.27,1) vs round(1.27,1)
  10. Mais truques com arredondamento verificar a saída round(3.5) vs round(4.5) e tente descobrir: o que exatamente acontece?
  11. Mais truques com arredondamento, verifique a saída de round(1234567, -1) vs round(1234567, -2) vs round(1234567, -3)

Solução para todos estes problemas disponíveis no Dia3, por enquanto, continue tentando 🙂

Respostas: https://github.com/lakhera2016/Learn-Python-Fundamental-in-30-Days/tree/master/Day2-Numbers


Final da lição do Dia 02, Em caso de dúvidas ou qualquer outra discussão, este é o link para o canal (Comunicação somente em Inglês – english only) Python Slack channel http://devops-myworld.slack.com


  • Copyright – Learn Python Fundamental in 30 Days — (Introduction to Python)[medium.com – devops-challenge] http://medium.com/devops-challenge *

Leave a Reply