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

Introdução Ao Python

Direitos autorais
© © All Rights Reserved
Formatos disponíveis
Baixe no formato PPTX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
15 visualizações

Introdução Ao Python

Direitos autorais
© © All Rights Reserved
Formatos disponíveis
Baixe no formato PPTX, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 96

Introdução a

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

Zen of Python completo


Digite no python o comando abaixo para lê-lo:
import this

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)

Se for no modo compilado não esqueça do print()


x=15
print(type(x))
Entrada de dados no terminal
A entrada de dados no modo Interativo ou Script em
terminal se dá pelo comando input
Na representação, variável recebe valor da entrada
Exemplo:
x=input()

Para adicionar uma mensagem na entrada, basta


escrever um texto dentro do parênteses:
x=input("Digite um Nome")
Entrada de dados no terminal
A entrada de dados normal vai adicionar o conteúdo
sempre na forma de string, mesmo se digitado
explicitamente um número.
Para indicarmos que a entrada é de um tipo diferente
temos que fazer a conversão dela antes de atribuir o
valor a variável.
Exemplo:
w=int(input("Digite um Número"))
r=float(input("Digite um Valor"))
h=bool(input("Digite True ou False"))
Saída de dados no terminal
A saída de dados no modo Interativo ou Script em
terminal se dá pela função print()

Exemplo:
print("Existe")
print(w)

Para intercalar valores e variáveis separe-os por virgula:


print(w, “ Existe")
Saída de dados no terminal
É possível usar estilos de formatação variados no
python veja os exemplos:
nom="José"

#estilo de formatação problematico


print("Bom dia" + nom + "!")

#estilo de formatação tipo C


print("Bom dia %s !" % nom )

#estilo de formatação novo


print("Bom dia {} !" .format(nom))
Saída de dados no terminal
Outro exemplo de formatação:

>>> print('{0} {1} {0} {0} {1}' . format("tchu", "tcha"))

tchu tcha tchu tchu tcha

Desculpe, por isso!


Saída de dados no terminal
Outro exemplo de formatação:

tabela = '{dsemana:40} {prato:10}'


print(tabela.format(dsemana='Segunda', prato='Ovo'))
print(tabela.format(dsemana='Terça', prato='Carne Moída'))
Saída de dados (Interpolação)
Operador “%” é usado para fazer interpolação de
strings. A interpolação é mais eficiente no uso de
memória do que a concatenação convencional.
Símbolos usados na interpolação:
▪ %s: string.
▪ %d: inteiro.
▪ %o: octal.
▪ %x: hexacimal.
▪ %f: real.
▪ %e: real exponencial.
▪ %%: sinal de percentagem
Saída de dados (Interpolação)
Formatação de números:

# Zeros a esquerda
print ('Agora são %02d:%02d.' %(6, 30) )

# Real (número após o ponto controla as casas decimais)


print ('Percentagem: %.1f%%, Exponencial:%.2e' %(5.33333, 0.00314) )

# 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.

OBS: Os programas de edição de códigos voltados para


Python já consideram a tabulação (tecla Tab) como 4
espaços, mas sempre é bom conferir.
Blocos e Indentação
A linha anterior ao inicio do bloco é demarcada por dois
pontos :
Exemplos:
if x==1:
print("Existe")
else:
print("Não existe")
#-----
while True:
print("está valendo")
#-----
funcao ():
x=x+1
return x
Decisão
A estrutura de decisão mais básica em Python é a
estrutura if (se, em português). E Sempre conterá um
teste relacional/lógico.

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")

O break interrompe a repetição a qualquer momento,


mesmo se o teste lógico ainda for verdadeiro
while True:
valor=(int(input("Isso será uma repetição infinita a menos que digite 7")
if valor==7:
break
Repetições
O while pode ser usado para uma quantidade
determinada de vezes, porém você tem de fazer este
controle.
x=0
while x<20:
print("O valor agora é: ",x)
x=x+1
print("\n\nAqui acabamos a repetição\n\n")
Repetições
Mas o while é também usado para números
indeterminados de vezes.

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)

for z in rage (3, 11, 2):


print (w)

for q in rage (11, 3, -2):


print (q)
Repetições
O for também pode ser usado para “varrer” os itens
dentro de uma lista ou tupla:
lista=[1.4, 33, "casa", 7.2, 99, "Outros"]
for t in lista :
print (t)

Ou de uma string:
for u in ("Boa Noite SP"):
print (u)
Repetições
O for aninhado :

for l in range (3) :


for k in range (10) :
print (l, k)
print(“------------------”)
Strings
Dados do tipo String (str), podem ser delimitados por
aspas simples, aspas duplas ou aspas triplas.
>>> 'simples'
'simples'
>>> "dupla"
’dupla’
>>> """tripla"""
'tripla'
>>> """tripla possui uma propriedade especial: elas
ignoram quebra de linha, portanto a string aparece como
ela eh escrita"""
Strings
Modos especiais de string:
raw string
unicode string
>>> print(r'C:\diretorio\novo\nada.exe')
C:\diretorio\novo\nada.exe
>>> print(u"\u2192")

Strings
String são imutáveis:
Ou seja não podem ser alteradas:
>>> s="nom dia"
>>> s[0]="B"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
>>>

Porem podem ser reatribuidas:


>>> s="nom dia"
>>> s="B"+s[1:]
>>> s
'Bom dia'
>>>
Strings
String podem ser concatenadas com sinal +:
>>> s="Bom dia "
>>> n="José"
>>>s+b
Bom dia José

Porem O operador ’+’ não converte automaticamente


números ou outros tipos em strings. A função str() converte
valores para sua representação em string:
>>>pi=3.14
>>> text = 'o valor de pi é = ' + str(pi)
o valor de pi é = 3.14
Strings (Métodos e Funções)
Função ou Método: Descrição:
Exemplo:
len() Comprimento da frase (Quantidade d e Caracteres)
len(string)
.count() Conta o numero de ocorrências do argumento em uma string
palavra.count(‘caractere’)
.find() Procura por um caractere numa string, mostrando seu
frase.find(‘string’) índice/posição, ou retornando -1, caso não encontre)
.upper() Retorna todos os caracteres em maiúsculos.
palavra.upper()
.lower() Retorna todos os caracteres em minúsculos.
palavra.lower()
.capitalize() Retorna a string com seu primeiro caractere em maiúsculos.
palavra.capitalize()
.titlle() Deixa o primeiro caractere de todas as palavras em maiúsculo.
frase.title()
Strings (Métodos e Funções)
Função ou Método: Descrição:
Exemplo:
strip() Elimina todos os espaços no início e no fim
frase.strip()
.isalpha() Retorna False se a string contiver algum caractere que não seja
palavra.isalpha() letras
.join() Junta cada item da string com um delimitador especificado
“delimitador”.join(string)
.split() Separa uma string conforme um delimitador
palavra.split(“delimitador”)
.replace() Substitui string1 encontrada na frase pela string2.
frase.replace(‘string1’,
’string2’)
Strings Exemplo

frase="estamos estudando python "


print(frase)
print('Tamanho: ', len(frase))
print('Existem ', frase.count('e'), 'letras \'e\' na frase')
print('Foi encontrada a string \'py\', na composição', frase.find('py'), 'da frase')
print('Todos os primeiros caracteres maiúsculos: ', frase.title())
print('Frase sem espaços no inicio e no fim da frase: ', frase.strip())
print('Toda frase em letras maiúsculas: ', frase.upper())
print('Toda frase em letras minúsculas: ', frase.lower())
print('Primeiro caractere da string em maúsculo: ', frase.capitalize())
print('Esta string possui somente letras?', frase.isalpha())
print('Separando caracteres por um delimitador: ', ','.join(frase))
print('Separando string quando encontrado um delimitador: ', frase.split(" "))
Strings Exemplo (resultado)
Lista
Essencialmente listas são um sequência de variáveis
que são mutáveis, ou seja, podem ser manipuladas
livremente após serem definidas.

As listas aceitam qualquer tipos de dados, inclusive é


possível criar lista dentro de uma lista (isso deixa os
novatos em programação doidos, mas fica fácil depois
de praticar)
Lista (EXEMPLOS)

prato=['Arroz', 'Feijão', 'Batata', 'Cenoura', 4.16, 7, False]


print(prato) # imprime todos os elementos
print(prato[0]) # imprime o primeiro elemento
print(prato[6]) # imprime o sétimo elemento
print(prato[2:4]) # imprime entre o terceiro e quinto
print(prato[2:]) # imprime a partir do terceiro elemento
print(prato[:2]) # imprime até o segundo elemento
print(prato[::-1] # imprime os todos elementos em ordem
inversa
Lista (EXEMPLOS)
prato=['Arroz', 'Feijão', 'Batata', 'Cenoura', 4.16, 7, False]
-----
# Acrecenta o item ‘Macarrão’ ao fim da lista
prato.append('Macarrão')

# Apaga o segundo item da lista


del prato[1]

# Insere o item ‘Pera’ na quarta posição, deslocando os demais itens posteriores uma
posição para frente
prato.insert(3, 'Pera')

# remove um item baseado no conteúdo, não importando a posição


prato.remove(False)
Lista (EXEMPLOS)

# Acrecenta uma lista inteira no final da sua lista


prato.extend(['Abobora', 'Alface', 'Couve'])

# Apaga todo o conteúdo da lista


prato.clear()
Métodos e Funções pré definidos
(Que podem ser usados em listas)
Como veremos mais adiante o Python trata a maioria
das coisas que manipula como objetos da programação
orientada a objetos.

Da mesma forma ele possui alguns métodos e funções


já inclusos que podem ser usados para o tratamento de
listas, tuplas e strings.

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

#pode ser usada em strings


titulo="As Aventuras do Barão de Münchhausen"
len(titulo)
Métodos e Funções pré definidos
(Que podem ser usados em listas)

conjunto=[7, 3, 71, 4.62, 8, 10]


conjunto.sort()
# Retorna os elementos do conjunto em ordem

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)

conjunto=[7, 3, 71, 4.62, 8, 10]


conjunto.reverse()
# Retorna os elementos do conjunto em ordem inversa

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)

conjunto=[7, 3, 71, 4.62, 8, 10]


max(conjunto)
# Retorna o maior elementos do conjunto

print(max(conjunto))
Métodos e Funções pré definidos
(Que podem ser usados em listas)

conjunto=[7, 3, 71, 4.62, 8, 10]


min(conjunto)
# Retorna o menor elementos do conjunto

print(min(conjunto))
Métodos e Funções pré definidos
(Que podem ser usados em listas)

conjunto=[7, 3, 71, 4.62, 8, 10]


round(conjunto[3])
# Retorna o valor inteiro arredondado

print(round(conjunto[3]))
Métodos e Funções pré definidos
(Que podem ser usados em listas)

conjunto=[7, 3, 71, 4.62, 8, 10]


sum(conjunto)
# Retorna a soma dos elementos

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

'i' not in 'Python'


#Lembrando que também vale para string
Tupla
Dicionário
Blocos
Objeto
Python é uma linguagem orientada a objeto, ou seja, as
estruturas de dados possuem atributos (relacionados
aos dados em si) e métodos (rotinas associadas aos
dados). Tanto os atributos quanto os métodos são
acessados usando ponto (.).
Referência ao atributo do objeto:
objeto.atributo
Referência ao método do objeto:
objeto.método(argumentos)
Funções
• Funções são pequenos trechos de código reutilizáveis.
Elas permitem dar um nome a um bloco de comandos
e executar esse bloco, a partir de qualquer lugar do
programa.
Funções
• Funções são definidas usando a palavra-chave def,
conforme sintaxe a seguir:

def <nome_função> (<definição dos parâmetros >) :


<Bloco de comandos da função>
Funções
• exemplo de função:

def hello():
print ("Olá Mundo!!!")

• Para usar a função, basta chamá-la pelo nome:

>>> 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(.)

Para mostrar um atributo:


➢ ➢ ➢ print objeto.atributo

Para executar um método:


➢ ➢ ➢ objeto.metodo(argumentos)

Mesmo um método sem argumentos precisa do parênteses:


➢ ➢ ➢ objeto.metodo()
Classes
Em Python:
➢ Tipos e classes são unificados;
➢ Os operadores são na verdade chamadas para
métodos especiais;
Classes
• Novos objetos são criados a partir das classes através
de atribuição. O objeto é uma instância da classe, que
possui características próprias.
• Quando um novo objeto é criado, o construtor da
classe é executado. Em Python, o construtor é um
método especial, chamado __new__(). Após a
chamada ao construtor, o método __init__() é
chamado para inicializar a nova instância.
• Em Python, as classes são definidas utilizando a
palavra reservada class
Classes
• Métodos de objeto podem usar atributos e outros métodos
do objeto. A variável self que representa o objeto também
precisa ser passado de forma explícita.
• Métodos estáticos são aqueles que não tem ligação com
atributos do objeto ou da classe. Funcionam como as
funções comuns.
• Um objeto continua existindo na memória enquanto existir
pelo menos uma referência a ele. O interpretador Python
possui um recurso chamado coletor de lixo (Garbage
Collector) que limpa da memória objetos sem referências.
Quando o objeto é apagado, o método especial __done__()
é evocado.
Coletor de Lixo
• Python utiliza um mecanismo bem simples como
coletor de lixo: contagem de referências.
• Isso significa que para cada objeto é mantido um
registro do número de referências existentes para ele.
Quando esse número chegar a zero, ou seja, quando
o objeto não estiver mais sendo usado, ele é
destruído.
Polimorfismo
• As chamadas de função em Python são universais ou
genéricas sem determinação de tipo. Por isso,
sobrecarga não é suportada na linguagem.
• Graças à tipagem dinâmica, o polimorfismo de tipos
acontece à todo momento!
Manipulando arquivos de Texto
Conectando a um Banco de dados
Python e Arduino
Python e Raspberry Pi
Referências da Apostila
• Python para Desenvolvedores / Luiz Eduardo Borges
Rio de Janeiro, Edição do Autor, 2010, ISBN 978-85-909451-1-6

• 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

Você também pode gostar