0% acharam este documento útil (0 voto)
27 visualizações

Workshop Python

O documento apresenta uma introdução ao Python, abordando tópicos como instalação, variáveis, tipos de dados, operadores, condicionais, laços, funções, módulos, classes e estruturas de dados.

Enviado por

Joismar Braga
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
27 visualizações

Workshop Python

O documento apresenta uma introdução ao Python, abordando tópicos como instalação, variáveis, tipos de dados, operadores, condicionais, laços, funções, módulos, classes e estruturas de dados.

Enviado por

Joismar Braga
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 28

Workshop Python

Pt 1 - Introdução ao Python
O que veremos?
Introdução ao Python
Instalando Python;
Entendendo o Python e o Interpretador (REPL);
Variáveis, tipos de dados e operadores lógicos e matemáticos;
Entrada e saída;
Condicionais (if, elif e else);
Laços (while e for);
Funções e Métodos;
Estruturas de dados (lista, dicionário, tupla, set);
Classes;
Tratamento de erros e exceções;
Conhecendo o Jupyter Lab.
Instalando Python 3.7 no Windows
Download
https://www.python.org/downloads/release/python-379/
Instalando Python 3.7 no Windows
Install
Certifique-se de marcar “Add Python 3.7 to PATH”, caso queira mudar o local de instalação
clique em “Customize installation”.

Após instalado, vá ao CMD e


digite python para iniciar o
interpretador.
Entendendo o Python
Python é uma linguagem de programação de alto nível, interpretada de script,
imperativa, orientada a objetos, funcional, de tipagem dinâmica e forte. Foi
lançada pelo holandês Guido van Rossum em 1991. Atualmente, possui um
modelo de desenvolvimento comunitário, aberto e gerenciado pela organização
sem fins lucrativos Python Software Foundation.
Entendendo o Interpretador (REPL)
Quando baixamos um Python, ele vem com uma pequena IDE chamada IDLE, mas
não vamos usar ela.
O REPL, ou read-eval-print loop, Loop de leitura, avaliação e impressão, é um shell
interativo que diversas linguagens tem, com ela podemos testar comandos básicos
da linguagem.
Usaremos a IDE online repl.it para testar nossos códigos em tempo real e
compartilhado.
Variáveis
# Variable Types
#
name = 'Cabeça' + " de" # str
surname = name + '''Plástico''' # str
age = 42 # int
star = 4.2234 # float
isAdmin = True # bool

print(type(name))
print(type(surname))
print(type(age))
print(type(star))
print(type(isAdmin))
Métodos <str>
# String Methods
#
print('{0} tem {1} anos de idade.'.format(name, age))
print('{} tem {} anos de idade.'.format(name, age))
print('{name} tem {age} anos de idade.'.format(name=name, age=age))
print(f'{name} tem {age} anos de idade.')

# Definir a precisão de um decimal


print('{0:.2f}'.format(star)) # Retorna 4.22

# Preencher texto com underlines


print('{0:_^11}'.format('hello')) # Retorna ‘____hello____’

# Quebra de linha e "\"


print('''
Isso é um texto com
quebra de linha.
''')
print('Isso tbm é um texto \ncom quebra de linha.\n')
Operadores lógicos e matemáticos
# Operadores Matemáticos # Operadores Lógicos
# #
print(2 + 2) # Retorna 4 print(5 < 3) # Retorna False
print(2 - 2) # Retorna 0 print(5 > 3) # Retorna True
print(2 * 2) # Retorna 4 print(5 <= 3) # Retorna False
print(2 ** 3) # Retorna 8 print(3 >= 3) # Retorna True
print(10 / 3) # Retorna 3,333... print(5 == 3) # Retorna False
print(10 // 3) # Retorna 3 print(True and False) # Retorna Falso
print(10 % 3) # Retorna 1 print(True or False) # Retorna True
print(not True) # Retorna False
Condicionais
if True: print(False) OUTPUT 1

numero = 23 False
resposta = int(input('Insira um numero inteiro: ')) Insira um numero inteiro: 25
Errado, o número é menor.
# Inicio do bloco IF Concluído.
if resposta == numero:
print('Parabéns, você acertou!') OUTPUT 2
elif resposta > numero:
print('Errado, o número é menor.') False
else: Insira um numero inteiro: 23
print('Errado, o número é maior.') Parabéns, você acertou!
# Fim do bloco IF Concluído.

print('Concluído.')
Laço while
numero = 23 OUTPUT
rodando = True

Insira um numero inteiro: 26


while rodando:
resposta = int(input('Insira um numero inteiro: ')) Errado, o número é menor.
# Inicio do bloco IF Insira um numero inteiro: 24
if resposta == numero:
Errado, o número é menor.
print('Parabéns, você acertou!')
rodando = False Insira um numero inteiro: 23
elif resposta > numero: Parabéns, você acertou!
print('Errado, o número é menor.') O loop terminou.
else:
Concluído.
print('Errado, o número é maior.')
# Fim do bloco IF

else:
print('O loop terminou.')

print('Concluído.')
Laço for continue
for i in range(1, 5): while True:
print(i) s = input('Escreva algo: ')
else: if s == 'quit':
print('O laço abacou.') break # Sai do laço
if len(s) < 3:
print('Muito pequeno.')
continue # Pula para próxima iteração
break print('Entrada maior que 3.')
# Faça outras coisas aqui...
while True:
s = input('Digite algo: ')
if s == 'quit':
break # Sai do laço
print('O tamanho da string é ', len(s))
print('Feito!')
Funções
# Funções # Recebe 2 valores e mostra se são iguais ou quem é
# o maior e que é o menor.
def diga_ola(nome): #
print(f'Olá, {nome}') def max_min(a, b):
if a == b:
def salva_arquivo(path='C:\\temp'): print(a, 'é igual a', b)
try: elif a > b:
# Salvar arquivo... print(a, 'é maior')
print(f'Arquivo salvo com sucesso em {path}') print(b, 'é menor')
return True else:
except: print(b, 'é maior')
# Recuperar erro... print(a, 'é menor')
print('Erro ao salvar o arquivo.')
return False max_min(3, 3) # Retorna ‘3 é igual a 3’
Escopo local Escopo global
# Escopo local # Escopo global
x = 50 x = 50

def func(x): def func():


print('x é', x) global x
x = 2
print('Variável local x é', x) print('x é', x)
x = 2
func(x) print('Alterando variável global x para', x)
print('x ainda é', x)
func()
print('Valor de x é', x)
Parâmetros varArgs
# * cria uma lista de argumentos func(10, 1, 2, 3, Jack=1123, John=2231, Inge=1560)
# ** cria uma lista de argumentos com chave
def func(primeiro_numero=5, *numeros, **agenda): OUTPUT
print('primeiro_numero:', primeiro_numero)
primeiro_numero: 10
# itera sobre itens de uma tupla ou lista numero: 1
for numero in numeros: numero: 2
print('numero:', numero) numero: 3
Jack 1123
# itera sobre itens de um dicionario John 2231
for nome, numero in agenda.items(): Inge 1560
print(nome, numero)
Módulos
# Módulo modulo.py ~/Workshop-Python$ python modulo.py arg1 arg2
Os argumentos da linha de comando foram:
import sys
modulo.py
arg1
__version__ = '0.1' arg2

A PYTHOPATH é [...paths]
print('Os argumentos da linha de comando foram:')
for i in sys.argv: O módulo está rodando por ele mesmo.
print(i)

# Módulo main.py
print('\n\nA PYTHOPATH é', sys.path, '\n') import modulo

if __name__ == '__main__': # Retorna:


# Os argumentos da linha de comando foram:
print('O módulo está rodando por ele mesmo.') # main.py
else: #
print('O módulo foi importado de outro módulo.') # A PYTHOPATH é [...paths]
#
# O módulo foi importado de outro módulo.
Estruturas de Dados <list>
# Lista de compras # Ordenando a lista
# lista.sort()
lista = ['maçã', 'manga', 'cenoura', 'banana'] print('Lista ordenada:', lista)

# Acessando valores por índices


print('Você tem', len(lista), 'items para print('Primeiro valor da lista:', lista[0])
comprar.') item_comprado = lista[0]

print('Esses items são:', end=' ') # Removendo valor da lista


del lista[0]
for item in lista:
print('Eu comprei', item_comprado)
print(item, end=' ')
print('Lista:', lista)

# Eu tbm preciso comprar arroz # Ou simplesmente removendo e atribuindo


lista.append('arroz') item_comprado = lista.pop(0)
print('Minha lista de compras agora é:', lista) print('Eu comprei', item_comprado)
print('Lista:', lista)
Estruturas de Dados <tuple>
# A tupla se comporta muito semelhante a lista, porém ela é imutável
zoo = ('python', 'elephant', 'penguin')

print('O número de animais é', len(zoo))

print('O segundo animal do zoo é', zoo[1])

# Tuplas também podem ser definidas sem os parênteses


zoo = 'python', 'elephant', 'penguin'
Estruturas de Dados <dict>
# Dicionário de contatos # Iterando sobre um dicionário
for nome, email in contatos.items():
contatos = { print('Contato {} em {}'.format(nome, email))
'jois': 'joismar.braga@parvi.com.br',
'vini': 'vinicius.silva@parvi.com.br', # Adicionando um par de chave:valor
'eli': 'eliezer.junior@parvi.com.br',
contatos['gui'] = 'guido@python.org'
'alan': 'alan.marinho@parvi.com.br'
}
# Verificando se há uma chave no dicionário
if 'gui' in contatos:
print("O email de Alan é", contatos['alan'])
print("\nO email de Guido é", contatos['gui'])
# Deletando um par de chave:valor
del contatos['vini']

print('\nVocê tem {} contatos na sua lista de


contatos\n'.format(len(contatos)))
Estruturas de Dados <set>
# Set de paises OUTPUT
#
paises = set(['brazil', 'russia', 'india']) False
True
# Faz uma copia de paises e atribui a outra variável
{'india', 'brazil'}
paises_copia = paises.copy()
{'india', 'brazil'}
# Verifica se tem USA em paises
print('usa' in paises) # Retorna False

# Adiciona china no novo set


paises_copia.add('china')

# Verifica se paises está contido em paises_copia


print(paises_copia.issuperset(paises)) # Retorna True

# Remove russia
paises.remove('russia')

print(paises & paises_copia) # Retorna {'brazil', 'india'}


print(paises.intersection(paises_copia)) # Retorna {'brazil', 'india'}
Indexação
shoplist = ['apple', 'mango', 'carrot', 'banana'] # Partindo uma lista
name = 'swaroop' print('Itens de 1 até 3 são', shoplist[1:3])
print('Itens de 2 até o fim são', shoplist[2:])
# Indexando com subscrição [] print('Itens de 1 até -1 são', shoplist[1:-1])
print('Item 0 é', shoplist[0]) print('Itens de começo até fim são', shoplist[:])
print('Item 1 é', shoplist[1])
print('Item 2 é', shoplist[2]) # Partindo uma string
print('Item 3 é', shoplist[3]) print('Letras de 1 até 3 são', name[1:3])
print('Item -1 é', shoplist[-1]) print('Letras de 2 até fim são', name[2:])
print('Item -2 é', shoplist[-2]) print('Letras de 1 até -1 são', name[1:-1])
print('Letra 0 é', name[0]) print('Letras de começo até fim', name[:])
Classes
Programação Orientada a Objetos
Estruturada Orientada a Objetos
def captura_dados(busca, pagina, browser): class Bot:
'''Recebe uma string de busca e uma página retorna os dados def __init__(self, url, busca, paginas):
''' self.url = url
self.busca = busca
pass
self.paginas = paginas
self.dados = None
def inicia_bot(url, busca, paginas, browser): self.__browser = cria_browser()
'''Acessa a URL e itera sobre as paginas retorna os dados self.inicia_bot()
iterados
def inicia_bot(self):
'''
for pagina in range(self.paginas):
dados = []
self.dados = self.__captura_dados(pagina)
for pagina in range(paginas):
dados.append(captura_dados(busca, pagina, browser)) def __captura_dados(self, pagina):
pass
url = 'https://www.kabum.com.br/'
if __name__ == '__main__':
busca = 'teclado gamer'
bot = Bot('https://www.kabum.com.br/', 'teclado gamer',
paginas = 5
paginas=5
)
browser = cria_browser() bot.inicia_bot()
inicia_bot(url, busca, paginas, browser) dados = bot.dados
Classes - Só o básico
# Classe Person # __init__ method
class Person:
class Person:
pass population = 0 # Variável de Classe

def __init__(self, name):


# Método de objeto inicializado self.name = name # Variável de Objeto
Person.population += 1
class Person:
def say_hi(self): @classmethod
def how_many(cls):
print('Hello, how are you?') print(Person.population)

p = Person('Jão') \ p2 = Person('Zé')
p = Person()
p.say_hi() p.name # Retorna "Jão" \ p2.name # Retorna "Zé"

Person.how_many() # Printa 2
POO - 4 Pilares
# ABSTRAÇÃO # ENCAPSULAMENTO

➤ Identidade; ➤ Propriedades privadas;

➤ Propriedades; ➤ getters e setters;

➤ Métodos. ➤ Segurança.

# HERANÇA # POLIMORFISMO

➤ Reuso; ➤ Mesmo tipo de objeto, propriedades e


➤ Classe atômica. métodos distintos;
Classes - Exemplos
# ABSTRAÇÃO # ENCAPSULAMENTO

class Bot: class Bot:


# O nome da classe deve ser único e deve refletir com def __init__(self, url, busca, paginas):
coerência o seu propósito self.url = url
def __init__(self, url, busca, paginas):
self.busca = busca
self.url = url # atributo/propriedade
self.paginas = paginas
self.busca = busca # atributo/propriedade
self.paginas = paginas # atributo/propriedade self.dados = None # atributo público
self.dados = None # atributo/propriedade self.__browser = cria_browser() # atributo privado
self.__browser = cria_browser() self.inicia_bot()
self.inicia_bot()
def inicia_bot(self): # método público
def inicia_bot(self): # método for pagina in range(self.paginas):
for pagina in range(self.paginas): self.dados = self.__captura_dados(pagina)
self.dados = self.__captura_dados(pagina)
def __captura_dados(self, pagina): # método privado
def __captura_dados(self, pagina): # método
pass
pass
Classes - Exemplos
# HERANÇA e POLIMORFISMO class BotPrecos(Bot):
def __init__(self, url, paginas, busca):
class BotWeb: Bot.__init__(self, url, paginas)
def __init__(self, url, paginas): self.busca = busca
self.dados = None
self.url = url def captura_dados(self):
# faz captura de dados específica
self.paginas = paginas

class BotTelefone(Bot):
def inicia_bot(self): def __init__(self, url, paginas):
self.dados = self.captura_dados() Bot.__init__(self, url, paginas)

def captura_dados(self):
# faz captura de dados específica
Por hoje é só...
Obrigado!

Você também pode gostar

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy