SlideShare uma empresa Scribd logo
Apresentação da Linguagem Python com foco em
Orientação a Objetos
Sob licença CC-BY-NC-ND
PyLadies é um grupo internacional de
mentoria com foco em ajudar mais
mulheres a tornarem-se participantes
ativas e líderes da comunidade Python.
#souPyLadiesSP
O QUE É PYLADIES?
2
O QUE É E ONDE SE USA PYTHON
Python é uma linguagem de programação
com código aberto, de alto nível, tipicamente
usada para aplicações web ou linguagens de
scripts para administração de sistemas.
3
• Big Data
• Machine learning
• Processamento de textos
• Tratamento e reconhecimento de imagens
• Animações 3D
O QUE É E ONDE SE USA PYTHON
• Aplicações web, desktop e mobile
• Cálculos científicos
• Computação gráfica
• Automação de sistema
• Mineração de dados
4
Foi criada em 1989
por Guido Van Rossum
O QUE É E ONDE SE USA PYTHON
O nome Python
foi inspirado no
seriado britânico
Monty Python
5
O QUE É E ONDE SE USA PYTHON
EXEMPLOS DE UTILIZAÇÃO
6
O QUE É E ONDE SE USA PYTHON
EXEMPLOS DE UTILIZAÇÃO
7
POR QUE PYTHON?
Exemplo do mesmo programa em várias linguagens:
Fonte: https://pythonhelp.wordpress.com/por-que-python/ 8
"Simples é melhor
que complexo"
(Tim Peters)
POR QUE PYTHON?
9
PROGRAMANDO EM PYTHON
ESCREVER NO TERMINAL
A linha de comando é indicada pelas setas >>>
É nela que você deve dar os comandos.
Sua primeira tarefa é executar um print, o comando
para imprimir uma mensagem na tela.
O resultado da execução, deve sair logo abaixo, dessa forma:
>>> print('Hello!')
Hello!
10
• Sintaxe:
<nome da variável> = <valor que quero armazenar>
• Exemplo:
comida = 'hamburguer'
preço = 8.7
vegetariano = True
ingredientes = ['alface', 'tomate', 'lentilha', 'soja',
'cebola', 'queijo', 'pão']
PROGRAMANDO EM PYTHON
VARIÁVEIS
11
>>> comida = 'hamburguer'
>>> type(comida)
<class 'str'>
>>> preço = 8.7
>>> type(nota)
<class 'float'>
vegetariano = True
>>> type(vegetariano)
<class 'bool'>
PROGRAMANDO EM PYTHON
VARIÁVEIS
12
ingredientes = ['alface', 'tomate',
'lentilha', 'soja', 'cebola', 'queijo',
'pão']
>>> type(ingredientes)
<class 'list'>
dados = {
'produto': comida,
'preço': preço,
'composição': ingredientes,
}
>>> type(dados)
<class 'dict'>
PROGRAMANDO EM PYTHON
VARIÁVEIS
13
ingredientes = ['alface', 'tomate', 'lentilha', 'soja', 'cebola',
'queijo', 'pão']
>>> type(ingredientes)
<class 'list'>
ingredientes = ('alface', 'tomate', 'lentilha', 'soja', 'cebola',
'queijo', 'pão')
>>> type(ingredientes)
<class 'tuple'>
Imutável (constante)
mutável
Em Python, podemos modificar os tipos de uma variável ao
longo do programa, por isso chamamos Python
de uma linguagem dinamicamente tipada.
a = 'banana'
a = 10
Podemos modificar o tipo de variável ou criar uma variável de outro tipo, usando seus
"tipos" como comandos, desde que compatíveis:
int( )
float( )
str( )
tuple( )
dict( )
list( )
PROGRAMANDO EM PYTHON
VARIÁVEIS
14
>>> a = 2
>>> type(a)
<class 'int'>
>>> b = float(a)
>>> type(b)
<class 'float'>
>>> b
2.0
>>> c = str(a)
>>> c
'2'
>>> d = int(c)
>>> d
2
>>> type(d)
<class 'int'>
• Exemplos:
PROGRAMANDO EM PYTHON
VARIÁVEIS
15
>>> letras = list('hamburguer')
>>> letras
['h', 'a', 'm', 'b', 'u', 'r', 'g', 'u', 'e', 'r']
>>> type(letras)
<class 'list'>
Podemos fazer operações em Python.
Tanto numéricas, quanto lógicas.
• Operadores numéricos básicos:
PROGRAMANDO EM PYTHON
OPERADORES
Adição: +
Subtração: -
Divisão: /
Multiplicação: *
Potenciação: **
Resto de uma divisão: %
16
Lembre-se do
PEMDAS
Parênteses
Expoentes
Multiplicação
Divisão
Adição
Subtração
• Operadores lógicos ou relacionais: servem para fazer perguntas que possam ser
respondidas com True ou False (verdadeiro/falso)
Maior que: >
Menor que: <
Maior ou igual a: >=
Menor ou igual a: <=
Idêntico: ==
Diferente de: !=
Não: not
E: and (todas as condições precisam ser satisfeitas)
Ou: or (apenas uma das condições precisa ser satisfeita)
PROGRAMANDO EM PYTHON
OPERADORES
17
PROGRAMANDO EM PYTHON
OPERADORES
>>> a = 2
>>> b = 3
>>> c = 3 / 2
>>> c
1.5
>>> c = 3 // 2
>>> c
1
>>> a > b
False
>>> b > a
True
>>> a == b
False
• Exemplos:
18
>>> 'a' + 'b'
'ab'
>>> 'PyLadies ' + 'São Paulo'
'PyLadies São Paulo'
>>> nome = 'Penny...'
>>> print(nome * 5)
>>> 'Penny...Penny...Penny...Penny...Penny...'
PROGRAMANDO EM PYTHON
OPERAÇÕES COM STRINGS
19
• Comando dir: lista os métodos de um objeto
• Sintaxe:
dir(<objeto>)
• Exemplo:
>>> dir(5)
PROGRAMANDO EM PYTHON
20
EM PYTHON, TUDO É OBJETO
EM PYTHON, TUDO É OBJETO
>>> dir(5)
['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__',
'__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__',
'__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__',
'__getnewargs__', '__gt__', '__hash__', '__index__', '__init__',
'__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__',
'__mul__', '__ne__', '__neg__', '__new__', '__or__', '__pos__', '__pow__',
'__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__',
'__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__',
'__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__',
'__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__',
'__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__',
'__xor__', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag',
'numerator', 'real', 'to_bytes']
PROGRAMANDO EM PYTHON
21
>>> 5 + 3
8
# Métodos com __ (dunder, ou seja, duplo under) é para uso interno do python
>>> 5 .__add__(3)
8
PROGRAMANDO EM PYTHON
22
EM PYTHON, TUDO É OBJETO
• Comando dir: lista os métodos de um objeto
• Sintaxe:
dir(<objeto>)
• Exemplo:
>>> dir('Felino')
PROGRAMANDO EM PYTHON
23
EM PYTHON, TUDO É OBJETO
['__add__', '__class__', '__contains__', '__delattr__', '__dir__',
'__doc__', '__eq__', '__format__', '__ge__', '__getattribute__',
'__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__',
'__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__',
'__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__',
'__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__',
'__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode',
'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index',
'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower',
'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join',
'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind',
'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split',
'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate',
'upper', 'zfill']
PROGRAMANDO EM PYTHON
24
• Comando help: mostra a documentação de um "objeto" (mesmo que não seja nativo
do Python)
• Sintaxe:
help(<objeto>)
• Exemplo:
>>> help('PyLadies'.upper)
Help on built-in function upper:
upper(...) method of builtins.str instance
S.upper() -> str
Return a copy of S converted to uppercase.
PROGRAMANDO EM PYTHON
25
COMO CONSIGO SABER MAIS SOBRE UM OBJETO?
>>> def batatinha():
... """
... Funcao criada por mim para ilustrar o comando help()
... """
... print('batata' * 3)
...
>>> help(batatinha)
Help on function batatinha in module __main__:
batatinha()
Funcao criada por mim para ilustrar o comando help()
PROGRAMANDO EM PYTHON
26
• Uppercase: toda a string em maiúscula
• Sintaxe:
'<texto>'.upper()
• Exemplo:
>>> 'Batata frita'.upper()
'BATATA FRITA'
PROGRAMANDO EM PYTHON
MAIS SOBRE STRINGS
27
• Lowercase: toda a string em letra minúscula
• Sintaxe:
'<texto>'.lower()
• Exemplo:
>>> 'Coxinha'.lower()
'coxinha'
PROGRAMANDO EM PYTHON
MAIS SOBRE STRINGS
28
• Começa com (startswith)
ou
Termina com (endswith): este comando testa se um texto começa/termina com um
elemento (é um teste lógico)
• Sintaxe:
<variável>.startswith('elemento que procuro')
ou
<variável>.startswith('elemento que procuro')
PROGRAMANDO EM PYTHON
MAIS SOBRE STRINGS
29
• Exemplo:
>>> saudacao = 'Vida longa e próspera!'
>>> saudacao.startswith('V')
True
>>> saudacao.startswith('v')
False
>>> saudacao.endswith('!')
True
PROGRAMANDO EM PYTHON
MAIS SOBRE STRINGS
30
• Índice em uma string: número que indica a posição de cada caractere na string
• Sintaxe:
<variável tipo string>[número]
PROGRAMANDO EM PYTHON
MAIS SOBRE STRINGS
• Exemplo:
>>> serie = 'DOCTOR WHO'
>>> serie[0]
'D'
>>> serie[2]
'C'
>>> serie[6]
' '
>>> serie[-1]
'O'
D O C T O R W H O
O número será
0 (zero) para
o primeiro
caractere na
string, 1 para o
segundo, 2 para
o terceiro, etc. 31
• Fatias de uma string: retorna parte da string, começando pelo primeiro índice e
terminando no anterior ao segundo.
• Sintaxe:
<variável>[índice1:índice2]
• Exemplo:
>>> serie[6:9]
' WH'
>>> serie[4:10]
'OR WHO'
PROGRAMANDO EM PYTHON
MAIS SOBRE STRINGS
>>> serie[7:]
'WHO'
>>> serie[-1:]
'O'
DOC T O R WHO
Quando omitimos um
índice, é mostrado o
caractere do extremo
correspondente
32
• Comando Replace: troca uma string por outra dentro de um texto.
• Sintaxe:
<variável>.replace('string que quero mudar', 'nova string')
• Exemplo:
>>> spock = 'Fascinante, capitão Kirk'
>>> spock.replace('Fascinante' , 'Incrível')
'Incrível, capitão Kirk'
PROGRAMANDO EM PYTHON
MAIS SOBRE STRINGS
33
• Listas: permitem armazenar várias informações diferentes (número, string, lógico) em
uma mesma variável.
• Sintaxe:
<variável> = [info1, info2, info3]
• Exemplo:
>>> meubicho = ['Gato', 9, True]
PROGRAMANDO EM PYTHON
LISTAS
34
• Fatiando listas - para obter apenas um trecho da lista:
• Exemplo 1:
>>> meubicho = ['Gato', 9, True]
>>> meubicho[0]
'Gato'
Para chamar um dos elementos,
uso o índice entre colchetes como
faço com strings
PROGRAMANDO EM PYTHON
LISTAS
35
• Exemplo 2:
>>> meubicho = ['Gato', 9, True, ['preto', 'branco']]
>>> meubicho[3]
['preto', 'branco']
PROGRAMANDO EM PYTHON
LISTAS
Exemplo de lista com
um string, um
inteiro, um booleano
e uma lista
O elemento 3 da lista
meubicho é uma outra lista
36
• Comando Append: acrescenta dados ao final de uma lista.
• Sintaxe:
<variável1>.append(<variável2>)
• Exemplo:
>>> nomedaserie = ['Gotham', 'A', 'Dark']
>>> nomedaserie.append('Knight')
>>> print(nomedaserie)
['Gotham', 'A', 'Dark', 'Knight']
PROGRAMANDO EM PYTHON
LISTAS
37
• Comando Join: gruda os elementos de uma sequência
de strings, usando um parâmetro fornecido
• Sintaxe:
'<parâmetro que quero usar>'.join(<nome da sequência>)
• Exemplo:
>>> herois = ['Flash', 'Arrow', 'Supergirl']
>>> ' e '.join(herois)
'Flash e Arrow e Supergirl'
PROGRAMANDO EM PYTHON
LISTAS
38
Funciona apenas com strings
• Comando Split: separa uma string em pontos onde existam separadores de texto
(espaço, tab, enter, '/', +, etc.), criando uma lista de strings.
• Sintaxe:
'<string>'.split('<separador>')
• Exemplo:
>>> '1,2,3,4'.split(',')
['1', '2', '3', '4']
PROGRAMANDO EM PYTHON
LISTAS
39
• é um modelo de programação baseado no conceito de objetos que contém dados
(atributos) e funcionalidades (métodos)
Animal
PROGRAMANDO EM PYTHON
PROGRAMAÇÃO ORIENTADA A OBJETOS
40
nome
nivel de alimentacao
nivel de saude
nivel de humor
brincar
alimentar
informar_humor
}
}
{
atributos (substantivos)
métodos (verbos, ações sobre o objeto, ou seja,
sobre seus atributos)
class BichoVirtual(object):
def __init__(self, nome='sem nome'):
self.nome = nome
self.nivel_saude = 50
self.nivel_alimentacao = 50
@property
def nivel_humor(self):
return (self.nivel_saude + self.nivel_alimentacao) / 2
# continua
PROGRAMANDO EM PYTHON
CLASSES
41
nome é um parâmetro
opcional
@property "transforma" um método em um atributo
(object) é opcional, é para
manter compatibilidade com
Python 2.7
# continuacao
def informar_humor(self):
if self.nivel_humor < 30:
print('Estou mal!')
elif self.nivel_humor < 50:
print('Não estou bem...')
elif self.nivel_humor < 70:
print('Estou bem!')
else:
print('Estou ótimo!!!')
PROGRAMANDO EM PYTHON
CLASSES
42
self.nivel_humor
é atributo, por isso não usa ()
# continuacao
def brincar(self):
if self.nivel_alimentacao > 10:
self.nivel_alimentacao -= 10
self.nivel_saude += 10
if self.nivel_saude > 100:
self.nivel_saude = 100
else:
print('Está sem energia!!!')
PROGRAMANDO EM PYTHON
CLASSES
43
# continuacao
def alimentar(self):
if self.nivel_alimentacao < 90:
self.nivel_alimentacao += 10
else:
print('Estou cheio!!!')
def mostrar_estatisticas(self):
print('Nome: {}'.format(self.nome))
print('Nível de saude: {}'.format(self.nivel_saude))
print('Nível de alimentação:
{}'.format(self.nivel_alimentacao))
PROGRAMANDO EM PYTHON
CLASSES
44
import random
def criar_bichinhos(nomes):
bichinhos = []
for nome in nomes:
bichinhos.append(BichoVirtual(nome))
return bichinhos
def escolher_bicho_aleatorio(bichos):
return random.choice(bichos)
PROGRAMANDO EM PYTHON
INSTÂNCIAS DE UMA CLASSE
45
# opcao pythonica
(4 linhas em 1):
return [BichoVirtual(nome) for nome
in nomes]
# modulo para lidar com aleatório
bichos é uma lista de BichoVirtual
# código fora da classe
def mostrar_menu():
print('Selecione uma opção:')
print(' A para alimentar')
print(' B para brincar')
print(' C para criar bichos')
print(' H para ver humor')
print(' P para parar')
PROGRAMANDO EM PYTHON
INSTÂNCIAS DE UMA CLASSE
46
# código fora da classe
op = None
bichos = None
while op != 'P':
mostrar_menu()
if bichos is None or len(bichos) == 0:
op = 'C'
else:
op = input('Escolha opção: ')
if op == 'C':
nomes = input('Escreva pelo menos 1 nome, use vírgula para
separar os nomes: ')
bichos = criar_bichinhos(nomes.split(','))
# … continua
PROGRAMANDO EM PYTHON
47
nomes é str, então precisa
usar o método split() com
vírgula para obter lista de
nomes para os bichinhos
Classes
# continuação
elif op != 'P':
bicho = escolher_bicho_aleatorio(bichos)
print(bicho.nome)
if op == 'A':
bicho.alimentar()
elif op == 'B':
bicho.brincar()
elif op == 'H':
bicho.informar_humor()
PROGRAMANDO EM PYTHON
48
Classes
# código fora da classe
for bicho in bichos:
print('-'*10)
bicho.mostrar_estatisticas()
PROGRAMANDO EM PYTHON
Classes
49
• www.codecademy.com/pt
• www.sololearn.com/Course/Python
• pythontutor.com
• www.pycursos.com/python-para-zumbis
• coursera.org
• www.urionlinejudge.com.br/judge/pt/login
ONDE ESTUDAR ONLINE
50
• http://wiki.python.org.br/PrincipiosFuncionais
• Curso Python para Zumbis
• Curso “An Introduction to Interactive Programming in Python” - Coursera
• http://www.peachpit.com/articles/article.aspx?p=1312792&seqNum=6
• https://docs.python.org/release/2.3.5/whatsnew/section-slices.html
• http://www.bbc.co.uk/education/guides/zqh49j6/revision/3
• https://www.youtube.com/watch?v=SYioCdLPmfw
• https://pt.wikibooks.org/wiki/Python/Conceitos_b%C3%A1sicos/Tipos_e_operadores
• http://www.dcc.ufrj.br/~fabiom/mab225/02tipos.pdf
• http://pt.stackoverflow.com/questions/62844/como-se-insere-n%C3%BAmeros-complexosem-python
• www.arquivodecodigos.net/principal/dicas_truques_categoria2.php?linguagem=12&categoria1=1&categoria2=59
REFERÊNCIAS
51
• www.arquivodecodigos.net/principal/dicas_truques_categoria2.php?linguagem=12&categoria1=1&categoria2=51
• www.dotnetperls.com/lower-python
• https://pt.wikipedia.org/wiki/Algoritmo
• http://wiki.python.org.br/SoftwarePython
• http://wiki.python.org.br/EmpresasPython
• https://powerpython.wordpress.com/2012/03/16/programas-e-jogos-feitos-em-python/
• http://tutorial.djangogirls.org/pt/python_installation/index.html
• https://powerpython.wordpress.com/2012/03/19/aula-python-17-estrutura-de-decisao/
• https://under-linux.org/entry.php?b=1371
• http://aprenda-python.blogspot.com.br/2009/10/nova-formatacao-de-strings.html
• https://docs.python.org/3/library/string.html#formatspec
• https://www.python.org/dev/peps/pep-3101/
REFERÊNCIAS
52
Mulheres que
amam programar
e ensinar Python

Mais conteúdo relacionado

Mais procurados

Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonAlvaro Oliveira
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetosCleyton Ferrari
 
Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução BásicaChristian Perone
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVAMoises Omena
 
Apresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação PythonApresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação PythonPriscila Mayumi
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 
HTML - Aula 01 - Estrutura básica e tags básicas no html
HTML - Aula 01 - Estrutura básica e tags básicas no htmlHTML - Aula 01 - Estrutura básica e tags básicas no html
HTML - Aula 01 - Estrutura básica e tags básicas no htmlTiago Luiz Ribeiro da Silva
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScriptBruno Catão
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaDaniel Brandão
 
Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Luciano Ramalho
 
Programação orientada a objetos – II
Programação orientada a objetos – IIProgramação orientada a objetos – II
Programação orientada a objetos – IIGabriel Faustino
 
Desenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos BásicosDesenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos BásicosFabio Moura Pereira
 

Mais procurados (20)

Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a Python
 
Java modulo 01 - Introdução
Java modulo 01 - IntroduçãoJava modulo 01 - Introdução
Java modulo 01 - Introdução
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução Básica
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
Apresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação PythonApresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação Python
 
Python Orientação a Objeto
Python Orientação a ObjetoPython Orientação a Objeto
Python Orientação a Objeto
 
Introdução a python
Introdução a pythonIntrodução a python
Introdução a python
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Html Básico
Html BásicoHtml Básico
Html Básico
 
HTML - Aula 01 - Estrutura básica e tags básicas no html
HTML - Aula 01 - Estrutura básica e tags básicas no htmlHTML - Aula 01 - Estrutura básica e tags básicas no html
HTML - Aula 01 - Estrutura básica e tags básicas no html
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScript
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem Java
 
UML - Diagrama de Pacotes
UML - Diagrama de PacotesUML - Diagrama de Pacotes
UML - Diagrama de Pacotes
 
Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)
 
Programação orientada a objetos – II
Programação orientada a objetos – IIProgramação orientada a objetos – II
Programação orientada a objetos – II
 
Algoritmo 06 - Array e Matrizes
Algoritmo 06 - Array e MatrizesAlgoritmo 06 - Array e Matrizes
Algoritmo 06 - Array e Matrizes
 
Desenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos BásicosDesenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos Básicos
 
Introdução à linguagem python
Introdução à linguagem pythonIntrodução à linguagem python
Introdução à linguagem python
 

Semelhante a Python Introdução e Orientação a Objetos.pdf

Semelhante a Python Introdução e Orientação a Objetos.pdf (20)

Oficina de Python para iniciantes
Oficina de Python para iniciantesOficina de Python para iniciantes
Oficina de Python para iniciantes
 
minicurso-python-getmeeting.pdf
minicurso-python-getmeeting.pdfminicurso-python-getmeeting.pdf
minicurso-python-getmeeting.pdf
 
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonIEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
 
Python
PythonPython
Python
 
Introdução ao Python
Introdução ao PythonIntrodução ao Python
Introdução ao Python
 
unidade04-c3-handout.pdf
unidade04-c3-handout.pdfunidade04-c3-handout.pdf
unidade04-c3-handout.pdf
 
Olá Python!
Olá Python!Olá Python!
Olá Python!
 
Apostila etec banco
Apostila etec   bancoApostila etec   banco
Apostila etec banco
 
Minicurso: Python em 4 horas - FATEC SCS 2015
Minicurso: Python em 4 horas - FATEC SCS 2015 Minicurso: Python em 4 horas - FATEC SCS 2015
Minicurso: Python em 4 horas - FATEC SCS 2015
 
01 variaveis io if
01 variaveis io if01 variaveis io if
01 variaveis io if
 
Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10
 
Python Class
Python ClassPython Class
Python Class
 
Python introdução a linguagem de programação
Python introdução a linguagem de programaçãoPython introdução a linguagem de programação
Python introdução a linguagem de programação
 
Iniciando em Python
Iniciando em PythonIniciando em Python
Iniciando em Python
 
Getting Started with Python
Getting Started with PythonGetting Started with Python
Getting Started with Python
 
Mini Curso de Python para Coding Dojo
Mini Curso de Python para Coding DojoMini Curso de Python para Coding Dojo
Mini Curso de Python para Coding Dojo
 
05 listas
05 listas05 listas
05 listas
 
Haskell
HaskellHaskell
Haskell
 
Minicurso Básico de Python - PythonDay
Minicurso Básico de Python - PythonDayMinicurso Básico de Python - PythonDay
Minicurso Básico de Python - PythonDay
 
Introdução ao Python
Introdução ao PythonIntrodução ao Python
Introdução ao Python
 

Python Introdução e Orientação a Objetos.pdf

  • 1. Apresentação da Linguagem Python com foco em Orientação a Objetos Sob licença CC-BY-NC-ND
  • 2. PyLadies é um grupo internacional de mentoria com foco em ajudar mais mulheres a tornarem-se participantes ativas e líderes da comunidade Python. #souPyLadiesSP O QUE É PYLADIES? 2
  • 3. O QUE É E ONDE SE USA PYTHON Python é uma linguagem de programação com código aberto, de alto nível, tipicamente usada para aplicações web ou linguagens de scripts para administração de sistemas. 3
  • 4. • Big Data • Machine learning • Processamento de textos • Tratamento e reconhecimento de imagens • Animações 3D O QUE É E ONDE SE USA PYTHON • Aplicações web, desktop e mobile • Cálculos científicos • Computação gráfica • Automação de sistema • Mineração de dados 4
  • 5. Foi criada em 1989 por Guido Van Rossum O QUE É E ONDE SE USA PYTHON O nome Python foi inspirado no seriado britânico Monty Python 5
  • 6. O QUE É E ONDE SE USA PYTHON EXEMPLOS DE UTILIZAÇÃO 6
  • 7. O QUE É E ONDE SE USA PYTHON EXEMPLOS DE UTILIZAÇÃO 7
  • 8. POR QUE PYTHON? Exemplo do mesmo programa em várias linguagens: Fonte: https://pythonhelp.wordpress.com/por-que-python/ 8
  • 9. "Simples é melhor que complexo" (Tim Peters) POR QUE PYTHON? 9
  • 10. PROGRAMANDO EM PYTHON ESCREVER NO TERMINAL A linha de comando é indicada pelas setas >>> É nela que você deve dar os comandos. Sua primeira tarefa é executar um print, o comando para imprimir uma mensagem na tela. O resultado da execução, deve sair logo abaixo, dessa forma: >>> print('Hello!') Hello! 10
  • 11. • Sintaxe: <nome da variável> = <valor que quero armazenar> • Exemplo: comida = 'hamburguer' preço = 8.7 vegetariano = True ingredientes = ['alface', 'tomate', 'lentilha', 'soja', 'cebola', 'queijo', 'pão'] PROGRAMANDO EM PYTHON VARIÁVEIS 11
  • 12. >>> comida = 'hamburguer' >>> type(comida) <class 'str'> >>> preço = 8.7 >>> type(nota) <class 'float'> vegetariano = True >>> type(vegetariano) <class 'bool'> PROGRAMANDO EM PYTHON VARIÁVEIS 12 ingredientes = ['alface', 'tomate', 'lentilha', 'soja', 'cebola', 'queijo', 'pão'] >>> type(ingredientes) <class 'list'> dados = { 'produto': comida, 'preço': preço, 'composição': ingredientes, } >>> type(dados) <class 'dict'>
  • 13. PROGRAMANDO EM PYTHON VARIÁVEIS 13 ingredientes = ['alface', 'tomate', 'lentilha', 'soja', 'cebola', 'queijo', 'pão'] >>> type(ingredientes) <class 'list'> ingredientes = ('alface', 'tomate', 'lentilha', 'soja', 'cebola', 'queijo', 'pão') >>> type(ingredientes) <class 'tuple'> Imutável (constante) mutável
  • 14. Em Python, podemos modificar os tipos de uma variável ao longo do programa, por isso chamamos Python de uma linguagem dinamicamente tipada. a = 'banana' a = 10 Podemos modificar o tipo de variável ou criar uma variável de outro tipo, usando seus "tipos" como comandos, desde que compatíveis: int( ) float( ) str( ) tuple( ) dict( ) list( ) PROGRAMANDO EM PYTHON VARIÁVEIS 14
  • 15. >>> a = 2 >>> type(a) <class 'int'> >>> b = float(a) >>> type(b) <class 'float'> >>> b 2.0 >>> c = str(a) >>> c '2' >>> d = int(c) >>> d 2 >>> type(d) <class 'int'> • Exemplos: PROGRAMANDO EM PYTHON VARIÁVEIS 15 >>> letras = list('hamburguer') >>> letras ['h', 'a', 'm', 'b', 'u', 'r', 'g', 'u', 'e', 'r'] >>> type(letras) <class 'list'>
  • 16. Podemos fazer operações em Python. Tanto numéricas, quanto lógicas. • Operadores numéricos básicos: PROGRAMANDO EM PYTHON OPERADORES Adição: + Subtração: - Divisão: / Multiplicação: * Potenciação: ** Resto de uma divisão: % 16 Lembre-se do PEMDAS Parênteses Expoentes Multiplicação Divisão Adição Subtração
  • 17. • Operadores lógicos ou relacionais: servem para fazer perguntas que possam ser respondidas com True ou False (verdadeiro/falso) Maior que: > Menor que: < Maior ou igual a: >= Menor ou igual a: <= Idêntico: == Diferente de: != Não: not E: and (todas as condições precisam ser satisfeitas) Ou: or (apenas uma das condições precisa ser satisfeita) PROGRAMANDO EM PYTHON OPERADORES 17
  • 18. PROGRAMANDO EM PYTHON OPERADORES >>> a = 2 >>> b = 3 >>> c = 3 / 2 >>> c 1.5 >>> c = 3 // 2 >>> c 1 >>> a > b False >>> b > a True >>> a == b False • Exemplos: 18 >>> 'a' + 'b' 'ab' >>> 'PyLadies ' + 'São Paulo' 'PyLadies São Paulo'
  • 19. >>> nome = 'Penny...' >>> print(nome * 5) >>> 'Penny...Penny...Penny...Penny...Penny...' PROGRAMANDO EM PYTHON OPERAÇÕES COM STRINGS 19
  • 20. • Comando dir: lista os métodos de um objeto • Sintaxe: dir(<objeto>) • Exemplo: >>> dir(5) PROGRAMANDO EM PYTHON 20 EM PYTHON, TUDO É OBJETO EM PYTHON, TUDO É OBJETO
  • 21. >>> dir(5) ['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__gt__', '__hash__', '__index__', '__init__', '__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes'] PROGRAMANDO EM PYTHON 21
  • 22. >>> 5 + 3 8 # Métodos com __ (dunder, ou seja, duplo under) é para uso interno do python >>> 5 .__add__(3) 8 PROGRAMANDO EM PYTHON 22 EM PYTHON, TUDO É OBJETO
  • 23. • Comando dir: lista os métodos de um objeto • Sintaxe: dir(<objeto>) • Exemplo: >>> dir('Felino') PROGRAMANDO EM PYTHON 23 EM PYTHON, TUDO É OBJETO
  • 24. ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill'] PROGRAMANDO EM PYTHON 24
  • 25. • Comando help: mostra a documentação de um "objeto" (mesmo que não seja nativo do Python) • Sintaxe: help(<objeto>) • Exemplo: >>> help('PyLadies'.upper) Help on built-in function upper: upper(...) method of builtins.str instance S.upper() -> str Return a copy of S converted to uppercase. PROGRAMANDO EM PYTHON 25 COMO CONSIGO SABER MAIS SOBRE UM OBJETO?
  • 26. >>> def batatinha(): ... """ ... Funcao criada por mim para ilustrar o comando help() ... """ ... print('batata' * 3) ... >>> help(batatinha) Help on function batatinha in module __main__: batatinha() Funcao criada por mim para ilustrar o comando help() PROGRAMANDO EM PYTHON 26
  • 27. • Uppercase: toda a string em maiúscula • Sintaxe: '<texto>'.upper() • Exemplo: >>> 'Batata frita'.upper() 'BATATA FRITA' PROGRAMANDO EM PYTHON MAIS SOBRE STRINGS 27
  • 28. • Lowercase: toda a string em letra minúscula • Sintaxe: '<texto>'.lower() • Exemplo: >>> 'Coxinha'.lower() 'coxinha' PROGRAMANDO EM PYTHON MAIS SOBRE STRINGS 28
  • 29. • Começa com (startswith) ou Termina com (endswith): este comando testa se um texto começa/termina com um elemento (é um teste lógico) • Sintaxe: <variável>.startswith('elemento que procuro') ou <variável>.startswith('elemento que procuro') PROGRAMANDO EM PYTHON MAIS SOBRE STRINGS 29
  • 30. • Exemplo: >>> saudacao = 'Vida longa e próspera!' >>> saudacao.startswith('V') True >>> saudacao.startswith('v') False >>> saudacao.endswith('!') True PROGRAMANDO EM PYTHON MAIS SOBRE STRINGS 30
  • 31. • Índice em uma string: número que indica a posição de cada caractere na string • Sintaxe: <variável tipo string>[número] PROGRAMANDO EM PYTHON MAIS SOBRE STRINGS • Exemplo: >>> serie = 'DOCTOR WHO' >>> serie[0] 'D' >>> serie[2] 'C' >>> serie[6] ' ' >>> serie[-1] 'O' D O C T O R W H O O número será 0 (zero) para o primeiro caractere na string, 1 para o segundo, 2 para o terceiro, etc. 31
  • 32. • Fatias de uma string: retorna parte da string, começando pelo primeiro índice e terminando no anterior ao segundo. • Sintaxe: <variável>[índice1:índice2] • Exemplo: >>> serie[6:9] ' WH' >>> serie[4:10] 'OR WHO' PROGRAMANDO EM PYTHON MAIS SOBRE STRINGS >>> serie[7:] 'WHO' >>> serie[-1:] 'O' DOC T O R WHO Quando omitimos um índice, é mostrado o caractere do extremo correspondente 32
  • 33. • Comando Replace: troca uma string por outra dentro de um texto. • Sintaxe: <variável>.replace('string que quero mudar', 'nova string') • Exemplo: >>> spock = 'Fascinante, capitão Kirk' >>> spock.replace('Fascinante' , 'Incrível') 'Incrível, capitão Kirk' PROGRAMANDO EM PYTHON MAIS SOBRE STRINGS 33
  • 34. • Listas: permitem armazenar várias informações diferentes (número, string, lógico) em uma mesma variável. • Sintaxe: <variável> = [info1, info2, info3] • Exemplo: >>> meubicho = ['Gato', 9, True] PROGRAMANDO EM PYTHON LISTAS 34
  • 35. • Fatiando listas - para obter apenas um trecho da lista: • Exemplo 1: >>> meubicho = ['Gato', 9, True] >>> meubicho[0] 'Gato' Para chamar um dos elementos, uso o índice entre colchetes como faço com strings PROGRAMANDO EM PYTHON LISTAS 35
  • 36. • Exemplo 2: >>> meubicho = ['Gato', 9, True, ['preto', 'branco']] >>> meubicho[3] ['preto', 'branco'] PROGRAMANDO EM PYTHON LISTAS Exemplo de lista com um string, um inteiro, um booleano e uma lista O elemento 3 da lista meubicho é uma outra lista 36
  • 37. • Comando Append: acrescenta dados ao final de uma lista. • Sintaxe: <variável1>.append(<variável2>) • Exemplo: >>> nomedaserie = ['Gotham', 'A', 'Dark'] >>> nomedaserie.append('Knight') >>> print(nomedaserie) ['Gotham', 'A', 'Dark', 'Knight'] PROGRAMANDO EM PYTHON LISTAS 37
  • 38. • Comando Join: gruda os elementos de uma sequência de strings, usando um parâmetro fornecido • Sintaxe: '<parâmetro que quero usar>'.join(<nome da sequência>) • Exemplo: >>> herois = ['Flash', 'Arrow', 'Supergirl'] >>> ' e '.join(herois) 'Flash e Arrow e Supergirl' PROGRAMANDO EM PYTHON LISTAS 38 Funciona apenas com strings
  • 39. • Comando Split: separa uma string em pontos onde existam separadores de texto (espaço, tab, enter, '/', +, etc.), criando uma lista de strings. • Sintaxe: '<string>'.split('<separador>') • Exemplo: >>> '1,2,3,4'.split(',') ['1', '2', '3', '4'] PROGRAMANDO EM PYTHON LISTAS 39
  • 40. • é um modelo de programação baseado no conceito de objetos que contém dados (atributos) e funcionalidades (métodos) Animal PROGRAMANDO EM PYTHON PROGRAMAÇÃO ORIENTADA A OBJETOS 40 nome nivel de alimentacao nivel de saude nivel de humor brincar alimentar informar_humor } } { atributos (substantivos) métodos (verbos, ações sobre o objeto, ou seja, sobre seus atributos)
  • 41. class BichoVirtual(object): def __init__(self, nome='sem nome'): self.nome = nome self.nivel_saude = 50 self.nivel_alimentacao = 50 @property def nivel_humor(self): return (self.nivel_saude + self.nivel_alimentacao) / 2 # continua PROGRAMANDO EM PYTHON CLASSES 41 nome é um parâmetro opcional @property "transforma" um método em um atributo (object) é opcional, é para manter compatibilidade com Python 2.7
  • 42. # continuacao def informar_humor(self): if self.nivel_humor < 30: print('Estou mal!') elif self.nivel_humor < 50: print('Não estou bem...') elif self.nivel_humor < 70: print('Estou bem!') else: print('Estou ótimo!!!') PROGRAMANDO EM PYTHON CLASSES 42 self.nivel_humor é atributo, por isso não usa ()
  • 43. # continuacao def brincar(self): if self.nivel_alimentacao > 10: self.nivel_alimentacao -= 10 self.nivel_saude += 10 if self.nivel_saude > 100: self.nivel_saude = 100 else: print('Está sem energia!!!') PROGRAMANDO EM PYTHON CLASSES 43
  • 44. # continuacao def alimentar(self): if self.nivel_alimentacao < 90: self.nivel_alimentacao += 10 else: print('Estou cheio!!!') def mostrar_estatisticas(self): print('Nome: {}'.format(self.nome)) print('Nível de saude: {}'.format(self.nivel_saude)) print('Nível de alimentação: {}'.format(self.nivel_alimentacao)) PROGRAMANDO EM PYTHON CLASSES 44
  • 45. import random def criar_bichinhos(nomes): bichinhos = [] for nome in nomes: bichinhos.append(BichoVirtual(nome)) return bichinhos def escolher_bicho_aleatorio(bichos): return random.choice(bichos) PROGRAMANDO EM PYTHON INSTÂNCIAS DE UMA CLASSE 45 # opcao pythonica (4 linhas em 1): return [BichoVirtual(nome) for nome in nomes] # modulo para lidar com aleatório bichos é uma lista de BichoVirtual
  • 46. # código fora da classe def mostrar_menu(): print('Selecione uma opção:') print(' A para alimentar') print(' B para brincar') print(' C para criar bichos') print(' H para ver humor') print(' P para parar') PROGRAMANDO EM PYTHON INSTÂNCIAS DE UMA CLASSE 46
  • 47. # código fora da classe op = None bichos = None while op != 'P': mostrar_menu() if bichos is None or len(bichos) == 0: op = 'C' else: op = input('Escolha opção: ') if op == 'C': nomes = input('Escreva pelo menos 1 nome, use vírgula para separar os nomes: ') bichos = criar_bichinhos(nomes.split(',')) # … continua PROGRAMANDO EM PYTHON 47 nomes é str, então precisa usar o método split() com vírgula para obter lista de nomes para os bichinhos Classes
  • 48. # continuação elif op != 'P': bicho = escolher_bicho_aleatorio(bichos) print(bicho.nome) if op == 'A': bicho.alimentar() elif op == 'B': bicho.brincar() elif op == 'H': bicho.informar_humor() PROGRAMANDO EM PYTHON 48 Classes
  • 49. # código fora da classe for bicho in bichos: print('-'*10) bicho.mostrar_estatisticas() PROGRAMANDO EM PYTHON Classes 49
  • 50. • www.codecademy.com/pt • www.sololearn.com/Course/Python • pythontutor.com • www.pycursos.com/python-para-zumbis • coursera.org • www.urionlinejudge.com.br/judge/pt/login ONDE ESTUDAR ONLINE 50
  • 51. • http://wiki.python.org.br/PrincipiosFuncionais • Curso Python para Zumbis • Curso “An Introduction to Interactive Programming in Python” - Coursera • http://www.peachpit.com/articles/article.aspx?p=1312792&seqNum=6 • https://docs.python.org/release/2.3.5/whatsnew/section-slices.html • http://www.bbc.co.uk/education/guides/zqh49j6/revision/3 • https://www.youtube.com/watch?v=SYioCdLPmfw • https://pt.wikibooks.org/wiki/Python/Conceitos_b%C3%A1sicos/Tipos_e_operadores • http://www.dcc.ufrj.br/~fabiom/mab225/02tipos.pdf • http://pt.stackoverflow.com/questions/62844/como-se-insere-n%C3%BAmeros-complexosem-python • www.arquivodecodigos.net/principal/dicas_truques_categoria2.php?linguagem=12&categoria1=1&categoria2=59 REFERÊNCIAS 51
  • 52. • www.arquivodecodigos.net/principal/dicas_truques_categoria2.php?linguagem=12&categoria1=1&categoria2=51 • www.dotnetperls.com/lower-python • https://pt.wikipedia.org/wiki/Algoritmo • http://wiki.python.org.br/SoftwarePython • http://wiki.python.org.br/EmpresasPython • https://powerpython.wordpress.com/2012/03/16/programas-e-jogos-feitos-em-python/ • http://tutorial.djangogirls.org/pt/python_installation/index.html • https://powerpython.wordpress.com/2012/03/19/aula-python-17-estrutura-de-decisao/ • https://under-linux.org/entry.php?b=1371 • http://aprenda-python.blogspot.com.br/2009/10/nova-formatacao-de-strings.html • https://docs.python.org/3/library/string.html#formatspec • https://www.python.org/dev/peps/pep-3101/ REFERÊNCIAS 52