Você está na página 1de 72

FORMAÇÃO EXPERT EM PYTHON

DEGRAU 2

APOSTILA COMPLETA

Os principais conceitos abordados no segundo


degrau da Formação Expert em Python

Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73


APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Introdução
O que vamos aprender neste degrau 2
Utilizar novas ferramenta
Aprofundar nos fundamentos da linguage
Comprehension
Debugar e tratar erro
Manipulação de arquivo
Decoradore
Orientação a objeto
Trabalhar com datas e horas no Pytho
Ambientes virtuais

Instalações
Anaconda: https://www.anaconda.com
Visual studio code: https://code.visualstudio.com/

Link dos códigos no Google Colab: Clique aqui para acessar

IMPORTANTE
Não esqueça de utilizar corretamente as identações. Você pode identar facilmente
clicando na tecla TAB ou quatro espaços -> <-. No visual studio code, a identação é
automática, então só é necessário saber quando remover a identação.

Identação correta: Identação incorreta:

Empowerdata © Todos os direitos reservados 2


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Boas práticas para códigos Python

É importante seguir as boas práticas da programação de python, e as regras foram

listadas no PEP 8 - Style Guide for Python Code.

As regras são simples e ajudam tanto na programação, quanto na manutenção a na


identificação de erros. Diversas empresas exigem este padrão entre seus programadores.

Clique aqui para acessar

Comandos dir() e help()

O comando dir() ajuda a listar todos os métodos de uma variável.

Exemplo
ENTRADA

SAÍDA

O comando help() ajuda a explicar alguma função.

Exemplo
ENTRADA

SAÍDA

Empowerdata © Todos os direitos reservados 3


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Zen do Python

Para imprimir o Zen do Python, que é a filosofia da linguagem, é só usar o comando

import this

Exemplo
ENTRADA

SAÍDA

Revisão

Variáveis

int Tipo para números inteiros, como: 1 2 -5 0

float Tipo para números decimais, como: 1.5 9.873

string Tipo para texto, como: 'Vinicius' 'maçã' '1234'

booleanos Tipo lógico onde a variável é: True (verdadeiro) ou False (falso)

Empowerdata © Todos os direitos reservados 4


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Exemplo ENTRADA

SAÍDA

Exemplo ENTRADA

SAÍDA

Operadores
Exemplo ENTRADA

SAÍDA

Exemplo ENTRADA

Empowerdata © Todos os direitos reservados 5


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

SAÍDA

Exemplo ENTRADA

SAÍDA

Estrutura de dados

Listas

Exemplo ENTRADA

SAÍDA

Exemplo ENTRADA

Empowerdata © Todos os direitos reservados 6


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

SAÍDA

Tuplas

ENTRADA

SAÍDA

Dicionários

Exemplo

ENTRADA

SAÍDA

Empowerdata © Todos os direitos reservados 7


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Estrutura e controle

While
Exemplo
ENTRADA

SAÍDA

For

Exemplo

ENTRADA

SAÍDA

Funções

Empowerdata © Todos os direitos reservados 8


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Exemplo

ENTRADA

SAÍDA

Conversão de tipos

Exemplo

ENTRADA

SAÍDA

Procurar erro no Stack Overflow: Clique aqui para acessar

Empowerdata © Todos os direitos reservados 9


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Exemplo
ENTRADA

SAÍDA

Listas

Copiando lista
Quando uma variável recebe uma outra variável que é uma lista, o python não duplica

na memória as listas, mas as variáveis vão estar linkadas para o mesmo objeto.

Para realmente criar uma lista nova, é só usar o método copy()

Exemplo ENTRADA

SAÍDA

Empowerdata © Todos os direitos reservados 10


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Exemplo ENTRADA

SAÍDA

Exemplo ENTRADA

SAÍDA

Empowerdata © Todos os direitos reservados 11


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Função

Funções list()
A função list() recebe um argumento iterável (ex. string e tuplas), e cria uma lista
com as iterações desse argumento. Se nenhum argumento for passado, ele cria uma
lista vazia.

Exemplo ENTRADA

SAÍDA

Exemplo ENTRADA

SAÍDA

Função count()
A função count realiza a contagem de algum valor dentro de uma lista.

Exemplo
ENTRADA

SAÍDA

Empowerdata © Todos os direitos reservados 12


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Função index()
A função index() retorna o índice dentro da lista de um certo valor.

Exemplo

ENTRADA

SAÍDA

Função sort()
A função sort() serve para ordenar os termos de uma lista.

Exemplo
ENTRADA

SAÍDA

Função reverse()

IMPORTANTE

Clique duas vezes (ou pressione "Enter") para editar

A função reverse() inverte a ordem da lista, sem ordenar.

Exemplo

ENTRADA

Empowerdata © Todos os direitos reservados 13


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

SAÍDA

Função len()
A função len() retorna o tamanho da lista.

Exemplo
ENTRADA

SAÍDA

Função sum()
A função sum() retorna a soma dos elementos de uma lista numérica.

Exemplo

ENTRADA

SAÍDA

Função min()
A função min() retorna o valor mínimo de uma lista numérica.

Exemplo
ENTRADA

SAÍDA

Empowerdata © Todos os direitos reservados 14


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Função max()
A função max() retorna o valor máximo de uma lista numérica.

Exemplo

ENTRADA

SAÍDA

Slicing
Slicing é a técnica de fatiamento de uma lista, passando o intervalo dos índices.

Exemplo: lista[2:], retorna os valores entre a posição 2, até o final da lista.

Exemplo

ENTRADA

SAÍDA

Exercícios

1 Monte uma lista com os números entre 0 e 100.

2 A partir da lista anterior, separe os números pares em uma lista chamada 'pares'

3 Some os números pares.

Empowerdata © Todos os direitos reservados 15


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Solução

Exemplo ENTRADA

SAÍDA
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
100]

<class 'list'>

Exemplo ENTRADA

SAÍDA
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28,
30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56,
58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84,
86, 88, 90, 92, 94, 96, 98, 100]

<class 'list'>

Exemplo ENTRADA

Empowerdata © Todos os direitos reservados 16


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

SAÍDA

Tuplas

Copiando Tuplas
Diferentemente das listas, a tupla não tem o método copy. Mas com tuplas, o
python não criará a cópia dinâmica como nas listas. Ou seja, se você atribuir um novo
valor para a tupla original, a tupla copiada não terá seu valor inicial modificado.

Exemplo

ENTRADA

SAÍDA

Funções

Função index()
A função index() recebe um valor, e retorna o índice desse valor dentro da tupla.

Exemplo
ENTRADA

Empowerdata © Todos os direitos reservados 17


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

SAÍDA

Função count()
A função count(), recebe um valor, e retorna a contagem de quantas vezes esse valor
aparece na tupla.

Exemplo

ENTRADA

SAÍDA

Função len()
A função len() retorna o tamanho da tupla.

Exemplo

ENTRADA

SAÍDA

Função min()
A função min() retorna o menor valor da tupla.

Exemplo

ENTRADA

Empowerdata © Todos os direitos reservados 18


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

SAÍDA

Função max()
A função max() retorna o maior valor da tupla.

Exemplo

ENTRADA

SAÍDA

Função sum()
A função sum() retorna a soma dos itens da tupla. A tupla deve ser constituído
somente por itens numéricos.

Exemplo

ENTRADA

SAÍDA

Tuplas com único elemento

Função index()
Para criar uma tupla com um único elemento, é necessário adicionar uma vírgula
após o item.

Exemplo ENTRADA

Empowerdata © Todos os direitos reservados 19


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

SAÍDA

Exemplo ENTRADA

SAÍDA

Slicing
Exemplo
ENTRADA

SAÍDA

Desempacotamento de tuplas
Exemplo
ENTRADA

SAÍDA

Empowerdata © Todos os direitos reservados 20


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Dicionários

Copiando dicionários
A cópia de dicionários são iguais à cópia de listas. Para copiar sem a linkagem
dinâmica, é necessário utilizar o método copy()

Exemplo ENTRADA

SAÍDA
{'nome': 'Vinicius', 'linguagem': 'python', 'cidade':
'Macae'}

{'nome': 'Vinicius', 'linguagem': 'python', 'cidade':
'Macae'}

Exemplo ENTRADA

SAÍDA
{'nome': 'Vinicius', 'linguagem': 'python', 'cidade':
'Macae'}

{'nome': 'Vinicius', 'linguagem': 'python'}

Empowerdata © Todos os direitos reservados 21


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Funções

Função dict()
A função dict() é utilizado para criar um dicionário.

Exemplo ENTRADA

SAÍDA

Exemplo ENTRADA dict_b = dict(nome = 'Empowerdata', linguagem="Python")

print(dict_b)

print(type(dict_b))

SAÍDA

Exemplo ENTRADA lista_b = [('nome', 'Empowerdata'),


('linguagem',"Python")]

dict_b = dict(lista_b)

print(dict_b)

print(type(dict_b))

SAÍDA

Função fromkeys()
A função fromkeys() é utilizada para criar um dicionários, mas não é muito usual,
devido a alta probabilidade de erros.

Empowerdata © Todos os direitos reservados 22


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Exemplo
ENTRADA

SAÍDA

Função get()
A função get() recebe uma chave, e retorna o valor. Se a chave não existir, vai retornar
None, e não vai mostrar a mensagem de erro.

Exemplo

ENTRADA # sem a função get(), passando uma chave que não existe mostra a mensagem de
erro

dict_a = {'nome':'Empowerdata', 'linguagem':'Python', 'status':True}

print(dict_a['nomeee'])

SAÍDA
---------------------------------------------------------------------------

KeyError Traceback (most recent call last)

<ipython-input-40-6c3aba5863ca> in <module>()

1 dict_a = {'nome':'Empowerdata', 'linguagem':'Python', 'status':True}

----> 2 print(dict_a['nomeee'])



KeyError: 'nomeee'

Procurar erro no Stack Overflow: Clique aqui para acessar

Exemplo
ENTRADA # com o get(), passando uma chave que não existe retorna None (vazio)

dict_a = {'nome':'Empowerdata', 'linguagem':'Python', 'status':True}

print(dict_a.get('nomeee'))

Empowerdata © Todos os direitos reservados 23


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

SAÍDA

Função update()
A função update() recebe um dicionário como parâmetro, e adiciona os novos valores
no dicionário anterior, ou atualiza seus valores.

Exemplo

ENTRADA

SAÍDA
{'nome': 'Empowerdata', 'linguagem': 'DAX', 'status': True, 'login': 'Aluno123'}

Interações

É possível realizar iterações dos dicionários combinando a função for, e os métodos


keys(), values() ou items().

Iterando com keys()


Com a função keys() combinado com for, será iterado as chaves do dicionário.

Exemplo
ENTRADA

SAÍDA

Empowerdata © Todos os direitos reservados 24


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Iterando com values()


Com a função values() combinado com for, será iterado os valores do dicionário.

Exemplo

ENTRADA

SAÍDA

Iterando com items()


Com a função itemns() combinado com for, será iterado os itens do dicionário por
meio de tuplas.

Exemplo

ENTRADA

SAÍDA

Exercícios

Dado o dicionário abaixo ,crie uma função que receba a sigla de um país e imprima o
nome, a sigla e sua capital.

Empowerdata © Todos os direitos reservados 25


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Solução
Exemplo

ENTRADA

SAÍDA

Collections Counter
Recebe um iterável como argumento e retorna um objeto do tipo Collections
Counter, contendo as contagens de cada elemento no iterável.

Exemplo ENTRADA

SAÍDA

Exemplo ENTRADA

Empowerdata © Todos os direitos reservados 26


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

SAÍDA
Counter({'i': 3, 'V': 1, 'n': 1, 'c': 1, 'u': 1, 's': 1})

[('i', 3)]

if else e elif

If e else são estruturas condicionais, e sua tradução é: se/senão

Para não ficar um código bagunçado com diversos if/else, foi criado o elif, deixando a
estrutura como: se/se/.../senão

Exemplo: Crie uma função que receba uma idade e retorne a faixa etária, de acordo
com as especificações abaixo:

0 a 18: menor de idade


18 a 60: adulto(a)

60 a 100: idoso(a)
maior que 100: centenário(a)
menor que 0: idade inválida!

Exemplo ENTRADA

Empowerdata © Todos os direitos reservados 27


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

ENTRADA

SAÍDA

Exemplo ENTRADA

SAÍDA

While
O while é utilizado quando não é conhecido o número de repetições que um

certo bloco deverá ser executado.


Empowerdata © Todos os direitos reservados 28
Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Abaixo, será criado um jogo de adivinhação, onde será gerado um número secreto
aleatório entre 1 e 5, e o jogador deve escolher um número.

O while permite que o jogador teste valores até acertar, sem uma quantidade
definida de loops.

Exemplo

ENTRADA from random import randint

numero_secreto = randint(1,5)

numero_escolhido = 0

while(numero_secreto != numero_escolhido):

numero_escolhido = int(input('Escolha um numero de 1 a 5: '))

print(f'Parabéns! Você descobriu que o número secreto era o {numero_secreto}!')

SAÍDA

For

range()
A função range() pode receber até três parâmetros, e cria um objeto range que é uma
sequência de números.

Exemplo ENTRADA

SAÍDA

Exemplo ENTRADA

Empowerdata © Todos os direitos reservados 29


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

SAÍDA

Exemplo ENTRADA

SAÍDA

enumerate()
O enumerate() retorna um objeto enumerado. Deve ser aplicado sobre um objeto
iterável.

Exemplo

ENTRADA

SAÍDA

Exercício
Mostrar a tabuada do 7 utilizando Python.

Exemplo

ENTRADA

Empowerdata © Todos os direitos reservados 30


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

SAÍDA

A saída continua até a tabuada até o 9. Para efeito de simplificação colocamos até a tabuada 1.

Break
O break para a execução do looping que está contido.

Exemplo ENTRADA

SAÍDA

Empowerdata © Todos os direitos reservados 31


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Exemplo ENTRADA

SAÍDA

Continue
O continue volta para o loop, e ignora o restante de código que estava no loop.

Exemplo

ENTRADA

SAÍDA

Continuação da saída na página seguinte.

Empowerdata © Todos os direitos reservados 32


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

SAÍDA

pass
O pass continua o loop ou a condição. Basicamente, ele não faz nada.
É extremamente útil para definir funções ou condições, onde a implementação
será realizada depois.
Se não utilizar o pass na condição acima, o python mostrará erro. Então, serve só
para deixar algo dentro do bloco.

Exemplo

ENTRADA

SAÍDA

Avançando em funções

Parâmetros posicionais e parâmetros nomeados


Empowerdata © Todos os direitos reservados 33
Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Uma função que recebe parâmetros, pode receber de duas formas:

Parâmetros posicionais
Parâmetros nomeados

Parâmetros posicionais, como o nome diz, são parâmetros que dependem da


posição. Já os parâmetros nomeados, são parâmetros passados para a função,
juntamente com seu nome.

No exemplo acima, a função recebe a, b e c. A função é invocada passando os


números 1, 2 e 3, logo, a função interpreta que a=1, b=2 e c=3.

A mesma função é invocada no exemplo acima, mas agora cada parâmetro é


passado com seu nome.

Exemplo ENTRADA

SAÍDA

Empowerdata © Todos os direitos reservados 34


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Exemplo ENTRADA

SAÍDA

Exemplo ENTRADA # parâmetros nomeados

def mostra_numeros(numero_1, numero_2, numero_3):

print(numero_1, numero_2, numero_3)

num_1 = 10

num_2 = 20

num_3 = 30

mostra_numeros(numero_1=num_1, numero_2=num_3,
numero_3=num_2)

mostra_numeros(numero_1=5, numero_2=15, numero_3=35)

SAÍDA

Documentação de funções com Docstrings


Para realizar a documentação de uma função, é utilizado ''' '''. Todo o texto dentro
dessas aspas triplas será apresentado quando invocado a função help()

Exemplo ENTRADA

SAÍDA

Empowerdata © Todos os direitos reservados 35


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Exemplo ENTRADA

SAÍDA

*args
O *args é um parâmetro especial (pode ter qualquer nome, desde que tenha o
asterisco!) que nos permite passar vários argumentos para uma função. Os
argumentos são transformados em uma tupla.

O * é um operador de desempacotamento, introduzido na versão 2 da linguagem e


pode ser utilizado com qualquer objeto iterável.

Exemplo

ENTRADA

SAÍDA

**kwargs
O **kwargs é um parâmetro especial (pode ter qualquer nome, desde que tenha os
dois asteriscos) que nos permite passar vários argumentos para uma função. Os
argumentos são transformados em um dicionário.

Empowerdata © Todos os direitos reservados 36


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

O ** é um operador de desempacotamento, introduzido na versão 2 da linguagem e


só pode ser utilizado com dicionários.

Exemplo ENTRADA

SAÍDA

Exemplo ENTRADA def mostrar(**kwargs):

print(kwargs)

mostrar(nome='Vinicius', linguagem='python', status=True)

mostrar(nome='Vinicius', linguagem='python', status=True,


login='Empowerdata')

SAÍDA
{'nome': 'Vinicius', 'linguagem': 'python', 'status':
True}

{'nome': 'Vinicius', 'linguagem': 'python', 'status':
True, 'login': 'Empowerdata'}

Ordem correta dos parâmetros em uma função


A ordem correta dos parâmetros de uma função:

Exemplo

ENTRADA

Empowerdata © Todos os direitos reservados 37


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

SAÍDA

Objetos callable e passando funções como parâmetro


A função callable retorna True se o argumento for uma função 'chamável'.

Exemplo: a função sum() pode ser invocada em qualquer momento, list() também,
mas uma variável não, pois não é uma função.

Exemplo ENTRADA

SAÍDA

Exemplo ENTRADA

SAÍDA

Exemplo ENTRADA

SAÍDA

Empowerdata © Todos os direitos reservados 38


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Exemplo ENTRADA

SAÍDA

Comprehensions

Utilizar comprehensions é a forma mais concisa de gerar coleções em apenas uma


linha de código, podem conter testes lógicos e podem utilizar expressões lambdas.

Aplicações:

Maior facilidade de escrever código

Podem substituir loops, map() e filter() em muitas situações

Podem ser muito performáticos

Empowerdata © Todos os direitos reservados 39


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

list comprehensions
Exemplo ENTRADA

SAÍDA

Exemplo ENTRADA

SAÍDA

Exemplo ENTRADA

SAÍDA
['V', 'i', 'n', 'i', 'c', 'i', 'u', 's', ' ', 'R', 'o', 'c',
'h', 'a', ' ', 'L', 'i', 'm', 'a']

['VV', 'ii', 'nn', 'ii', 'cc', 'ii', 'uu', 'ss', ' ', 'RR',
'oo', 'cc', 'hh', 'aa', ' ', 'LL', 'ii', 'mm', 'aa']

Testes lógicos com comprehensions


Exemplo: pegar uma lista de 0 a 99, e separar os números pares em uma outra lista.

Empowerdata © Todos os direitos reservados 40


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Exemplo ENTRADA

SAÍDA
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30,
32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60,
62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90,
92, 94, 96, 98]

Exemplo ENTRADA

SAÍDA
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30,
32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60,
62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90,
92, 94, 96, 98]

Exemplo 2: pegar uma lista de 0 a 99, se for par, divide por 2, se ímpar, multiplica por 2.

Exemplo ENTRADA

SAÍDA
[0.0, 2, 1.0, 6, 2.0, 10, 3.0, 14, 4.0, 18, 5.0, 22, 6.0, 26,
7.0, 30, 8.0, 34, 9.0, 38, 10.0, 42, 11.0, 46, 12.0, 50,
13.0, 54, 14.0, 58, 15.0, 62, 16.0, 66, 17.0, 70, 18.0, 74,
19.0, 78, 20.0, 82, 21.0, 86, 22.0, 90, 23.0, 94, 24.0, 98,
25.0, 102, 26.0, 106, 27.0, 110, 28.0, 114, 29.0, 118, 30.0,
122, 31.0, 126, 32.0, 130, 33.0, 134, 34.0, 138, 35.0, 142,
36.0, 146, 37.0, 150, 38.0, 154, 39.0, 158, 40.0, 162, 41.0,
166, 42.0, 170, 43.0, 174, 44.0, 178, 45.0, 182, 46.0, 186,
47.0, 190, 48.0, 194, 49.0, 198]

Dict comprehensions

Empowerdata © Todos os direitos reservados 41


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

A ideia é similar ao mostrado anteriormente, mas agora não pode usar [] (pois criaria
uma lista), é necessário utilizar {}.

Exemplo

ENTRADA

SAÍDA
{'numero 0': 0, 'numero 1': 1, 'numero 2': 2, 'numero 3': 3, 'numero 4': 4,
'numero 5': 5, 'numero 6': 6, 'numero 7': 7, 'numero 8': 8, 'numero 9': 9, 'numero
10': 10, 'numero 11': 11, 'numero 12': 12, 'numero 13': 13, 'numero 14': 14,
'numero 15': 15, 'numero 16': 16, 'numero 17': 17, 'numero 18': 18, 'numero 19':
19}

Set comprehensions
Para criar um set utilizando comprehensions, é necessário utilizar o {}, e a estrutura é
igual ao mostrado para as listas.

Exemplo ENTRADA

SAÍDA

Exemplo ENTRADA nome = 'Vinicius'

letras = {letra for letra in nome}

print(letras)

# obs: o set não permite elementos repetidos, por isso é


mostrado somente um 'i'

SAÍDA

Iterators

Empowerdata © Todos os direitos reservados 42


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

São objetos 'iteradores', podem ser criados com a função iter(). Ao contrário de um
objeto range, iterators não retornam todos os elementos de uma só vez.

Por fim, eles utilizam a função next() para passarem para a próxima iteração.

Iterators são utilizados quando a memória é um ponto crítico.

Exemplo: é necessário um loop passar por 1 bilhão de números, se fosse criado uma
lista com range(1000000000), ia ser consumida muita memória. Com o iterator, a
memória consumida é quase zero.

Exemplo ENTRADA

SAÍDA

Exemplo ENTRADA

SAÍDA

Generator

É um objeto do tipo generator. Podem ser criados por funções geradoras, que
utilizam yield. Podem ser criados por expressões generadoras.

Utilizam a função next() para passar para a próxima iteração. Otimizam o consumo
de memória, porém, perdem performance em questão de velocidade.

Empowerdata © Todos os direitos reservados 43


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Exemplo

ENTRADA

SAÍDA

Expressões geradoras
Exemplo ENTRADA

SAÍDA

Exemplo ENTRADA contadores_pares = (numero for numero in range(100) if


numero % 2 == 0)

print(next(contadores_pares))

print(next(contadores_pares))

print(next(contadores_pares))

print(next(contadores_pares))

Empowerdata © Todos os direitos reservados 44


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

SAÍDA

Memória X Performance
Exemplo ENTRADA

SAÍDA

Exemplo ENTRADA

SAÍDA

Exemplo ENTRADA

SAÍDA
4 function calls in 0.095 seconds


Ordered by: standard name


ncalls tottime percall cumtime percall
filename:lineno(function)

1 0.001 0.001 0.095 0.095
<string>:1(<module>)

1 0.000 0.000 0.095 0.095 {built-in
method builtins.exec}

1 0.094 0.094 0.094 0.094 {built-in
method builtins.sum}

1 0.000 0.000 0.000 0.000 {method
'disable' of '_lsprof.Profiler' objects}

Empowerdata © Todos os direitos reservados 45


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Exemplo ENTRADA

SAÍDA
10000005 function calls in 1.746 seconds


Ordered by: standard name


ncalls tottime percall cumtime percall
filename:lineno(function)

10000001 0.889 0.000 0.889 0.000 <ipython-
input-28-70286d00e11b>:2(<genexpr>)

1 0.000 0.000 1.746 1.746
<string>:1(<module>)

1 0.000 0.000 1.746 1.746 {built-in
method builtins.exec}

1 0.857 0.857 1.746 1.746 {built-in
method builtins.sum}

1 0.000 0.000 0.000 0.000 {method
'disable' of '_lsprof.Profiler' objects}

Funções lambda

Funções lambda são criadas em apenas uma linha de código. São simples, curtas e
descartáveis. Também são conhecidas como expressões lambda e funções
anônimas.

Exemplo ENTRADA

SAÍDA

Exemplo ENTRADA

SAÍDA

Função map()

Empowerdata © Todos os direitos reservados 46


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

A função map() é built-in, retorna um objeto map, e recebe como parâmetros uma
função e um ou mais objetos iteráveis. Aplica a função em cada elemento do objeto
iterável.

Exemplo ENTRADA

SAÍDA

Exemplo ENTRADA

SAÍDA

Exemplo ENTRADA

SAÍDA

Exemplo ENTRADA # transformar os elementos da lista em inteiro e elevar ao


cubo

lista_int_3 = list(map(lambda x:int(x)**3, lista))

print(lista_int_3)

SAÍDA

Função filter()
A função filter() é uma função built-in e retorna um objeto filter. Recebe como
parâmetro uma função e um objeto iterável.

Filtra a lista aplicando a função em cada elemento, retornando apenas os que foram
True.

Empowerdata © Todos os direitos reservados 47


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Exemplo ENTRADA

SAÍDA
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
92, 93, 94, 95, 96, 97, 98, 99]

Exemplo ENTRADA

SAÍDA
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30,
32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60,
62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90,
92, 94, 96, 98]

Exemplo ENTRADA
from statistics import mean

# calcular a média, é importado da biblitoeca de


estatísticas

media = round(mean(notas),1)

print(media)

SAÍDA

Exemplo ENTRADA # filtrar as notas igual ou acima da média

notas_acima_media = list(filter(lambda nota: nota >=


media, notas))

print(notas_acima_media)

SAÍDA

Função reduce()
A função reduce() é importada do módulo functools. Ela recebe como argumento
uma função e um objeto iterável, e retorna um valor. Aplica a função sobre os
elementos de forma acumulativa.

Empowerdata © Todos os direitos reservados 48


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Exemplo

ENTRADA

SAÍDA

Função sort()
A função sort() é utilizada para ordenar elementos. Ela modifica o objeto original, e
possui um parâmetro opcional chamado key.

Exemplo ENTRADA pessoas = [('Vinicius',40), ('Ana',30), ('Gabriel',23),


('Lucas',30)]

print(pessoas)

SAÍDA
[('Vinicius', 40), ('Ana', 30), ('Gabriel', 23), ('Lucas',
30)]

Exemplo ENTRADA

SAÍDA
[('Ana', 30), ('Gabriel', 23), ('Lucas', 30), ('Vinicius',
40)]

Exemplo ENTRADA

SAÍDA
[('Gabriel', 23), ('Ana', 30), ('Lucas', 30), ('Vinicius',
40)]

Empowerdata © Todos os direitos reservados 49


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Tratamento de erros

Tipos de erros
Principais tipos de erros:

Erros de sintaxe (SyntaxError, ParsingError)


Exceções (Exceptions):
NameErro
ValueErro
IndexErro
KeyErro
ZeroDivisionErro
Entre outros...
Erros de lógica

Sintaxe
Exemplo

ENTRADA

SAÍDA

Procurar erro no Stack Overflow: Clique aqui para acessar

Exemplo

ENTRADA

Empowerdata © Todos os direitos reservados 50


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

SAÍDA

Procurar erro no Stack Overflow: Clique aqui para acessar

Exceções
Exemplo

ENTRADA

SAÍDA

Procurar erro no Stack Overflow: Clique aqui para acessar

Exemplo

ENTRADA

SAÍDA

Procurar erro no Stack Overflow: Clique aqui para acessar

Empowerdata © Todos os direitos reservados 51


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Exemplo

ENTRADA

SAÍDA

Procurar erro no Stack Overflow: Clique aqui para acessar

Exemplo

ENTRADA

SAÍDA

Procurar erro no Stack Overflow: Clique aqui para acessar

Exemplo

ENTRADA

SAÍDA

Empowerdata © Todos os direitos reservados 52


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Procurar erro no Stack Overflow: Clique aqui para acessar

Lógica
Exemplo

ENTRADA

SAÍDA

Tratando erros com try... except

Estrutura
Os blocos try... except são utilizados para tratar erros, e evitar que o programa pare
de ser executado por algum erro de exceção.

Exemplo

ENTRADA

Empowerdata © Todos os direitos reservados 53


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

SAÍDA

Capturando erros
É possível tratar os erros diretamente pelos excepts, tanto de maneira específica,
como geral.

Exemplo ENTRADA # pegando erros específicos nos excepts

lista = [1,2,0,5,0,'a']

for num in lista:

try:

print(f'Dividindo 5 por {num}: {5/num}')

except ZeroDivisionError:

print(f'ZeroDivisionError - Falhou a divisão de 5 por {num}!')

except TypeError:

print(f'TypeError - Falhou a divisão de 5 por {num}!')

print('\n')

SAÍDA

Continuação da saída na página seguinte.

Empowerdata © Todos os direitos reservados 54


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

SAÍDA

Exemplo ENTRADA

SAÍDA
Dividindo 5 por 1: 5.0

Dividindo 5 por 2: 2.5

Ocorreu o erro: division by zero

Dividindo 5 por 5: 1.0

Ocorreu o erro: division by zero

Ocorreu o erro: unsupported operand type(s) for /: 'int' and
'str'

Personalizando exceções
Exemplo

ENTRADA

SAÍDA

Empowerdata © Todos os direitos reservados 55


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Procurar erro no Stack Overflow: Clique aqui para acessar

Trabalhando com data e hora

Módulo datetime
O python possui um módulo nativo para datas e horas, chamado datetime. Com ele,
é possível criar:

Objetos de data
Objetos de data e hora
Realizar cálculos entre datas e horas
Configurar timezone (fuso horário)

Entre outros...

Classe datetime.date
Exemplo ENTRADA

SAÍDA

Exemplo ENTRADA

SAÍDA

Empowerdata © Todos os direitos reservados 56


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Classe datetime.datetime
Exemplo ENTRADA import datetime

data_hora = datetime.datetime(year=2022, month=6, day=29,


hour=19, minute=59, second=1)

print(data_hora)

print(type(data_hora))

print(data_hora.hour)

SAÍDA

Exemplo ENTRADA data_hora = datetime.datetime(year=2022, month=6, day=29,


hour=19, minute=59, second=1)

print(f'A data é: {data_hora.date()}')

print(f'A hora é: {data_hora.time()}')

SAÍDA

Exemplo ENTRADA ''' weekday() retorna o número do dia na semana:

0 - segunda

1 - terça

2 - quarta

3 - quinta

4 - sexta

5 - sábado

6 - domingo

'''

data_hora = datetime.datetime(year=2022, month=6, day=29,


hour=19, minute=59, second=1)

print(f'O dia da semana é: {data_hora.weekday()}')

SAÍDA

Timezone
Exemplo ENTRADA

Empowerdata © Todos os direitos reservados 57


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

SAÍDA

Exemplo ENTRADA print(f'Timezone da Inglaterra:


{datetime.datetime.now().astimezone()}')

print(f'Timezone de São Paulo:


{datetime.datetime.now().astimezone(timezone)}')

SAÍDA

Cálculos com datas e horas


Exemplo ENTRADA

SAÍDA

Exemplo ENTRADA

SAÍDA

Empowerdata © Todos os direitos reservados 57


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Conversão entre datas e strings


Exemplo ENTRADA # string para datetime

import datetime

data_str = "15/06/2022"

data_date = datetime.datetime.strptime(data_str, "%d/%m/%Y")

print(f'Data str: {data_str} - formato: {type(data_str)}')

print(f'Data datetime: {data_date} - formato:


{type(data_date)}')

SAÍDA
Data str: 15/06/2022 - formato: <class 'str'>

Data datetime: 2022-06-15 00:00:00 - formato: <class
'datetime.datetime'>

Exemplo ENTRADA # datetime para string

import datetime

data_date = datetime.datetime(2022,6,25)

data_str = data_date.strftime("%d-%m-%y")

print(f'Data datetime: {data_date} - formato:


{type(data_date)}')

print(f'Data str: {data_str} - formato: {type(data_str)}')

SAÍDA
Data datetime: 2022-06-25 00:00:00 - formato: <class
'datetime.datetime'>

Data str: 25-06-22 - formato: <class 'str'>

Exercício

Crie uma função que recebe um datetime, e retorna o dia da semana como texto, e
não como número.

Exemplo ENTRADA

Continuação da entrada na página seguinte.

Empowerdata © Todos os direitos reservados 58


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

ENTRADA 3 :'quinta',

4 :'sexta',

5 :'sábado',

6 :'domingo'

return dias[dia]

data_hora = datetime.datetime(year=2022, month=6, day=29,


hour=19, minute=59, second=1)

print(f'O dia da semana para a data {data_hora.date()} é:


{dia_semana(data_hora)}!')

SAÍDA
O dia da semana para a data 2022-06-29 é: quarta!

Exemplo ENTRADA # solução com strftime

import datetime

import locale

def dia_semana(data):

return data.strftime('%A')

data_hora = datetime.datetime(year=2022, month=6, day=29,


hour=19, minute=59, second=1)

print(f'O dia da semana para a data {data_hora.date()} é:


{dia_semana(data_hora)}!')

SAÍDA

Mani p lu and o arquiv o s

Lendo arquivos txt

Para o python ler uma arquivo txt, é utilizado a função open(). Podemos especificar

o modo de abertura:
read - leitura ou write - escrita

É possível escolher o encoding, e se o arquivo não existir, temos a exceção do tipo

FileNotFoundError.

É necessário fechar o arquivo quando não for mais utilizado com a função close(),

pois consome recurso. Podemos utilizar o with para facilitar a leitura do arquivo txt.

Empowerdata © Todos os direitos reservados 59


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Função open()
Exemplo ENTRADA

SAÍDA
<class '_io.TextIOWrapper'>

<_io.TextIOWrapper name='arquivo_teste.txt' mode='r'
encoding='UTF-8'>

Exemplo ENTRADA

SAÍDA

Função read()
Exemplo ENTRADA

SAÍDA

Exemplo ENTRADA

SAÍDA

Empowerdata © Todos os direitos reservados 60


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Função readlines()

Exemplo

ENTRADA

SAÍDA

Função readlines()
Exemplo

ENTRADA

SAÍDA
['Eu estou aprendendo a programar em Python\n', 'Eu estou estudando na Empowerdata.
\n', 'Estamos no curso Dominando a Linguagem Python']

<class 'list'>

Função seek()
Exemplo ENTRADA

Empowerdata © Todos os direitos reservados 61


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

SAÍDA

Exemplo ENTRADA

SAÍDA

Utilizando o bloco with


Exemplo

ENTRADA

SAÍDA

Empowerdata © Todos os direitos reservados 62


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Escrevendo em um arquivo txt


Para criar um arquivo, é utilizado a função open(). Para criar um arquivo, o
parâmetro mode tem que ser 'w'. Caso seja desejado atualizar o arquivo, o mode
deve ser 'a'.
A diferença entre 'w' e 'a', é que o 'w' cria um arquivo e escreve, se o arquivo tiver
algum conteúdo, ele será apagado. Já o 'a', é como um append, ele acrescenta texto
no arquivo txt.
É necessário fechar o arquivo com close(), mas podemo utilizar o bloco with.

Exemplo

ENTRADA

SAÍDA

Função write()

Função writelines()

Empowerdata © Todos os direitos reservados 63


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Utilizando o bloco with


Exemplo
ENTRADA

SAÍDA

Manipulando arquivos CSV

CSV - Comma Separated Values ( valores separados por vírgula).

Exemplo ENTRADA

SAÍDA

Exemplo ENTRADA

Empowerdata © Todos os direitos reservados 64


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

SAÍDA

Manipulando arquivos JSON

JSON - JavaScript Object Notation

É o formato padrão para troca de mensagens entre sistemas web. Muito utilizados
em bancos de dados não relacionais. Podemos utilizar o módulo JSON para
trabalhar com esse tipo de arquivo.

Exemplo ENTRADA

SAÍDA

Exemplo ENTRADA

SAÍDA

Empowerdata © Todos os direitos reservados 65


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Biblioteca pandas

A biblioteca pandas é muito popular na área de tratamento e análise de dados.

Consegue trabalhar com diversos formatos de arquivos (CSV, JSON, XLSX...).

Exemplo ENTRADA file = pd.read_csv('arquivo_csv.csv', delimiter=';',


header=None)

print(file)

SAÍDA

Exemplo ENTRADA

SAÍDA

Programação Orientada a Objetos

Introdução
Programação Orientada a Objetos é um paradigma de programação. É uma forma
de programar. Outros tipos comuns são:

Procedural/Estruturada
Orientada a Objetos
Funcional

Empowerdata © Todos os direitos reservados 66


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

A POO possui 4 pilares:


Abstração: pegar coisas do mundo real e trazer para a programação.

Encapsulamento: esconder do usuário final, toda a complexidade de alguma ação.

Polimorfismo: diferentes classe que herdam de uma classe maior, e possuem


propriedades diferentes.

A POO é programada com classes, e as classes possuem atributos e métodos.

Objetos são instanciados a partir de uma Classe, e podemos ter vários objetos de uma
mesma classe.

Entendendo classes e objetos

Para entender a diferença entre um objeto e uma classe, é muito simples!

Vamos utilizar o exemplo do Lápis. Lápis é uma classe, todo lápis possui atributos, e
métodos:

Atributos: tamanho do lápis, cor do grafite, cor da madeira


Método: desenhar, ser apontado

Você pode perceber que atributos são características, e métodos são verbos com
ações. No cenário anterior, não existe um objeto lápis, só foram apresentados os
conceitos gerais de um lápis.

Agora, se você dizer que o lápis tem 10cm, cor azul, e a cor da madeira é bege, você
tem um objeto lápis. Veja que todos os atributos do lápis foram preenchidos, e as
ações/métodos só serão realizadas quando o usuário desejar.

Você pode ter outro lápis, com 5cm, cor preta, e a cor da madeira é marrom escura.
Você tem um segundo objeto, e as ações serão ligeiramente diferentes do outro lápis!

Empowerdata © Todos os direitos reservados 67


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Exemplo
ENTRADA class Lapis:

# a classe __init__ é padrão para criar uma classe, ela é chamada quando a

# classe é criada. O self indica que os parâmetros da própria classe estão

# disponíveis para o método.

def __init__(self, tamanho, cor_do_grafite, cor_da_madeira):

self.tamanho = tamanho

self.cor_do_grafite = cor_do_grafite

self.cor_da_madeira = cor_da_madeira

def escrever(self):

print(f'Você está escrevendo com a cor {self.cor_do_grafite}')

def ser_apontado(self, qtd):

self.tamanho -= qtd

print(f'O lápis foi apontado em {qtd} cm, agora ele tem um tamanho de
{self.tamanho} cm')

lapis_marrom = Lapis(10,'marrom', 'marrom escuro')

lapis_azul = Lapis(10,'azul', 'marrom escuro')

lapis_marrom.escrever()

lapis_marrom.ser_apontado(4)

print('\n')

lapis_azul.escrever()

lapis_azul.ser_apontado(1)

SAÍDA

Criando métodos

Exemplo

ENTRADA

Empowerdata © Todos os direitos reservados 70


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

SAÍDA

Exercício

Criar um jogo de corrida utilizando Orientação a Objeto.

Exemplo

ENTRADA

SAÍDA

Ambientes virtuais

Nova seção
Ambientes virtuais são úteis para não modificar a instalação padrão do python, e
deixar o ambiente voltado para o desenvolvimento do projeto.

Empowerdata © Todos os direitos reservados 71


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
APOSTILA COMPLETA - DEGRAU 2 DOMINANDO A LINGUAGEM PYTHON

Exemplo: o pacote Anaconta, instala diversas bibliotecas úteis em diversos projetos.


Se você desenvolver um projeto web, será necessário instalar algumas outras, como
Django, Flask, FastAPI, etc. E se você desenvolver projetos para ler PDF, será
necessário instalar PyDF.

Para essas instalações não ficarem no mesmo ambiente padrão do Anaconda, você
pode instalar em um ambiente virtual.

Empowerdata © Todos os direitos reservados 72


Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73
FORMAÇÃO EXPERT EM PYTHON

ACOMPANHE MAIS CONTEÚDOS EM


Instagram @empowerdata

Instagram @empowerpython

Canal no Youtube

Camila Ferreira Dias - ca.dias1706@gmail.com - CPF: 371.926.818-73

Você também pode gostar