mini-python [0]


Arnaldo Russo

github.com/arnaldorusso
www.ciclotux.org

Python


Seu nome foi influenciado pelo Monty Python’s
Güido van Rossum

Linguagem Clara

[1]: import this

The Zen of Python, by Tim Peters



  • Grande base de código e bibliotecas de terceiros
  • Grande comunidade de desenvolvedores

  • Software Livre: liberdade de uso, distribuição. Licença própria, compatível com GPL, porém pode distribuir somente o binário.

instalações prontas


Instalações prontas


Linux - python instalado nas distros


numpy
scipy
matplotlib


Spyder - Ide

spyder                          - python IDE for scientists

Sintaxe

"#" são comentários. Tanto para indicar o tipo de texto Quanto para inserir comentários
de codigo.

#!/usr/bin/env python

# -*- coding: utf-8 -*- 

# Comentario para um printprint(7 * 3)

sintaxe

  • Linhas Lógicas são terminadas com uma nova linha;
    • Exceto quando explicitamente continuadas na próxima linha física, para isto usa-se o "\".


     a = b + c x = x * f + \     x0 * f    l = [1, 2,      3, 4]
    d = { 'a' : 1, 'b' : 2 }
    if a > x and \ if a > x and \ b < y: b < y: print("texto") print("texto")

    sintaxe


    Identações
    Devem ser feitas com 4 espaços.

    !! CUIDADO para não confundir TAB com espaço.

    Configurar o editor!

    Lógica


    Lógica


     # para i na listafor i in [104, 234, 654, 378, 798]:    if i % 3 == 0:        print( i, "/3 = ", i/3)        # jeito arrumadinho de dizer        print("%d/3 = %d"  % (i, i/3))

    Strings

    • Strings
    Convencional: ’texto’ ou “texto”
    Multi-Line: ’’’texto várias linhas’’’
    ou “““texto várias linhas”””
    Unicode: u’texto unicode’ ou u”texto”, ...
    Raw: r’texto bruto\n’
    Strings em várias linhas são concatenadas.
    • Números parecido com outras linguagens, C, C++, Java:
    Inteiro: 123 (decimal), 0632 (octal), 0xff00 (hexadecimal)
    1.  Longo: 123 ou 123
    2.  Ponto Flutuante: 3.14, 10., .12, 1.23e-9
    3.  Complexos: 10.0 + 3j

    EXCEÇÕES


    Palavras RESERVADAS

    AND, DEL, FOR, IS, RAISE, ASSERT, ELIF, FROM, LAMBDA, RETURN, BREAK, ELSE, GLOBAL, NOT, TRY, CLASS, EXCEPT, IF, OR, WHILE,  CONTINUE, EXEC, IMPORT, PASS, YIELD, DEF, FINALLY, IN, PRINT

    Começando uma sessão


    Para trabalhar com funções e operações numéricas:

    numpy

    import numpy as np

    Todas as funções implementadas no pacote Numpy, poderão ser acessadas com np.[+ atributo]


    Listas e tuplas


    Tupla: imutável
    Lista: mutável

    • tupla = (0,1,2,3,4,5)
      lista = list(tupla) # [0,1,2,3,4,5] 
                

    dicionarios

    d = {}
    d['chave'] = 'valor'
    print(d)
        {'chave': 'valor'}

    >>> d.keys()
    ['chave']
    >>> d.values()
    ['valor']
    >>> d.items()
    [('chave', 'valor')] 

    Dicionario


    d = dict(chave = 'valor', numero = 3)

    In [1]: d = dict(chave = 'valor', numero = 3)In [2]: d
    Out[2]: {'chave': 'valor', 'numero': 3}

    Apagando e limpando



    # Apagando e limpando
    •          apagando elementos
    •          apagando variáveis
    •          limpando variáveis carregadas #reset

    começando

    CRIAR UM ARRAY:
    np.array([1, 2, 3, 4])
    # Jeito erradonp.array(1, 2, 3, 4)

    Verificar o shape:
    var = np.array(30)                
      np.shape(var)
    var.shape 
    VERIFICAR O TAMANHO:
    len(var) 

    Exercícios

    Ex. 1: Criando variáveis:
        Obter ajuda no 'help' '??' sobre as seguintes funções:
    Numpy
    Criar um vetor com 10 elementos
      a) ones
        b) zeros
        c) randn
        
    TIP:  Verificar a existência das variáveis:
        Utilizar os comandos who e whos.


    Tipos Numéricos

    Construindo arrays.
    Ver funções habilitadas para um np.array
    "var.[tab]"

    "T, size, reshape, min, max, mean, argmin, argmax, etc"
    Função "ones", "zeros", "random"

    Exercícios

    •     vetor de uns (1s) com 10 linhas e 1 coluna.
    •     matriz de zeros de 4x3.
    •     Criar uma variável randômica de 3 x 8 x 2
    •     Criar um vetor de 1 a 15 com espaçamento de 0.5 entre cada elemento.
    •      Verificar o tamanho do vetor criado.   
    •     Criar um vetor com os seguintes elementos:     1, 4, 3, 8, 6, 9, 34, 67, 87, 98, 0, 1, 3, 6, 8.  
    •    Verificar o tamanho do vetor criado.    
    •     Criar uma matriz 3x5 com os mesmos valores do exercício anterior.

    Tipos Numéricos

    Concatenação

    • a = np.random.random(30)
    • b = np.random.random(30)
    • c = np.column_stack((a,b))# checar o shape (c.shape)
    • d = np.row_stack((a,b)) # d.shape

    TIPOS NUMÉRICOS

    Cópias de vetores em ambiente Numpy:

    • g = a        #alterações em g, mudam a
    • g = a.copy() #sem alteraçõea agora.

    Acessando elementos de arrays

    • g = g.reshape(3,5)
    • g[1,3] # atenção !! (python começa a contar com "0")

    Mais tipos

    Slices ou Indexação:

    • g = np.arange(35).reshape(5,7)
    • g[:,0] 
    • # lembrar que o len(g) e´ o numero de linhas
    • g[0] # vai retornar a primeira linha.
    • g[...,2:7:2]
    • g[..., ::2]
    • x[(0,2,4), 3:-1] #cuidar com posiçoes.



    mais tipos

    Criando mascaras

    • x = np.arange(35).reshape(7,5)
    • b = x>20
    • print(b)
    • x[b]
    • b[:,5]
    • x[b[:,5]]

    só Ctrl + s salva

    np.save(file, arr) # .npy
    np.load('file.npy')
    #exemplo de um dict, para salvar mais de uma var.
    np.savez('dicionario.npz', **dict_criado) #asteriscos importantes para não salvar como array.
    dados = np.load('dicionario.npz')
    dados.keys() #mostra as chaves que podem ser carregadas


    Made with Slides.com