Introdução Ao Python
Introdução Ao Python
Linguagem Python
Programação Aplicada à Internet das Coisas
IoT
Cristiano Teixeira
Creative Commons Zero v1.0 Universal
Introdução
• Surgiu em 1989;
• Criada por Guido van Rossum;
• Nome inspirado em Monty Python and the Flying Circus;
• Licença compatível com Software Livre;
• Linguagem de altíssimo nível;
• Tipagem Dinâmica;
• Multiparadigma (OO, funcional e procedural);
• Compilada + Interpretada;
• Visa aumentar a produtividade do programador;
Grupo humorístico
britânico Monty Python
Filosofia do Python
• Bonito é melhor que feio
• Explícito é melhor do que implícito
• Simples é melhor do que complexo
• Complexo é melhor do que complicado
• Legibilidade conta
A Imagem acima não tem nenhuma relação com o texto, mas não podia deixar
passar a oportunidade de fazer mais uma piada com Monty Python
Compilar e Interpretar
• O código fonte é traduzido pelo Python para bytecode,
que é um formato binário com instruções para o
interpretador. O bytecode é multiplataforma e pode ser
distribuído e executado sem fonte original.
• Por padrão, o interpretador compila o código e
armazena o bytecode em disco, para que a próxima
vez que o executar, não precise compilar novamente o
programa, reduzindo o tempo de carga na execução.
Compilar e Interpretar
• Quando um programa ou um módulo é evocado, o
interpretador realiza a análise do código, converte para
símbolos, compila (se não houver bytecode atualizado
em disco) e executa na máquina virtual Python.
• O bytecode é armazenado em arquivos com extensão
“.pyc” (bytecode normal) ou “.pyo” (bytecode
otimizado). O bytecode também pode ser empacotado
junto com o interpretador em um executável, para
facilitar a distribuição da aplicação, eliminando a
necessidade de instalar Python em cada computador.
Compilar e Interpretar
• Modo Interativo:
• O interpretador Python pode ser usado de forma interativa,
na qual as linhas de código são digitadas em um terminal.
Para evocar o modo interativo basta executar o
interpretador:
• O modo interativo é uma característica diferencial da
linguagem, pois é possível testar e modificar trechos de
código antes da inclusão do código em programas, fazer
extração e conversão de dados ou mesmo analisar o estado
dos objetos que estão em memória, entre outras
possibilidades.
Indentação
• Python foi desenvolvido para ser uma linguagem de fácil
leitura, com um visual agradável, frequentemente usando
palavras e não pontuações como em outras linguagens.
• Para a separação de blocos de código, a linguagem usa
espaços em branco e indentação ao invés de
delimitadores visuais como chaves (C, Java) ou palavras
(BASIC, Fortran,Pascal).
• Diferente de linguagens com delimitadores visuais de
blocos, em Python a indentação é obrigatória. O aumento
da indentação indica o início de um novo bloco, que
termina da diminuição da indentação.
Comentários
• O caractere # marca o inicio de comentário. Qualquer
texto depois do # será ignorado até o fim da linha ,
com exceção dos comentários funcionais.
• Para comentário em bloco, usa-se três aspas simples
ao início e ao fim do bloco.
Comentário Funcional
• É possível usar codificação diferente de ASCII() em
arquivos de código Python. A melhor maneira de fazê-lo
é através de um comentário adicional logo após a linha
#!:
# -*- coding: encoding -*-
• Definir o interpretador que será utilizado para rodar o
programa em sistemas UNIX, através de um comentário
começando com “#!” no inicio do arquivo, que indica o
caminho para o interpretador (geralmente a linha de
comentário será algo como “#!/usr/bin/envpython”).
Lista de Palavras Reservadas
• and • exec • or
• as • finally • pass
• assert • for • print
• break • from • raise
• class • global • return
• continue • if • try
• def • import • while
• del • in • with
• elif • is • yield
• else • lambda
• except • not
Operadores Matemáticos
+ Adição
- Subtração
* Multiplicação
/ Divisão
% Módulo
** Potenciação
// Divisão por Inteiro
Operadores Relacionais
== Igual à
!= Diferente de
< Menor que
<= Menor ou Igual à
> Maior que
>= Maior ou Igual à
is Identidade do Objeto
is not não Identidade de Objeto
Operadores Lógicos
and E
or OU
Outra escrita
& E
| OU
Variáveis
Variáveis controlam dados da memória e possuem um
nome e um tipo.
Vale lembrar que a tipagem dinâmica do Python
identifica automaticamente o tipo de dados baseado no
conteúdo atribuído.
Caso seja atribuído um conteúdo diferente a uma
mesma variável ela automaticamente muda seu tipo.
Variáveis
As variáveis são criadas automaticamente assim que
um valor é atribuído a elas.
A Sintaxe para atribuição é:
variável = valor
Exemplo:
x=15
nom="José Silva"
Variáveis
É possível remover uma variável com o comando del
Exemplo:
del nom
Atribuição de dados
A atribuição de dados no Python é feito com o operador
de atribuição =
Exemplo:
x =15
y=3.72
nom="José Silva"
lista_1=["Lucas Evangelista da Silva", 19, "Maria do Rosario", 83]
Tipos de dados
str string, ou cadeia de caracteres imutáveis ¹
unicode cadeia de caracteres imutáveis unicode
int número inteiro
float número com ponto flutuante
complex número complexo
bool booleano
list lista heterogênea mutável
tuple tupla imutável
dict dicionário, ou conjunto associativo
set conjunto não ordenado
frozenset conjunto não ordenado, sem elementos duplicados
Tipos de dados
É possível checar o tipo de dados de uma variável
dando a instrução type(variável)
Exemplo:
x=15
type(x)
nom="José Silva"
type(nom)
Exemplo:
print("Existe")
print(w)
# Zeros a esquerda
print ('Agora são %02d:%02d.' %(6, 30) )
# Octal e hexadecimal
print ('Decimal: %d, Octal: %o, Hexadecimal: %x' %(10, 10, 10) )
Blocos e Indentação
Todos os conteúdos das estruturas de bloco de controle
(if, while, for, funções ...) são considerados blocos
O controle do bloco é feito por indentação que consiste
em um recuo de 4 espaços.
Tudo que pertencer a aquele bloco específico ficará
com o recuo de 4 espaços.
Sua sintaxe é:
if teste lógico:
comandos executados caso verdadeiro
Decisão
Exemplos Simples:
if qt==0:
print("compre mais bolachas")
if qt==0:
print("compre mais bolachas")
else:
print("não acabou ainda")
Decisão
Exemplos com operadores lógicos:
if qt>=0 and qt<=20 :
print("O Numero está entre a faixa de zero e vinte")
else:
print("O Numero está fora da faixa")
if qt<0 or qt>20 :
print ("O Numero está fora da faixa")
else:
print ("O Numero está entre a faixa de zero e vinte")
Decisão
Exemplo de decisão aninhada com elif:
if qt==0:
print("é neutro")
elif qt>0 :
print("é positivo")
else:
print("só sobrou o negativo")
Repetições
As estruturas de repetição mais usadas em Python são
o while e o for.
Sendo o for uma estrutura muito versátil para se utilizar
em conjunto com variáveis compostas como veremos
adiante
Repetições
Estrutura while.
while <teste lógico> :
<instruções a serem executadas enquanto teste lógico for verdadeiro>
Repetições
Repetição infinita
while True:
print("Isto é uma repetição infinita")
x=9
while x!=0:
x=int(input("Digite um valor inteiro, ou zero para sair")
s=s+x
print("\n\nAqui acabamos a repetição\n\nO valor da soma é: ", s)
Repetições
Estrutura for para um número determinado de vezes.
for <variável_de_controle> in rage (quantidade):
<instruções a serem executadas enquanto teste lógico for verdadeiro>
Repetições
Exemplo for para um número determinado de vezes.
for w in rage (8):
print (w)
Ou de uma string:
for u in ("Boa Noite SP"):
print (u)
Repetições
O for aninhado :
# Insere o item ‘Pera’ na quarta posição, deslocando os demais itens posteriores uma
posição para frente
prato.insert(3, 'Pera')
Veremos alguns...
Métodos e Funções pré definidos
(Que podem ser usados em listas)
conjunto=[7, 3, 71, 4.62, 8, 10]
len(conjunto)
# Retorna a quantidade de elementos do conjunto
print(conjunto)
# Atente que ele altera o conjunto da própria lista para o
novo valor já ordenado.
Métodos e Funções pré definidos
(Que podem ser usados em listas)
print(conjunto)
# Atente que ele altera o conjunto da própria lista para o
novo valor já ordenado.
Métodos e Funções pré definidos
(Que podem ser usados em listas)
print(max(conjunto))
Métodos e Funções pré definidos
(Que podem ser usados em listas)
print(min(conjunto))
Métodos e Funções pré definidos
(Que podem ser usados em listas)
print(round(conjunto[3]))
Métodos e Funções pré definidos
(Que podem ser usados em listas)
print(sum(conjunto))
Métodos e Funções pré definidos
(Que podem ser usados em listas)
conjunto=[7, 3, 71, 4.62, 8, 10]
7 in conjunto
# Retorna True se o argumento antes do in for encontrado
dentro do conjunto, caso contrario retorna False
1 in conjunto
# teste para ver retornando False
'y' in 'Python'
#Lembrando que também vale para string
Métodos e Funções pré definidos
(Que podem ser usados em listas)
conjunto=[7, 3, 71, 4.62, 8, 10]
7 not in conjunto
# Retorna False se o argumento antes do in for encontrado
dentro do conjunto, caso contrario retorna True
1 not in conjunto
# teste para ver retornando True
def hello():
print ("Olá Mundo!!!")
>>> hello()
Olá Mundo!!!
Funções
• Parâmetros e argumentos
• Parâmetros são as variáveis que podem ser incluídas nos
parênteses das funções. Quando a função é chamada são
passados valores para essas variáveis. Esses valores são
chamados argumentos. O corpo da função pode utilizar
essas variáveis, cujos valores podem modificar o
comportamento da função.
Retorno de Funções
• O comando return é usado para retornar um valor de
uma função e encerrá-la. Caso não seja declarado um
valor de retorno, a função retorna o valor None (que
significa nada, sem valor).
Funções
• Exemplo de Função para calcular média entre dois
números:
def media(x,y):
z=(x+y)/2
return z
• Usando:
>>> media(2,8)
5
Valor Padrão
• É possível definir um valor padrão para os parâmetros da
função. Neste caso, quando o valor é
• omitido na chamada da função, a variável assume o valor
padrão.
• Exemplo:
• def calcula_juros(valor, taxa=10):
• juros = valor*taxa/100
• return juros
• >>> calcula_juros(500)
• 50.0
Escopo de Variáveis
• Toda variável utilizada dentro de uma função tem
escopo local, isto é, ela não será acessível por outras
funções ou pelo programa principal. Se houver variável
com o mesmo nome fora da função, será uma outra
variável, completamente independentes entre si.
Escopo de Variáveis
• Para uma variável ser compartilhada entre diversas
funções e o programa principal, ela deve ser definida
como variável global. Para isto, utiliza-se a instrução
global para declarar a variável em todas as funções
para as quais ela deva estar acessível. O mesmo vale
para o programa principal.
Escopo de Variáveis
• Exemplo:
def soma(x,y):
global total
total = x+y
print("Total soma = ",total)
#programa principal
global total
total = 10
soma(3,5)
print("Total principal = ",total)
• Resultado da execução:
• Total soma = 8
Módulos
Bibliotecas
Exceções
Objetos
➢ Python é uma linguagem orientada a objeto, sendo
assim as estruturas de dados possuem atributios (os
dados em si) e métodos (rotinas assosiadas aos dados)
➢ Quase tudo é objeto, mesmo os tipos básicos, como
números inteiros;
Objetos
Tanto os atributos quanto os métodos são acessados usando
ponto(.)
• http://df.python.org.br/pycubator/index.html
Criado por Noam Elfanbaum (@noamelf) and Udi Oron
(@nonZero). Traduzido Por Gilson Filho (@gilsonfilho)
Outras referências para estudo
• http://www.codeskulptor.org/
• http://excript.com/curso-de-python.html
• https://cadernoscicomp.com.br/tutorial/introducao-a-programacao-e
m-python-3/
• https://docs.python.org/3.7/index.html
• https://www.learnpython.org/
• https://www.tutorialspoint.com/python/index.htm
Licença de uso:
Creative Commons Zero v1.0 Universal
• Licença de uso: Creative Commons Zero v1.0 Universal
• Sem Direito de Autor nem Direitos Conexos
• A pessoa que associou um trabalho a este resumo dedicou o trabalho ao domínio público, renunciando
a todos os seus direitos sob as leis de direito de autor e/ou de direitos conexos referentes ao trabalho,
em todo o mundo, na medida permitida por lei.
• Você pode copiar, modificar, distribuir e executar o trabalho, mesmo para fins comerciais, tudo sem
pedir autorização. Veja Outras Informações abaixo.
• Outras Informações
• A CC0 não afeta, de forma alguma, os direitos de patente ou de marca de qualquer pessoa, nem os
direitos que outras pessoas possam ter no trabalho ou no modo como o trabalho é utilizado, tais como
direitos de imagem ou de privacidade.
• Desde que nada seja expressamente afirmado em contrário, a pessoa que associou este resumo a um
trabalho não fornece quaisquer garantias sobre o mesmo e exonera-se de responsabilidade por
quaisquer usos do trabalho, na máxima medida permitida pela lei aplicável.
• Ao utilizar ou citar o trabalho, não deve deixar implícito que existe apoio do autor ou do declarante.
• https://creativecommons.org/publicdomain/zero/1.0/deed.pt_BR
break