Buscar

1_Apostila_Python_-_Programa_Caça_Talentos_material (2)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 79 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 79 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 79 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
 
 
 
 
 
 
 
 
 
SERVIÇO DE CAPACITAÇÃO, NO ÂMBITO DO PROGRAMA CAÇA 
TALENTOS, PARA DESENVOLVIMENTO SÓCIO EMOCIONAIS, E 
SÓCIO PROFISSIONAIS AMBOS EM FORMATO EAD, COM 
ENFOQUE NO ACESSO AO MERCADO DE TRABALHO, POR MEIO 
DE QUALIFICAÇÃO NO SETOR DE TECNOLOGIA, INOVAÇÃO E 
ATIVIDADES CORRELATAS NO ESTADO DE PERNAMBUCO 
 
 
 
 
CURSO DE PROGRAMAÇÃO EM PYTHON – 240 HORAS 
 
 
 
 
 
 
 
 
 
 
 
 
 
2 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
 
Sumário 
 
1. O que é Python? .............................................................................................................. 6 
1.1 Python no mercado de trabalho ................................................................................ 6 
1.2 Por que aprender Python?......................................................................................... 7 
1.3 Carreiras em Python .................................................................................................. 8 
1.4 Características do Python ......................................................................................... 9 
2. Variáveis e tipos de dados em Python ........................................................................... 9 
2.1 Identação .................................................................................................................... 9 
2.2 Variáveis ................................................................................................................... 10 
2.3 Comentários ............................................................................................................. 11 
2.4 Casting/Conversão ................................................................................................... 12 
2.5 Identificar o tipo da variável .................................................................................... 12 
2.6 Strings/literais .......................................................................................................... 12 
2.6a Strings são como arrays/listas .......................................................................... 12 
2.6b Uso de repetições em Strings: .......................................................................... 13 
2.6c Tamanho de Strings: .......................................................................................... 13 
2.6d Checar existência de uma String em outra ....................................................... 13 
2.6e Cortando Strings ................................................................................................. 14 
Cortando desde o início desde o índice .................................................................... 14 
Cortando até o fim ...................................................................................................... 14 
2.6f Modificando Strings ............................................................................................ 15 
2.6g Caracteres de escape ......................................................................................... 16 
2.7 Variáveis são sensíveis a variação de Caixa alta e baixa (letras maiúsculas e 
minúsculas) .................................................................................................................... 17 
2.8 Nomes de variáveis .................................................................................................. 17 
2.9 Nomes compostos ................................................................................................... 17 
2.10 Output de variáveis ................................................................................................ 18 
2.11 Output de múltiplas variáveis ................................................................................ 18 
2.12 Tipos de dados no Python ..................................................................................... 18 
2.13 Booleanos ............................................................................................................... 19 
2.14 Operadores ............................................................................................................. 19 
Operadores aritméticos .............................................................................................. 20 
Operadores de atribuição .......................................................................................... 20 
 
3 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
Operadores de comparação ....................................................................................... 21 
Operadores lógicos .................................................................................................... 22 
Operadores de identidade .......................................................................................... 22 
Operadores de associação ........................................................................................ 22 
Operadores Bitwise Python ....................................................................................... 23 
Estruturas Condicionais ................................................................................................... 24 
3.1 If ................................................................................................................................. 24 
3.2 Elif ............................................................................................................................. 24 
3.3 Else ............................................................................................................................ 25 
3.3 Operadores complementares .................................................................................. 26 
4. Estruturas de repetição ................................................................................................. 26 
4.1 While ......................................................................................................................... 26 
4.2 Break ......................................................................................................................... 27 
4.3 Continue .................................................................................................................... 27 
4.4 For ............................................................................................................................. 27 
4.5 Range() ...................................................................................................................... 28 
5. Listas .............................................................................................................................. 29 
5.1 Tamanho de uma lista .............................................................................................. 29 
5.2 Acessando itens da lista .......................................................................................... 30 
5.3 Verificando itens na lista ......................................................................................... 30 
5.4 Modificando itens na lista ........................................................................................ 31 
5.5 Adicionando itens na lista ....................................................................................... 31 
5.6 Removendo itens da lista ........................................................................................ 31 
5.6 Comprehension ........................................................................................................ 32 
6. Funções e Expressões Lambda ....................................................................................33 
6.1 Criando funções ....................................................................................................... 33 
6.2 Chamando funções .................................................................................................. 34 
6.3 Argumentos .............................................................................................................. 34 
6.3.b Numero de argumentos ..................................................................................... 34 
6.4 Retorno ..................................................................................................................... 35 
6.5 Recursão ................................................................................................................... 35 
6.6 Funções Lambda ...................................................................................................... 36 
6.6.a Sintaxe ................................................................................................................ 37 
6.6b Por que usar funções lambda? .......................................................................... 37 
7. Debug e tratamento de erros ........................................................................................ 38 
 
4 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
8. Módulos em Python ....................................................................................................... 40 
8.1 Criando um modulo.................................................................................................. 40 
8.2 Utilizando um modulo .............................................................................................. 41 
8.3 Variáveis em um modulo ......................................................................................... 41 
8.4 Renomeando Módulos ............................................................................................. 42 
8.5 Módulos Nativos ....................................................................................................... 42 
9. Leitura e Escrita ............................................................................................................. 42 
9.1 Input do usuário ....................................................................................................... 42 
9.2 Utilizando arquivos .................................................................................................. 43 
Sintaxe ......................................................................................................................... 44 
9.3 Lendo arquivos ......................................................................................................... 44 
Ler partes do arquivo ................................................................................................. 45 
Ler linha por linha ....................................................................................................... 45 
9.4 Escrevendo em arquivos ......................................................................................... 46 
Criando um novo arquivo do zero ............................................................................. 47 
10. Paradigma Orientação a Objeto .................................................................................. 48 
10.1 Criando uma classe ................................................................................................ 48 
10.2 Criando um objeto .................................................................................................. 48 
10.3 A função construtora: __init__() ............................................................................ 48 
10.4 Métodos do objeto.................................................................................................. 49 
10.5 Modificando atributos de um objeto ..................................................................... 50 
11. Herança ........................................................................................................................ 50 
11.1 Criando uma classe base ....................................................................................... 50 
11.2 Criando uma classe derivada ................................................................................ 51 
11.3 Criando um construtor próprio ............................................................................. 52 
11.4 Utilizando a função super() .................................................................................... 52 
11.5 Adicionando atributos ........................................................................................... 53 
11.6 Adicionando métodos ............................................................................................ 53 
12. Polimorfismo ................................................................................................................ 54 
Exemplo de funções polimórficas definidas pelo usuário: ..................................... 54 
Polimorfismo com métodos de classe ...................................................................... 55 
Polimorfismo com herança ........................................................................................ 56 
13. Iteradores e funções geradoras .................................................................................. 57 
13.1 Iterador e Iteraveis.................................................................................................. 57 
13.2 Aplicando iteradores a laços de repetição ........................................................... 58 
 
5 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
13.3 Criando um iterador ............................................................................................... 58 
13.4 Yield ........................................................................................................................ 59 
13.5 Função geradora .................................................................................................... 60 
14. Decoradores ................................................................................................................. 61 
Propriedades das funções de primeira classe: ........................................................ 61 
Aninhando decoradores ............................................................................................. 65 
15. Manipulando arquivos CSV e JSON ........................................................................... 66 
15.1 CSV .......................................................................................................................... 66 
15.1a Lendo arquivos CSV ......................................................................................... 66 
15.1b Escrevendo em arquivos CSV ......................................................................... 68 
15.2 Json ......................................................................................................................... 70 
15.2a JSON em Python ............................................................................................... 70 
15.2b Parsing do JSON - Convertendo JSON para Python ...................................... 70 
15.2c Convertendo Python para JSON ...................................................................... 71 
15.2d Formatando os resultados ............................................................................... 72 
16. Datas e horas ............................................................................................................... 72 
16.1 Criando objetos do tipo data ................................................................................. 73 
16.2 O métodostrftime() ................................................................................................ 74 
Tabela de formatos: .................................................................................................... 74 
17. Testes ........................................................................................................................... 76 
Testes de unidade ...................................................................................................... 76 
18. Gerenciamento de memoria ........................................................................................ 77 
 
 
 
 
 
 
 
 
 
 
 
 
 
6 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
 
1. O que é Python? 
 
Python é uma linguagem de programação interpretada, interativa, orientada a objetos 
e de alto nível extremamente popular. Python é uma linguagem de programação 
dinamicamente tipada que faz uso de Garbage Collection (Coletor de lixo). Foi criado 
por Guido van Rossum durante 1985-1990. Assim como o Perl, o código-fonte Python 
também está disponível sob a GNU General Public License (GPL). 
 
Python suporta vários paradigmas de programação, incluindo o paradigma 
Procedural, Orientado a Objetos e Funcional. A filosofia de design do Python enfatiza 
a legibilidade do código com o uso significativo de identação no código ao ponto de 
substituir as chaves ({}) utilizadas em outras linguagens famosas como python,c,c++ 
etc. 
Esta apostila visa fornece uma base solida para o estudo e a pratica da linguagem de 
programação Python, desde conceitos básicos até alguns conceitos avançados dentro 
do escopo temporal do curso. 
 
1.1 Python no mercado de trabalho 
 
Hoje, o Python tem uma demanda muito alta e todas as grandes empresas estão 
procurando ótimos programadores Python para desenvolver sites, componentes de 
software e aplicativos ou para trabalhar com tecnologias de Data Science, IA e ML. 
No momento em que essa apostila está sendo feita, há uma grande escassez de 
programadores de Python, onde o mercado demanda mais programadores Python 
devido à sua aplicação em Machine Learning, Inteligência Artificial etc. 
 
Hoje, um programador Python com 3-5 anos de experiência pode exigir um salário 
mensal de cerca de RS$ 8.000, caso o programador esteja aberto a oportunidades 
internacionais empresas americanas pagam anualmente US$ 150.000 a 
programadores plenos afinal Python é uma das linguagens mais demandadas no 
mundo. Embora o salário possa variar dependendo da localização do trabalho. É 
 
7 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
impossível listar todas as empresas que usam Python, para citar algumas grandes 
empresas são: 
 
 Google 
 Serasa 
 Intel 
Accenture 
 NASA 
 Globo 
 PayPal 
 Mercado Livre 
 Facebook 
 IBM 
 Amazon 
 Netflix 
 Pinterest 
 Uber 
 
Então, você pode ser o próximo funcionário em potencial para qualquer uma dessas 
grandes empresas. 
 
1.2 Por que aprender Python? 
 
Python é consistentemente classificado como uma das linguagens de programação 
mais populares do mundo. Python é bastante fácil de aprender, portanto, se você está 
começando a aprender qualquer linguagem de programação, o Python pode ser sua 
ótima escolha. Hoje, várias escolas, faculdades e universidades (Regionalmente 
temos Cesar School e UFPE ensinando Python em seus cursos introdutórios de 
programação dos seus respectivos cursos de Ciência da computação) estão 
ensinando Python como sua principal linguagem de programação. Existem muitas 
outras boas razões que fazem do Python a melhor escolha de qualquer programador: 
 
Python é Open Source, o que significa que está disponível gratuitamente. 
 
8 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
Python é simples e muito fácil de aprender 
Python é versátil e pode ser usado para criar muitas coisas diferentes. 
Python possui bibliotecas de desenvolvimento poderosas, incluindo AI, ML, etc. 
Python é muito procurado e garante alto salário 
Python é OBRIGATÓRIO para estudantes e profissionais que trabalham para se 
tornarem um grande Engenheiro de Software. Algumas das principais vantagens de 
aprender Python: 
 
Python é interpretado - Python é processado em tempo de execução pelo 
interpretador. Você não precisa compilar seu programa antes de executá-lo. Isso é 
semelhante ao PERL e PHP. 
Python é interativo - você pode realmente abrir um prompt de comando do Python e 
interagir diretamente com o interpretador para escrever seus programas. 
Python é Orientado a Objetos – Python da suporta ao estilo de programação Orientada 
a Objetos ou técnicas que encapsulam código dentro de objetos. 
Python é uma linguagem para iniciantes - Python é uma ótima linguagem para 
programadores de nível iniciante e suporta o desenvolvimento de uma ampla gama 
de aplicações, desde processamento de texto simples até navegadores web e jogos. 
 
Para aqueles que já tem uma ferramenta de python instalada podem copiar este 
código para testar: 
 
# Este é o meu primeiro programa Python. 
# Isto irá imprimir 'Olá, Mundo!' como a saída 
print("Olá, Mundo!") 
 
vocês podem mudar o valor dentro de print() 
 
1.3 Carreiras em Python 
 
Se você aprender bem Python, então você terá uma grande carreira pela frente. Aqui 
estão apenas algumas das opções de carreira onde o Python é uma habilidade 
essencial: 
 
9 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
 
 Desenvolvedor de jogos 
 Web designer 
 Desenvolvedor Python 
 Desenvolvedor full-stack 
 Engenheiro de aprendizado de máquina 
 Cientista de dados 
 Analista de informações 
 Engenheiro de dados 
 Engenheiro de DevOps 
 Engenheiro de software 
 
1.4 Características do Python 
 
A seguir estão características importantes da linguagem Python: 
 
Ela suporta métodos tanto da programação funcional e estruturada, além de 
orientação a objeto (posteriormente sendo referida como “OO”) 
Ela pode ser usada como uma linguagem de script ou pode ser compilada em byte-
code para construir grandes aplicativos. 
Ela fornece tipagem dinâmica de alto nível de dados e suporta verificação de tipos 
dinâmicos. 
Ela dá suporte a coleta de lixo (outros materiais podem se referir a 
feature/característica como garbage collector) automática. 
Ela pode ser facilmente integrada com C, C++, Java entre outras 
linguagens/ferramentas. 
 
2. Variáveis e tipos de dados em Python 
 
2.1 Identação 
 
A identação (através do tab, espaços ou até mesmo automaticamente a depender do 
ambiente de programação) refere-se aos espaços no início de uma linha de código. 
 
10 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
 
Onde em outras linguagens de programação a identação do código serve apenas para 
legibilidade e boa pratica, no Python ela é muito importante e um erro na identação 
ocasionará na quebra do código. 
 
Python usa a identação para indicar um bloco de código geralmente iniciado após o 
caractere ‘:’ (dois pontos): 
௙௚ 
if 5 > 2: 
 print("Cinco é maior que dois!") 
 
Python apresentará um erro se você falhar na identação: 
௥ 
if 5 > 2: 
print("Cinco é maior que dois!") 
 
O espaçamento mais comum equivale a quatro espaços/um tab. 
 
2.2 Variáveis 
 
Em Python, as variáveis são criadas quando você atribui um valor a elas: 
 
x = 5 
y = "Olámundo!" 
 
Python ao contrário de algumas linguagens como Java e C++ interpreta 
dinamicamente o tipo da variável e não é necessário declarar seu tipo, haverá uma 
interpretação inteligente através do valor atribuído a variável, as variáveis podem até 
mudar de tipo depois de definidas: 
 
x = 4 # x é do tipo int 
x = "Amanda" # x agora é do tipo str 
 
11 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
print(x) #print imprime o que há dentro dos parênteses 
2.3 Comentários 
 
O Python tem suporte para comentários para fins de documentação no código. 
 
Os comentários começam com um # e o Python interpretará o restante da linha como 
um comentário: 
 
#Isso é um comentário. 
print("Olá, mundo!") 
 
Os comentários podem ser usados para explicar o que está escrito no código, tornar 
o código mais legível e também podem ser usados para impedir a execução de linha(s) 
ao testar o código. 
 
Os comentários também podem ser colocados no final de uma linha e o Python 
ignorará o resto da linha: 
 
print("Olá, Mundo!") #Este é um comentário 
 
Exemplo de prevenção de execução de um código: 
#print("Olá, Mundo!") 
print("Sigamos em frente") 
 
Para fazer comentários em várias linhas em sequência pode-se utilizar “”” 3 aspas 
duplas para iniciar e novamente para finalizar colocando seu comentário no meio: 
""" 
Este é um comentário 
escrito em 
mais do que apenas uma linha 
 
12 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
""" 
print("Olá mundo!") 
2.4 Casting/Conversão 
 
Se você deseja especificar o tipo de dado de uma variável, isso pode ser feito através 
do cast. 
 
x = str(3) # x será '3' 
y = int(3) # y será 3 
z = float(3) # z será 3,0 
 
2.5 Identificar o tipo da variável 
 
Você pode obter o tipo de dados de uma variável com a função type(). 
 
x = 5 
y = "Joao" 
print(type(x)) #retornara int 
print(type(y)) #retornara str 
 
2.6 Strings/literais 
 
Palavras e texto em geral são armazenados em Strings que podem ser identificados 
através das aspas duplas ao redor do texto: 
 
x = "João" 
 
2.6a Strings são como arrays/listas 
 
Como muitas outras linguagens de programação populares, strings em Python são 
arrays de bytes que representam caracteres unicode. No entanto, o Python não possui 
 
13 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
um tipo de dados para caractere, um único caractere é simplesmente uma string com 
um comprimento 1. 
 
Colchetes podem ser usados para acessar elementos da string. 
 
a = "Olá, Mundo!" 
print(a[1]) #imprimira "l" pois as casas/espaços das strings/listas #começam a ser 
contadas a partir do 0 
 
2.6b Uso de repetições em Strings: 
 
Como strings são arrays, podemos fazer um laço de repetição através dos caracteres 
de uma string, com um loop for: 
 
for x in "banana": 
 print(x) 
#imprimira todas as letras de banana separadas por uma linha cada x representa 
cada caractere da palavra quando usado neste contexto 
 
2.6c Tamanho de Strings: 
 
Para obter o comprimento de uma string, use a função len(): 
 
a = "Olá, Mundo!" 
print(len(a)) #imprimira 11 pois além das letras e sinais espaço também conta como 
um caractere 
 
2.6d Checar existência de uma String em outra 
 
Para verificar se uma determinada frase ou caractere está presente em uma string, 
podemos usar a palavra-chave in: 
 
 
14 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
txt = "As melhores coisas da vida são de graça!" 
print("graça" in txt) #retornara True(verdadeiro) 
 
podendo inclusive ser usado em uma estrutura de decisão como o if que abordaremos 
mais tarde 
 
2.6e Cortando Strings 
 
Você pode retornar uma substring usando a sintaxe de corte. Especifique o índice 
inicial e o índice final, separados por dois pontos, para retornar uma parte da string: 
 
b = "Olá, Mundo!" 
print(b[2:5])#imprimira os caracteres da posição 2 até a posição 5 (não inclusa) 
gerando "á, " 
 
Cortando desde o início desde o índice 
 
Ao deixar de fora o índice inicial, o intervalo começará no primeiro caractere: 
 
Obtenha os personagens desde o início até a posição 5 (não incluído): 
 
b = "Olá, Mundo!" 
print(b[:5])#imprimira os caracteres desde o inicio até a posição 5 (não inclusa) 
gerando "Olá, " 
 
Cortando até o fim 
 
Ao deixar de fora o índice final, o intervalo irá até o final: 
 
Pegue os personagens da posição 2 e até o final: 
 
 
15 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
b = "Olá, Mundo!" 
print(b[2:])#imprimira os caracteres da posição 2 até o fim gerando "á, Mundo!" 
 
2.6f Modificando Strings 
 
Python tem um conjunto de métodos que você pode usar em strings. 
 
O método upper() retorna a string em letras maiúsculas: 
 
a = "Olá, Mundo!" 
print(a.upper()) #Imprimira "OLÁ, MUNDO!" 
 
O método lower() retorna a string em letras minúsculas: 
 
a = "Olá, Mundo!" 
print(a.lower()) #Imprimira "olá, mundo!" 
 
O método strip() remove qualquer espaço em branco no início ou no fim do texto: 
 
a = " Olá, Mundo! " 
print(a.strip()) # retorna "Olá, Mundo!" 
 
O método replace() substitui uma string por outra string: 
 
a = "Olá, Mundo!" 
print(a.replace("l", "m")) #imprime "Oma, Mundo!" 
 
O método split() divide a string em substrings se encontrar instâncias do separador 
entre parênteses: 
 
 
16 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
a = "Olá, Mundo!" 
print(a.split(",")) # retorna ['Olá', 'Mundo!'] uma lista composta de 2 strings que foram 
separadas pela ',' 
 
Pode-se concatenar duas strings através do +: 
 
a = "Olá" 
b = "Mundo" 
c = a + b 
print(c)#Mescla a variável a com a variável b na variável c gerando "OláMundo" caso 
queira separar as palavras deve-se ter um caractere de espaço em uma das strings 
 
2.6g Caracteres de escape 
 
Para inserir alguns caracteres especiais em uma string, use um caractere de escape 
que é uma barra invertida \ seguida pelo caractere que você deseja inserir. 
 
Um exemplo de um caractere especial é uma aspa dupla dentro de uma string que é 
cercada por aspas duplas: 
 
txt = "Nos somos o "Leão" do norte." #dara erro 
 
Para corrigir esse problema, use o caractere de escape \": 
 
txt = "Nos somos o \"Leão\" do norte."#o \" sera substituido pelo caractere das aspas 
na hora da interpretação da string 
 
Outros exemplos de caracteres especiais são: 
 
\' Aspas Simples 
\\ Barra invertida 
 
17 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
\n Nova Linha 
\t Tab 
 
2.7 Variáveis são sensíveis a variação de Caixa alta e baixa (letras maiúsculas 
e minúsculas) 
 
a = 4 
A = "Sandra" 
#A nao substituira a 
 
 
2.8 Nomes de variáveis 
 
Uma variável pode ter um nome curto (como x e y) ou um nome mais descritivo (idade, 
nomeDoCarro, volume_total). 
 
Regras para variáveis: 
 
1. Um nome de variável deve começar com uma letra ou o caractere sublinhado 
‘_’ 
2. Um nome de variável não pode começar com um número 
3. Um nome de variável pode conter apenas caracteres alfanuméricos e 
sublinhados (A-z, 0-9 e _ ) 
4. Os nomes das variáveis diferenciam maiúsculas de minúsculas (idade, Idadee IDADE são três variáveis diferentes) 
 
2.9 Nomes compostos 
 
Nomes de variáveis com mais de uma palavra podem ser difíceis de ler. 
 
Existem várias técnicas que você pode usar para torná-los mais legíveis por 
convenção em Python usa-se o snake_case: 
 
 
18 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
meu_nome_de_variavel = "João" 
 
Cada palavra é separada por um caractere de sublinhado, há outros como camelCase 
que também são validos por uma questão de compatibilidade, mas por pura 
convenção recomenda-se usar snake_case 
 
2.10 Output de variáveis 
 
A função print() do Python é frequentemente usada para gerar a saída das variáveis 
e escreve-las 
 
x = "Python é incrível" 
print(x) #imprimira na tela "Python é incrivel" 
 
2.11 Output de múltiplas variáveis 
 
Pode-se utilizar a função print() para gerar output de várias variáveis, separadas por 
uma vírgula: 
 
x = "Python" 
y = "é" 
z = "incrível" 
print(x, y, z) #imprimira na tela "Python é incrivel" 
 
+ também pode ser usado no lugar da virgula, porém deve-se haver cuidado pois ao 
usá-lo junto com números pode ser interpretado como o operador matemático ou até 
dar erro caso tente combinar um operador de string com um inteiro sem fazer a 
conversão(casting). 
 
2.12 Tipos de dados no Python 
 
 
19 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
Na programação, o tipo de dado é um conceito importante. Variáveis podem 
armazenar dados de diferentes tipos, e diferentes tipos podem fazer coisas diferentes. 
Python tem os seguintes tipos de dados: 
 
Tipo de texto: str “olá” 
Tipos numéricos: int(inteiros), float(racionais), complex(complexos, utilizam j no lugar 
do i) 1, 2.8, 1j operações matematicas do teclado funcionam neles 
Tipos de sequência: list, tuple, range 
Tipo de mapeamento: dict 
Tipos de conjunto: set, frozenset 
Tipo booleano: bool 
Tipos binários: bytes, bytearray, memoryview 
Nenhum Tipo: NoneType(parecido com o nulo/null de outras linguagens) 
 
2.13 Booleanos 
 
Na programação, muitas vezes você precisa saber se uma expressão é 
True(verdadeira) ou False(falsa). Você pode avaliar qualquer expressão em Python e 
obter uma das duas respostas, True ou False.Quando você compara dois valores, a 
expressão é avaliada e o Python retorna a resposta booleana: 
 
print(10 > 9) #True 
print(10 == 9) #False 
print(10 < 9) #False 
 
esse tipo de formato de dado é muito usado em estruturas de decisão e repetição 
 
2.14 Operadores 
 
Os operadores são usados para realizar operações em variáveis e valores. 
No exemplo abaixo, usamos o operador + para somar dois valores: 
 
 
20 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
print(10 + 5)#imprimira 15 
 
Python divide os operadores nos seguintes grupos: 
 
 Operadores aritméticos 
 Operadores de atribuição 
 Operadores de comparação 
 Operadores lógicos 
 Operadores de identidade 
 Operadores de associação 
 Operadores bit a bit 
 
Operadores aritméticos 
 
Os operadores aritméticos são usados com valores numéricos para realizar operações 
matemáticas comuns: 
 
Operador Nome Exemplo 
+ Adição x+y 
- Subtração x-y 
* Multiplicação x*y 
/ Divisão x/y 
% Módulo x%y 
** Exponenciação x**y 
// Divisão inteira x//y 
 
Operadores de atribuição 
 
Os operadores de atribuição são usados para atribuir valores a variáveis: 
 
 
21 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
Operador Exemplo Equivalência 
= x = 5 x = 5 
+= x += 3 x = x + 3 
-= x -= 3 x = x - 3 
*= x *= 3 x = x * 3 
/= x /= 3 x = x / 3 
%= x %= 3 x = x % 3 
//= x //= 3 x = x //3 
**= x **= 3 x = x ** 3 
&= x &= 3 x = x & 3 
|= x |= 3 x = x |= 3 
^= x ^= 3 x = x ^= 3 
>>= x >>= 3 x = x >> 3 
<<= x <<= 3 x = x << 3 
 
Operadores de comparação 
 
Os operadores de comparação são usados para comparar dois valores gerando um 
booleano: 
 
Operador Nome Exemplo 
== Igualdade x == y 
!= Diferente de x != y 
> Maior que x > y 
< Menor que x < y 
>= Maior ou igual a x >= y 
<= Menor ou igual a x <= y 
 
 
22 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
Operadores lógicos 
 
Os operadores lógicos são usados para combinar instruções condicionais: 
 
Operador Descrição Exemplo 
and Retorna True se ambas as 
declarações forem 
verdadeiras 
x < 5 and x < 10 
or Retorna True se uma das 
declarações for verdadeira 
x < 5 or x < 4 
not Inverte o resultado, 
retorna False se o 
resultado for verdadeiro e 
vice-versa 
not(x < 5 and x < 10) 
 
Operadores de identidade 
 
Os operadores de identidade são usados para comparar os objetos, não se tem 
valores iguais, mas se forem realmente o mesmo objeto, com o mesmo endereço de 
memória: 
 
Operador Descrição Exemplo 
is Retorna True se ambas as 
variáveis forem o mesmo 
objeto 
x is y 
is not Retorna True se ambas 
as variáveis não forem o 
mesmo objeto 
x is not y 
 
Operadores de associação 
 
Os operadores de associação são usados para testar se uma sequência existe em um 
objeto: 
 
 
23 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
Operador Descrição Exemplo 
in Retorna True se uma 
sequência com o valor 
especificado estiver 
presente no objeto 
x in y 
not in Retorna True se uma 
sequência com o valor 
especificado não estiver 
presente no objeto 
x not in y 
 
Operadores Bitwise Python 
 
Operadores bit a bit são usados para comparar números binários: 
 
Operador Nome Descrição 
& AND Define cada bit como 1 se 
ambos os bits forem 1 
| OR Define cada bit como 1 se 
um dos dois bits for 1 
^ XOR Define cada bit como 1 se 
apenas um dos dois bits 
for 1 
 
~ NOT Inverte todos os bits 
<< Empurrar para a esquerda Empurra o número para a 
esquerda preenchendo 
com zeros a casa mais a 
direita e retirando os bits 
mais à esquerda 
>> Empurrar para a direita Empurra o número para a 
direita preenchendo a 
casa a mais à esquerda 
com uma cópia da casa 
mais à esquerda e 
retirando os bits mais a 
direita 
 
 
24 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
Para demais métodos relacionados aos tipos de dados consultar a 
documentação da linguagem: https://docs.python.org/3/library/stdtypes.html 
 
 
3. Estruturas Condicionais 
 
3.1 If 
 
O Python se utiliza dos operadores booleanos de várias maneiras, dentre elas em 
condicionais e loops. 
 
Uma condicional básica é escrita usando a palavra-chave if: 
a = 33 
b = 200 
if b > a: 
 print("b é maior que a") 
#imprimira o que tem dentro da condicional ja que de fato b é maior que a 
 
Lembrando Python conta com o uso da indentação (espaço em branco/tab no início 
de uma linha) para definir o escopo no código. Outras linguagens de programação 
costumam usar chaves para essa finalidade. 
a = 33 
b = 200 
if b > a: 
print("b é maior que a") # desse jeito o print não estará sujeito a estrutura de decisão 
possivelmente causando um erro 
 
3.2 Elif 
 
A palavra-chave elif é uma maneira de dizer "se as condições anteriores não forem 
verdadeiras, tente esta condição". 
 
25 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
a = 33 
b = 33 
if b > a: 
 print("b é maior que a") 
elif a == b: 
 print("a e b são iguais") 
#Neste exemplo a é igual a b, então a primeira condição não é verdadeira, mas a 
condição em elif é verdadeira, então imprimimos na tela que "a e b são iguais". 
 
3.3 Else 
 
A palavra-chave else pega qualquer coisa que não seja capturada pelas condições 
anteriores. 
a = 200 
b = 33 
if b > a: 
 print("b é maior que a") 
elif a == b: 
 print("a e b são iguais") 
else: 
 print("a é maior que b") 
#Neste exemplo a é maior que b, então a primeira condição não é verdadeira, 
também a condição elif não é verdadeira, então vamos para a condição else e 
imprimimos na tela que "a é maior que b". 
 
Você também pode ter um else sem o elif: 
 
a = 200 
b = 33 
if b > a: 
 print("b é maior que a") 
 
26 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
else: 
 print("b não é maior que a") #essa opcao sera impressa ao executar o codigo 
 
 
3.3 Operadores complementares 
 
and e or também podem ser usados nas expressões para compor o resultado, além 
disso você pode aninhar estruturas de decisão por exemplo: 
 
x = 41 
if x > 10: 
 print("Acima de dez,") 
 if x > 20: 
 print("e também acima de 20!") 
 else: 
 print("mas não acima de 20.") 
#o codigo checara se x é maior que 10 tendo isso como verdadeiro checara se e 
maior que 20 e como tambem e verdadeiro executara o que a dentro desse if 
ignorando o else interno 
 
4. Estruturas de repetição 
 
Python tem 2 estruturas de repetição base while e for 
 
4.1 While 
 
Com o while podemos executar um conjunto de instruções repetidamente enquanto 
uma condição for verdadeira. 
 
i = 1 
while i < 6: 
 
27 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
 print(i) 
 i += 1 
#Imprime i enquanto i for menor que 6 
Nota: lembre-se de incrementar o i, senão resultará em um loop infinito. 
 
4.2 Break 
 
A instrução break pode parar o loop mesmo quando a condição while for verdadeira: 
 
i = 1 
while i < 6: 
 print(i)9 
 if i == 3: 
 break 
 i += 1 
#Sai do loop quando i for 3 
 
4.3 Continue 
 
A instrução continue para a iteração atual e continua com a próxima iteração: 
 
i = 0 
while i < 6: 
 i += 1 
 if i == 3: 
 continue 
 print(i) 
#pula para a próxima iteração se i for 3 efetivamente não executando o print quando 
for 3 
 
4.4 For 
 
 
28 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
O for é usado para iterar sobre uma sequência (que pode ser uma lista, uma tupla, um 
dicionário, um set ou até mesmo uma string). 
 
Com o for podemos executar um conjunto de instruções, uma vez para cada item de 
uma lista, tupla, conjunto etc. 
 
frutas = ["maçã", "banana", "cereja"] 
for x in frutas: 
 print(x) 
#Imprime cada fruta em uma lista de frutas 
 
Quando aplicado a uma string ele iterara em todos os caracteres dessa string. 
 
Break e Continue também são comandos validos no for com a mesma função 
 
4.5 Range() 
 
Para percorrer um bloco de código um determinado número de vezes, podemos usar 
a função range(),ela retorna uma sequência de números, começando em 0 por padrão 
e incrementando em 1 (por padrão também) e termina em um número especificado. 
 
for x in range(6): 
 print(x) 
#Observe que range(6) não retorna os valores de 0 a 6, mas os valores de 0 a 5. 
 
A função range() tem como padrão ter o 0 como valor inicial, porém é possível 
especificar o valor inicial adicionando um parâmetro: range(2, 6), que significa valores 
de 2 a 6 (mas não incluindo 6): 
 
for x in range(2, 6): 
 print(x) 
 
29 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
#Imprime de 2 a 5 
 
O padrão de incremento da função range() é 1 durante toda a sequência, porém é 
possível especificar o valor do incremento adicionando um terceiro parâmetro: 
range(2, 30, 3): 
 
for x in range(2, 30, 3): 
 print(x) 
#Começa com 2 depois 5 depois 8 e assim por diante até chegar ao último número 
antes de 30 na sequencia 
 
5. Listas 
 
No Python lidamos com conjuntos de variáveis utilizando as listas que são usadas 
para armazenar vários itens em uma única variável e são criadas usando colchetes: 
 
lista = ["maçã", "banana", "cereja"] 
print(lista) 
#A primeira linha cria uma lista com 3 strings representando as frutas, e a segunda 
imprime a lista com todos os elementos separados por , e envolta em colchetes 
 
 Os itens da lista são ordenados, alteráveis e permitem valores duplicados. 
 
 Os itens da lista são indexados, o primeiro item tem índice [0], o segundo item 
tem índice [1] etc. 
 
5.1 Tamanho de uma lista 
 
Para determinar quantos itens uma lista possui, usa-se a função len(): 
 
lista = ["maçã", "banana", "cereja"] 
 
30 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
print(len(lista)) #Imprime o número de itens da lista 
 
5.2 Acessando itens da lista 
 
Os itens da lista são indexados e você pode acessá-los atravez do número do índice: 
 
lista = ["maçã", "banana", "cereja"] 
print(lista[1]) #Imprime banana o segundo item da lista 
Nota: O primeiro item tem índice 0. 
 
Também pode-se usar Indexação negativa que significa começar do fim e ir de trás 
pra frente -1 refere-se ao último item, -2 refere-se ao penúltimo item etc. 
lista = ["maçã", "banana", "cereja"] 
print(lista[-1]) #imprime cereja afinal é o ultimo item da lista 
 
Pode se extrair uma sublista com a mesma sintaxe das substrings por exemplo: 
Ao especificar um intervalo, o valor de retorno será uma nova lista com os itens 
especificados. 
lista = ["maçã", "banana", "cereja", "laranja", "kiwi", "melão", "manga"] 
print(lista[2:5])#A sublista começará no índice 2 (incluso) e terminará no índice 5 
(não incluído) 
 
5.3 Verificando itens na lista 
 
Para determinar se um item especificado está presente em uma lista, use a palavra-
chave in: 
lista = ["maçã", "banana", "cereja"] 
if "maçã" in lista: 
 print("Sim, 'maçã' está na lista de frutas") 
#verifica se a maçã está na lista e corretamente imprime que ela está 
 
 
31 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
5.4 Modificando itens na lista 
 
Para alterar o valor de um item específico, utilize o número do índice: 
 
lista = ["maçã", "banana", "cereja"] 
lista[1] = "jabuticaba" 
print(lista) #imprimira a nova lista com jabuticaba no lugar de banana 
 
5.5 Adicionando itens na lista 
 
Para adicionar um item ao final da lista, use o método append(): 
 
lista = ["maçã", "banana", "cereja"] 
lista.append("laranja") 
print(lista) #imprimira a nova lista com a string "laranja" no final como o quarto item 
 
Para inserir um item na lista em um índice especifico, use o método insert(): 
 
lista = ["maçã", "banana", "cereja"] 
lista.insert(1, "laranja") 
print(lista) #imprime a nova lista com laranja inserida entre maçã e banana 
 
5.6 Removendo itens da lista 
 
O método remove() remove o item especificado. 
 
lista = ["maçã", "banana", "cereja"] 
lista.remove("banana") 
print(lista) #imprime a lista sem a banana que foi removida 
 
O método pop() remove o índice especificado. 
 
 
32 
Rua Professor Ângela Pinto,88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
lista = ["maçã", "banana", "cereja"] 
lista.pop(1) 
print(lista) #remove a banana que é o segundo item 
 
caso não seja especificado o índice pop() removerá o último item da lista 
 
5.6 Comprehension 
 
Assim como demonstrado na parte de laços de repetição, eles podem ser aplicados 
as listas tanto for quanto while quanto range (os números no range representarão os 
índices) 
 
Além dos laços apresentados antes também temos a List Comprehension que oferece 
uma sintaxe mais curta quando você deseja criar uma nova lista com base nos valores 
de uma lista existente. 
 
Por exemplo: 
 
Baseando-se em uma lista de frutas, você deseja criar uma nova lista, contendo 
apenas as frutas com a letra "a" no nome. 
 
Sem o uso de Comprehension, você terá que escrever um for com um teste 
condicional dentro dele: 
 
frutas = ["maçã", "banana", "cereja", "kiwi", "manga"] 
listanova = [] 
for x in frutas: 
 if "a" in x: 
 listanova.append(x) 
print(listanova) 
 
Com Comprehension, você pode fazer tudo isso com apenas uma linha de código: 
 
33 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
 
frutas = ["maçã", "banana", "cereja", "kiwi", "manga"] 
listanova = [x for x in frutas if "a" in x] 
print(listanova) 
 
Sintaxe: listanova = [expressão for item in iteravel if condicional == True] 
 
A condição é como um filtro que só aceita valores que dão True após serem avaliados 
o iterável pode ser qualquer conjunta, lista ou até mesmo range dentro da lista, a 
expressão é o(s) item(ns) do iterável a ser(em) avaliado(s) pelo condicional 
 
Além dos métodos apresentados outros métodos específicos relacionados a 
listas e estruturas de dados podem ser encontrados em: 
https://docs.python.org/3/tutorial/datastructures.html 
 
6. Funções e Expressões Lambda 
 
Uma função é um bloco de código que só é executado quando é chamado. 
 
Você pode repassar passar dados, também conhecidos como parâmetros, para uma 
função. 
 
Uma função pode retornar dados como resultado da execução dela 
 
6.1 Criando funções 
 
Em Python, uma função é definida usando a palavra-chave def: 
 
def minha_função(): 
 print("Olá eu sou uma função") 
 
 
34 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
Qualquer coisa que você escreveria em um código pode ser colocada dentro do bloco 
definido por uma função, é muito util para poder reutilizar códigos que serão usados 
repetidamente na execução da aplicação 
 
6.2 Chamando funções 
 
Para chamar uma função, use o nome da função seguido de parênteses: 
 
def minha_função(): 
 print("Olá eu sou uma função") 
minha_função()#esta linha executara o bloco de código definido imprimindo "Olá eu 
sou uma função" na tela 
 
6.3 Argumentos 
 
Informações/dados podem ser passados para funções como argumentos/parâmetros. 
 
Os argumentos são especificados após o nome da função, dentro dos parênteses. 
Você pode adicionar quantos argumentos quiser, basta separá-los com uma vírgula 
para cada novo argumento além do primeiro. 
 
def minha_função(nome): 
 print(nome + " Lacerda") 
minha_função("Joao") #imprime "Joao Lacerda" 
minha_função("Tiago")#imprime "Tiago Lacerda" 
minha_função("Linus")#imprime "Linus Lacerda" 
 
O exemplo acima tem uma função com um argumento (nome). Quando a função é 
chamada, passamos um primeiro nome, que é usado dentro da função para imprimir 
o nome completo 
 
6.3.b Numero de argumentos 
 
 
35 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
Por padrão, uma função deve ser chamada com o número correto de argumentos. 
Isso significa que, se sua função foi definida com e espera 2 argumentos, você deve 
chamar a função com 2 argumentos, nem mais, nem menos. 
 
def minha_função(primeironome, ultimonome): 
 print(primeironome + " " + ultimonome) 
minha_função("Linus", "Torvalds") #imprime o nome "Linus Torvalds" 
 
Esta função espera 2 argumentos caso você repasse 1 ou 3 ou qualquer coisa 
diferente de 2 argumentos a função retornará um erro 
 
Para todos os efeitos os parâmetros aceitam qualquer tipo de dado sejam 
strings literais, números ou até mesmo listas, etc. 
 
6.4 Retorno 
 
Para opcionalmente permitir que uma função retorne um valor, use a palavra chave 
return: 
 
def minha_função(x):1 
 return 5 * x 
print(minha_função(3)) #imprimira o retorno da função que é 5*3 que é 15 
print(minha_função(5)) #imprimira o retorno de função que é 5*5 que é 25 
print(minha_função(9)) #imprimira o retorno de função que é 5*9 que é 45 
 
6.5 Recursão 
 
Python também aceita recursão em suas funções, o que significa que uma função 
definida pode chamar a si mesma. 
 
 
36 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
A recursão é um conceito matemático aplicado a programação frequentemente. Isso 
significa que uma função chama a si mesma. Isso traz a vantagem de você pode 
percorrer os dados para chegar a um resultado. 
 
O desenvolvedor deve ter muito cuidado com a recursão, pois pode ser muito fácil 
escrever uma função que nunca termina, ou uma que usa quantidades excessivas de 
memória ou poder do processador. No entanto, quando escrita corretamente, a 
recursão pode ser uma abordagem de programação muito eficiente e 
matematicamente elegante. 
 
Neste exemplo, recursao_trigonometrica() é uma função que definimos para chamar 
a si mesma ("recursar"). Usamos a variável k como os dados, que decrementam (-1) 
toda vez que recursamos. A recursão termina quando a condição de maior que 0 da 
False (ou seja, quando é 0). 
 
Para um novo desenvolvedor, pode levar algum tempo para descobrir exatamente 
como isso funciona, a melhor maneira de descobrir é testando e modificando. 
 
def recursao_trigonometrica(k): 
 if(k > 0): 
 resultado = k + recursao_trigonometrica(k - 1) 
 print(resultado) 
 else: 
 resultado = 0 
 return resultado 
print("\n\nResultados da recursão") 
recursao_trigonometrica(6) #imprimira a sequência 1,3,6,10,15,21 separados por 
linha 
 
6.6 Funções Lambda 
 
Uma função lambda é uma pequena função anônima. 
 
 
37 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
Uma função lambda pode receber qualquer número de argumentos, mas pode ter 
apenas uma expressão. 
 
6.6.a Sintaxe 
 
lambda argumentos: expressão 
A expressão é executada e o resultado é retornado: 
x = lambda a: a + 10 
print(x(5)) #imprime 15 que é o resultado da expressão que é soma do argumento 
a que tem valor 5 com 10 
As funções lambda podem receber qualquer número de argumentos: 
 
Exemplo 
Multiplique o argumento a pelo argumento b e retorne o resultado: 
 
x = lambda a, b: a * b 
print(x(5, 6)) #imprime 30 que é o resultado da expressão que multiplica os 
argumentos a(5) por b(6) 
 
x = lambda a, b, c : a + b + c 
print(x(5, 6, 2)) #como esperado imprime 13 que é a soma dos 3 args 
 
6.6b Por que usar funções lambda? 
 
Assim como a recursão é um dos melhores aliados de um programador eficiente o 
poder do lambda é melhor demonstrado quando você os usa como uma função 
anônima dentro de outra função. 
 
Digamos que você tenha uma definição de função que recebe um argumento e esse 
argumento será multiplicado por um número desconhecido: 
def minhafunc(n):38 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
 return lambda a : a * n 
 
Use essa definição de função para fazer uma função que sempre duplique o número 
que você enviar: 
def minhafunc(n): 
 return lambda a : a * n 
meuduplicador = minhafunc(2) 
print(meuduplicador(11)) #imprime o resultado de meuduplicador que é uma função 
lambda que recebe um argumento e multiplica por 2 resultando em 22 já que o 
argumento repassado é 11 
 
Ou use a mesma definição da função para fazer uma função que sempre triplique o 
número que você envia: 
 
def minhafunc(n): 
 return lambda a : a * n 
meutriplicador = minhafunc(3) 
print(meutriplicador(11)) #imprime 33 
 
Ou use a mesma definição de função para fazer as duas funções, no mesmo 
programa: 
 
def minhafunc(n): 
 return lambda a : a * n 
meuduplicador = minhafunc(2) 
meutriplicador = minhafunc(3) 
print(meuduplicador(11)) #imprime 22 
print(meutriplicador(11)) #imprime 33 
 
7. Debug e tratamento de erros 
 
 
39 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
No processo de desenvolvimento erros(bugs) podem ocorrer, alguns erros são mais 
nítidos ao executar, podendo quebrar seu código completamente, as vezes o próprio 
ambiente de desenvolvimento gera um alerta sobre um possível erro, porém alguns 
erros podem ser silenciosos seu código até executa e em algum momento algo no 
meio do código leva a um resultado que não é o esperado, quando isso acontece o 
programador deve buscar estes erros mais a fundo, e por assim dizer colocar uma 
lupa sob seu código. 
 
Existem vários métodos de fazer o que chamamos de Debug. 
Um dos métodos mais antigos é colocar imprimir as variáveis a cada passo que o 
código dá populando todo o seu código com vários prints, assim podendo acompanhar 
o progresso e a variação delas ao longo da execução do código, é um método que 
apesar de primitivo é eficiente a depender do problema. 
 
Um método mais refinado porém que podemos usar é a própria ferramenta de Debug 
comum a ambientes integrados de desenvolvimento(IDEs), para começar escolhe-se 
um ponto de início para o debug que chamamos de breakpoint clicando ao lado da 
linha de código que deseja começar assim será inserido uma bolinha(a cor pode variar 
a depender do IDE e menos frequentemente o formato) 
 
 
 após isso deve-se clickar no botão de debug que normalmente se assemelha a um 
inseto na parte superior da tela que iniciará o modo de debug: 
 
 
 
ao abrir o modo de debug além do console que apresenta a saída e recebe a entrada 
do seu código temos também uma aba para acompanhar o estado das variáveis 
 
 
40 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
 
 
ao contrário de uma execução normal aqui você deve manualmente executar linha por 
linha, o console se comportara do mesmo jeito que antes, você poderá escrever algo 
quando for pedido, porém uma das abas acompanhará em tempo real as variáveis e 
seus valores como pode ser visto a esquerda da imagem incluindo dados mais 
complexos como listas que podem ser destrinchados em seus vários elementos por 
fim temos vários botões de setas que podem ser utilizados na parte superior dos mais 
importantes o Step Over e o Step Into enquanto o primeiro avança sobre o código de 
forma mais rápida ignorando alguns processos “internos” o Step Into procura de forma 
bem detalhada cada parte do processo inclusive códigos internos da própria 
linguagem caso você esteja usando, com esta ferramenta poderosa você estará muito 
bem preparado para caçar os bugs em seu código. 
 
8. Módulos em Python 
 
Um módulo é por assim dizer o mesmo que uma biblioteca de código, um arquivo 
contendo um conjunto de funções que você deseja incluir em seu aplicativo. 
 
Você pode nomear o arquivo do módulo como quiser, mas deve ter a extensão de 
arquivo .py sempre 
 
8.1 Criando um modulo 
 
Para criar um módulo basta salvar o código desejado em um arquivo com a extensão 
de arquivo .py,por exemplo: 
 
 
41 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
def saudacao(nome): 
 print("Olá, " + nome) 
 
Salve este código em um arquivo chamado meumodulo.py 
 
8.2 Utilizando um modulo 
 
Agora podemos usar o módulo que acabamos de criar, usando a palavra-chave 
import: 
 
Importe o módulo chamado meumodulo e chame a função de saudação: 
import meumodulo 
meumodulo.saudacao("Joao")#chamara o modulo importado e executara a função 
saudacao salva nele 
Nota: Ao usar uma função de um módulo, use a sintaxe: modulo_nome.funcao_nome. 
 
caso o modulo tenha múltiplas funções/variáveis e você apenas queira importar algo 
especifico pode usar a sintaxe: from modulo_nome import func/var_nome 
ao fazer isso quando for usar o elemento especifico se refira diretamente ao nome 
dele sem usar a sintaxe modulo_nome.funcao_nome, apenas funcao_nome 
 
8.3 Variáveis em um modulo 
 
Além do módulo poder conter funções, também pode conter variáveis de todos os 
tipos (arrays, dicionários, objetos etc): 
 
idade = 36 
Salve este código no arquivo memodulo.py 
 
Importe o módulo chamado meumodulo e acesse a variável idade: 
 
 
42 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
import meumodulo 
a = meumodulo.idade 
print(a) 
 
8.4 Renomeando Módulos 
 
Você pode criar um alias ao importar um módulo, usando a palavra-chave as: 
 
import meumodulo as mx #cria um alias/nome alternativo para o modulo chamado 
mx 
a = mx.idade 
print(a) 
 
8.5 Módulos Nativos 
 
Existem vários módulos nativos integrados ao Python, que você pode importar sempre 
que quiser. 
 
Exemplo 
Importe e use o módulo da plataforma: 
 
import platform #modulo nativo que prove informações sobre o seu sistema 
x = plataform.system() #system é uma função do modulo platform que retorna o 
nome do seu sistema operacional 
print(x) 
 
9. Leitura e Escrita 
 
9.1 Input do usuário 
 
Além do output através do print() Python permite receber a entrada do usuário 
também. 
 
43 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
Solicitando a ele através do comando input() que pode tanto estar vazio entre os 
parênteses quanto com algum texto para informar ao usuário o que está sendo pedido 
 
O exemplo a seguir solicita o nome de usuário e, quando você digita o nome, ele é 
impresso na tela: 
 
usuario = input("Digite o usuario:") 
print("Usuário é: " + usuario) 
Nota: O Python para de executar quando inicia a função input() e continua quando o 
usuário fornece alguma entrada. 
 
9.2 Utilizando arquivos 
 
A manipulação de arquivos é uma parte importante de muitas aplicações. Python tem 
várias funções para criar, ler, atualizar e deletar arquivos. A função principal para 
trabalhar com arquivos se chama open(). Ela recebe dois parâmetros: nome do 
arquivo e modo. 
 
Existem quatro métodos (modos) diferentes para abrir um arquivo: 
 
"r" - Read - Valor padrão. Abre um arquivo para leitura, gera erro se o arquivo não 
existir 
 
"a" - Append - Abre um arquivo para anexação, cria o arquivo se não existir 
 
"w" - Write - Abre um arquivo para escrita, cria o arquivo caso não exista"x" - Create - Cria o arquivo especificado, retorna um erro se o arquivo existir 
 
Além disso você pode especificar se o arquivo deve ser tratado como modo binário ou 
texto 
 
"t" - Text - Valor padrão. Modo de texto 
 
44 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
 
"b" - Binary - Modo binário (por exemplo, imagens) 
 
Sintaxe 
 
Para abrir um arquivo em modo leitura, basta especificar o nome do arquivo: 
 
f = open("demofile.txt") 
 
O código acima é o mesmo que: 
 
f = open("demofile.txt", "rt") 
 
Como "r" para leitura e "t" para texto são os valores padrão, você não precisa 
especificá-los. 
 
Nota: Certifique-se de que o arquivo existe, caso contrário você receberá um erro. 
 
9.3 Lendo arquivos 
 
Suponha que temos o seguinte arquivo, localizado na mesma pasta do Python: 
 
demofile.txt 
Olá! Bem-vindo ao demofile.txt 
Este arquivo é para fins de teste. 
Boa sorte! 
 
Recapitulando para abrir o arquivo, use a função open() que irá retornar um objeto de 
arquivo, que possui um método read() para ler o conteúdo do arquivo: 
 
f = open("demofile.txt", "r") 
print(f.read()) 
 
45 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
 
Se o arquivo estiver localizado em um diretório diferente, você terá que especificar o 
caminho do arquivo, assim: 
 
f = open("D:\\myfiles\demofile.txt", "r") #caso ele esteja na pasta myfiles da partição 
D 
print(f.read()) 
 
 
 
Ler partes do arquivo 
 
Por padrão, o método read() retorna o texto inteiro, mas você também pode especificar 
quantos caracteres deseja retornar: 
 
f = open("demofile.txt", "r") 
print(f.read(5)) #Retorna os 5 primeiros caracteres do arquivo 
 
Ler linha por linha 
 
Você pode retornar uma linha usando o método readline(): 
 
f = open("demofile.txt", "r") 
print(f.readline()) #Le uma linha do arquivo 
 
Ao chamar readline() duas vezes, você pode ler as duas primeiras linhas: 
 
f = open("demofile.txt", "r") 
print(f.readline())#Le a primeira linha do arquivo 
print(f.readline())#Le a linha seguinte no caso a segunda 
 
 
46 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
Também é possível fazer um loop pelas linhas do arquivo, para assim poder ler o 
arquivo inteiro, linha por linha: 
 
Exemplo 
Percorra o arquivo linha por linha: 
 
f = open("demofile.txt", "r") 
for x in f: 
 print(x) #cada x é uma linha do arquivo 
 
É uma boa prática sempre fechar o arquivo quando terminar de utilizar ele com a 
função close(): 
 
f = open("demofile.txt", "r") 
print(f.readline()) 
f.close() 
Nota: Você deve sempre fechar seus arquivos, em alguns casos, devido a 
bufferização do arquivo, as alterações feitas em um arquivo podem não aparecer até 
que você feche o arquivo. 
 
9.4 Escrevendo em arquivos 
 
Para escrever em um arquivo existente, você deve adicionar um parâmetro à função 
open(): 
 
"a" - Append - anexará o que for escrito ao final do arquivo 
 
"w" - Write - substituirá qualquer conteúdo existente 
 
 
Digamos que você quer abrir o arquivo "demofile.txt" e anexar novo conteúdo ao 
arquivo: 
 
47 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
 
f = open("demofile.txt", "a") 
f.write("Agora o arquivo tem mais conteúdo!") #escrevera no final do arq 
f.close() 
#abra e leia o arquivo após o anexo: 
f = open("demofile.txt", "r") 
print(f.read()) 
 
Agora caso você queira abrir o arquivo "demofile3.txt" e sobrescrever sobre o 
conteúdo existente: 
 
f = open("demofile.txt", "w") 
f.write("Uau! Eu deletei o conteúdo!") 
f.close() 
#abra e leia o arquivo após o anexo: 
f = open("demofile.txt", "r") 
print(f.read()) 
Nota: o método "w" substituirá o conteúdo do arquivo por inteiro. 
 
Criando um novo arquivo do zero 
 
Para criar um novo arquivo, use o método open(), com um dos seguintes parâmetros: 
 
"x" - Create - criará um arquivo, retornará um erro se o arquivo existir 
 
"a" - Append - criará um arquivo se o arquivo especificado não existir 
 
"w" - Write - criará um arquivo se o arquivo especificado não existir 
 
f = open("meuarquivo.txt", "x") #Cria um arquivo chamado "meuarquivo.txt" 
Resultado: um novo arquivo vazio é criado! 
 
 
48 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
f = open("meuarquivo.txt", "w")#Cria um novo arquivo apenas se ele não existir 
 
10. Paradigma Orientação a Objeto 
 
Python é uma linguagem de programação orientada a objetos. Quase tudo em Python 
é um objeto, com seus atributos (variáveis da classe) e métodos (funções da classe). 
 
Uma classe é como um construtor desses objetos, ou um projeto/blueprint para criar 
objetos a partir dela. 
 
10.1 Criando uma classe 
 
Para criar uma classe, usa a palavra-chave class: 
 
class MinhaClasse: 
 x = 5 
#Cria uma classe chamada MinhaClasse, com um atributo chamado x 
 
10.2 Criando um objeto 
 
Agora podemos usar a classe chamada MinhaClasse para criar objetos: 
 
p1 = MinhaClasse() #Ao chamar o nome da classe seguido de parênteses você 
estará chamando o método construtor interno da classe que criara um objeto a partir 
dos moldes dela 
print(p1.x) 
#Cria um objeto chamado p1 baseado na classe MinhaClasse e imprima o valor de 
x 
Nota: Similar ao comportamento dos módulos 
 
10.3 A função construtora: __init__() 
 
 
49 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
Os exemplos acima são classes e objetos em sua forma mais simples e não são 
realmente úteis em aplicações da vida real. Para entender o significado das classes, 
temos que entender a função __init__(). Todas as classes possuem uma função 
chamada __init__(), que sempre é executada quando a classe está sendo 
inicializada/instanciada. Use a função __init__() para atribuir valores às propriedades 
do objeto ou outras operações que são necessárias quando o objeto está sendo 
criado: 
 
 
 
Exemplo 
Crie uma classe chamada Person, use a função __init__() para atribuir valores para 
nome e idade: 
 
class Pessoa: 
 #self refere-se ao objeto hipotetico que será criado pela classe 
 def __init__(self, nome, idade): 
 self.nome = nome 
 self.idade = idade 
p1 = Pessoa("João", 36) 
print(p1.nome) 
print(p1.idade) 
Nota: A função __init__() é chamada automaticamente toda vez que a classe está 
sendo usada para criar um novo objeto. 
 
10.4 Métodos do objeto 
 
Objetos também podem conter métodos. Métodos são funções que pertencem ao 
objeto. 
 
Vamos criar um método na classe Pessoa para imprimir uma saudação e execute-a 
no objeto p1: 
 
 
50 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
class Pessoa: 
 def __init__(self, nome, idade): 
 self.nome = nome 
 self.idade = idade 
 def minhafunc(self): 
 print("Olá meu nome é " + self.nome) 
p1 = Pessoa("João", 36) 
p1.minhafunc() 
Nota: O parâmetro self é uma referência à instância atual da classe e é usado para 
acessar variáveis que pertencem à classe. 
10.5 Modificando atributos de um objeto 
 
Você pode modificar atributos em objetos como este: 
 
p1.idade = 40 #Define a idade de p1 para 40 
 
11. Herança 
 
A herança nos permite definir uma classe queherda todos os métodos e propriedades 
de outra classe. 
 
A classe mãe é a classe que está sendo herdada, também chamada de classe base 
ou superclasse. 
 
A classe filha é a classe que herda de outra classe, também chamada de classe 
derivada. 
 
11.1 Criando uma classe base 
 
Qualquer classe pode ser uma classe mãe, então a sintaxe é a mesma da criação de 
qualquer outra classe: 
 
Por exemplo crie uma classe chamada Pessoa, com as propriedades primeironome e 
ultimonome e um método printnome: 
 
51 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
 
class Pessoa: 
 def __init__(self, pnome, unome): 
 self.primeironome = pnome 
 self.ultimonome = unome 
 def printnome(self): 
 print(self.primeironome, self.ultimonome) 
#Use a classe Pessoa para criar um objeto e execute o método printnome: 
x = Pessoa("João", "Lacerda") 
x.printnome() 
 
11.2 Criando uma classe derivada 
 
Para criar uma classe que herda a funcionalidade de outra classe, coloque a classe 
pai como parâmetro ao criar a classe filha: 
 
Para Criar uma classe chamada Aluno, que herdará as propriedades e métodos da 
classe Pessoa: 
 
class Aluno(Pessoa): 
 pass 
Nota: use a palavra-chave pass quando não quiser adicionar outros atributos ou 
métodos à classe. 
 
Agora a classe Aluno tem as mesmas propriedades e métodos que a classe Pessoa. 
 
Por exemplo ao usar a classe aluno para criar um objeto e executa o método 
printnome a sintaxe é: 
 
x = Aluno("Henrique", "Pedrozo") #Por padrão o construtor da classe derivada 
recebe os mesmos parâmetros da classe base 
x.printnome() #E naturalmente como herda tudo pode usar os métodos 
 
52 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
 
11.3 Criando um construtor próprio 
 
Até agora criamos uma classe filha que herda as propriedades e métodos da sua mãe. 
 
Queremos adicionar uma função construtora __init__() à classe filha (em vez da 
palavra-chave pass). 
 
Nota: A função __init__() é chamada automaticamente toda vez que a classe está 
sendo usada para criar um novo objeto. 
 
Adicione a função __init__() à classe Aluno: 
 
class Aluno(Pessoa): 
 def __init__(self, pnome, unome): 
 #adicionar modificadores de atributos aqui etc. 
Quando você adiciona a função __init__(), a classe filha não herdará mais a função 
__init__() da mãe. 
 
Nota: A função __init__() da filha substitui a função __init__() herdada da mãei. 
 
Para manter a herança da função __init__() da mãe, adicione uma chamada para a 
função __init__() da mãe: 
 
class Aluno(Pessoa): 
 def __init__(self, pnome, unome): 
 Pessoa.__init__(self, pnome, unome) 
Agora adicionamos com sucesso a função __init__() e mantivemos a herança da 
classe mãe, e estamos prontos para adicionar funcionalidade na função __init__(). 
 
11.4 Utilizando a função super() 
 
 
53 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
Python também tem uma função chamada super() que fará com que a classe filha 
herde todos os métodos e atributos da sua mãe: 
 
class Aluno(Pessoa): 
 def __init__(self, pnome, unome): 
 super().__init__(pnome, unome) 
 
Ao usar a função super(), você não precisa usar o nome da classe base, a classe 
derivada herdará automaticamente os métodos e propriedades da sua mãe. 
 
11.5 Adicionando atributos 
 
Adicione um atributo chamado anodegraduacao à classe Aluno: 
class Aluno(Pessoa): 
 def __init__(self, pnome, unome): 
 super().__init__(pnome, unome) 
 self.anodegraduacao = 2022 
 
No exemplo abaixo, o ano de 2022 deve ser uma variável e passado para a classe 
Aluno ao criar objetos Aluno. Para isso, adicione outro parâmetro na função __init__(): 
 
Adicione um parâmetro de ano e passe o ano correto ao criar objetos: 
class Aluno(Pessoa): 
 def __init__(self, pnome, unome, ano): 
 super().__init__(pnome, unome) 
 self.anodegraduacao = ano 
x = Aluno("Gabriele", "Silva", 2022) 
 
11.6 Adicionando métodos 
 
Como adicionar um método chamado boasvindas à classe Aluno: 
 
 
54 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
class Aluno(Pessoa): 
 def __init__(self, pnome, unome, ano): 
 super().__init__(pnome, unome) 
 self.anodegraduacao = ano 
 def boasvindas(self): 
 print("Bem-vindo", self.primeironome, self.ultimonome, "à turma de", 
self.anodegraduacao) 
 
Se você adicionar um método na classe filha com o mesmo nome de uma função na 
classe mãe, a herança do método mãe será substituído. 
 
12. Polimorfismo 
 
A palavra polimorfismo significa ter muitas formas. Na programação, polimorfismo 
significa o mesmo nome sendo usado em diferentes funções (mas assinaturas 
diferentes). 
 
Exemplo de funções polimórficas: 
 
# Programa Python para demonstrar funções polimórficas 
# len() sendo usado para uma string 
print(len("Talentos")) 
# len() sendo usado para uma lista 
print(len([10, 20, 30])) 
 
Exemplo de funções polimórficas definidas pelo usuário: 
 
# Uma função simples do Python para demonstrar Polimorfismo 
def adicao(x, y, z = 0): 
 return x + y + z 
#Uma mesma função pode assumir formas diferentes também 
 
55 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
print(adicao(2, 3)) 
print(adicao(2, 3, 4)) 
 
Polimorfismo com métodos de classe 
 
O código abaixo mostra como o Python pode usar duas classes diferentes, da mesma 
maneira. Criamos um loop for que itera através de uma tupla de objetos. Em seguida, 
chamamos os métodos sem nos preocuparmos com a classe de cada objeto. 
Assumimos que esses métodos realmente existem em cada classe. 
 
class Brasil(): 
 def capital(self): 
 print("Brasilia é a capital do Brasil.") 
 def linguagem(self): 
 print("Português é a língua mais falada do Brasil.") 
 def type(self): 
 print("O Brasil é um país em desenvolvimento.") 
class EUA(): 
 def capital(self): 
 print("Washington, D.C. é a capital dos EUA.") 
 def linguagem(self): 
 print("Inglês é o idioma principal dos EUA.") 
 def type(self): 
 print("EUA é um país desenvolvido.") 
obj_brasil = Brasil() 
obj_eua = EUA() 
for pais in (obj_brasil, obj_eua): 
 pais.capital() 
 pais.linguagem() 
 pais.tipo() 
 
 
56 
Rua Professor Ângela Pinto, 88, Sala 5 Torre - Recife - PE - CEP 50710-010 - Fone: (81) 9 99046260 
CNPJ. 35.328.913/0001-16 - E-mail: suporte.cursos@admtec.org.br 
Polimorfismo com herança 
 
Em Python, o polimorfismo nos permite definir métodos na classe filha que têm o 
mesmo nome dos métodos na classe mãe. Na herança, a classe filha herda os 
métodos da classe mãe. No entanto, é possível modificar um método em uma classe 
filha herdado da classe mãe. Isso é particularmente útil nos casos em que o método 
herdado da classe mãe não se encaixa perfeitamente na classe filha. Nesses casos, 
reimplementamos o método na classe filha. Esse processo de reimplementação de 
um método na classe filha é conhecido como Redefinição de Método. 
class Passaro: 
 def intro(self): 
 print("Existem muitos tipos de pássaros.") 
 
 def voo(self): 
 print("A maioria dos pássaros pode voar, mas alguns não.") 
 
class pardal(Passaro): 
 def voo(self): 
 print("Os pardais podem voar.") 
 
class avestruz (Passaro): 
 def voo(self): 
 print("Avestruzes não

Continue navegando