82
Introdução à Python 3 Minicurso de Introdução a linguagem de programação Python. II JTIMS - Jornada de Tecnologias da Informação de Mato Grosso do Sul M 1

Introdução à Python - Módulo 1

  • Upload
    jhoonb

  • View
    225

  • Download
    7

Embed Size (px)

DESCRIPTION

Introdução à Python - Módulo 1 - II JTIMS - Mini curso

Citation preview

Page 1: Introdução à Python - Módulo 1

Introdução à Python 3

Minicurso de Introdução a linguagem de programação Python.

II JTIMS - Jornada de Tecnologias da Informação de Mato Grosso do Sul

M 1

Page 2: Introdução à Python - Módulo 1

Hello World!

Jhonathan Paulo Banczek.Ciência da Computação

jhoonb.com

Page 3: Introdução à Python - Módulo 1

CONTEÚDO PROGRAMÁTICO

Dividido em Módulos:

Módulo 1; (Primeira Aula).Módulo 2; (Segunda Aula).Módulo 3; (Terceira Aula).

Page 4: Introdução à Python - Módulo 1

CONTEÚDO PROGRAMÁTICO

Os módulos e arquivos usados, serão disponíveis no site após o termino de cada aula, url:

jhoonb.com/courses

Page 5: Introdução à Python - Módulo 1

CONTEÚDO PROGRAMÁTICO

Módulo 1:❏ Histórico e Uma Introdução sobre Python.

❏ Porque usar Python?❏ Quem usa?❏ Onde posso usar Python?❏ The Zen of Python.

❏ Linguagem Interpretada.❏ Python 3.❏ Instalando Python 3 (Linux, Windows).❏ Palavras Reservadas.

Page 6: Introdução à Python - Módulo 1

CONTEÚDO PROGRAMÁTICO

Módulo 1:❏ Operadores.

❏ Relacionais, Lógicos, Aritméticos, Bit a Bit, Precedência das operações.

❏ Delimitadores.❏ Tipos de Dados.❏ Built-in Functions❏ Python como uma calculadora. ( Exemplos… )❏ Declarando Variáveis.❏ Estruturas Condicionais e de Repetição. (Exemplos...)❏ Exercícios.

Page 7: Introdução à Python - Módulo 1

CONTEÚDO PROGRAMÁTICO

Módulo 2:1. Funções.

a. Definindo, parâmetros, variável global, multíplos retornos2. Paradigmas de Programação.

a. Exemplo de POO.b. Programação Funcional, List comprehension

3. Tipo de Dados (métodos).a. list, dic, str, tuple

4. Exemplos.5. Exercícios.

Page 8: Introdução à Python - Módulo 1

CONTEÚDO PROGRAMÁTICO

Módulo 3:1. Manipulação de Arquivos.

a. leitura, gravação, métodos.2. Exemplos.3. Exercícios.4. Módulos.5. Apresentando a Standard Library do Python.6. Mais conteúdo.7. Referências.

Page 9: Introdução à Python - Módulo 1

MÓDULO 1: Histórico e Uma Introdução sobre Python.

O que é Python?

Python é uma linguagem de programação de propósito geral, de alto nível, interpretada, multiparadigma, de tipagem dinâmica e forte.

Page 10: Introdução à Python - Módulo 1

MÓDULO 1: Histórico e Uma Introdução sobre Python.

Lançada em 1991 porGuido van Rossum

Page 11: Introdução à Python - Módulo 1

MÓDULO 1: Histórico e Uma Introdução sobre Python.

Guido estava entediadodurante o período de férias perto do natal e resolveu criar uminterpretador pra nova linguagem de script que ele estava

Page 12: Introdução à Python - Módulo 1

MÓDULO 1: Histórico e Uma Introdução sobre Python.

desenvolvendo… Começou a escrever códigos em seu computador pessoal, logomais ele batizou a linguagem com o nome de Python, em homenagem ao grupo humorístico Monty Python

Page 13: Introdução à Python - Módulo 1

MÓDULO 1: Histórico e Uma Introdução sobre Python.

Guido na Google:

Page 14: Introdução à Python - Módulo 1

MÓDULO 1: Histórico e Uma Introdução sobre Python.

Guido na Dropbox:

Page 15: Introdução à Python - Módulo 1

MÓDULO 1: Histórico e Uma Introdução sobre Python.

Em 1999, Guido enviou uma proposta de financiamento pro DARPA, chamado "Computer Programming for Everybody" e definiu os objetivos da linguagem:

Page 16: Introdução à Python - Módulo 1

MÓDULO 1: Histórico e Uma Introdução sobre Python.

❏ uma linguagem fácil e intuitiva enquanto que ainda sendo tão poderosa quanto as maiores competidoras;

❏ Código aberto, para que qualquer um possa contribuir para o desenvolvimento;

❏ código que fosse tão inteligível quanto inglês;❏ adequada para tarefas diárias, permitindo um tempo

de desenvolvimento mais curto;

Page 17: Introdução à Python - Módulo 1

MÓDULO 1: Histórico e Uma Introdução sobre Python.

Guido van Rossum:Benevolent Dictator for Life (BDFL)

(Ditador Benevolente Vitalício)

Page 18: Introdução à Python - Módulo 1

MÓDULO 1: Histórico e Uma Introdução sobre Python.

Porque usar Python?● Linguagem muito parecida com pseudo-código executável;● O uso de indentação para marcar blocos; (controverso)● Coletor de lixo para gerenciar automaticamente o uso da

memória;● Fácil de escrever e ler.● Programar se torna divertido e não tedioso.● Standard Library extremamente poderosa.● Comunidade produtiva, amigável e ativa!

Page 19: Introdução à Python - Módulo 1

MÓDULO 1: Histórico e Uma Introdução sobre Python.

Porque usar Python?

Preocupe-se com a Lógica e o problema em si o resto Python faz por você

Em outras linguagens PERDEMOS muito tempo tentando entender como escrever o código(ponteiros, alocação de memória, estrutura de dados...).

Page 20: Introdução à Python - Módulo 1

MÓDULO 1: Histórico e Uma Introdução sobre Python.

Porque usar Python?

Preocupe-se com a Lógica e o problema em si o resto Python faz por você

Para muito dos nossos problemas no dia a dia isso é POUCO necessário. É claro, existem casos específicos.

Page 21: Introdução à Python - Módulo 1

MÓDULO 1: Histórico e Uma Introdução sobre Python.

Quem usa Python?

Google, Dropbox, Youtube, NASA, CERN, CBPF, MIT, Linux, Canonical, CERPRO, IBM, Globo, Sun, Zope, Redhat, Lucas Films …

Aplicações Conhecidas:Maya, Blender, Youtube, Globo.com, Django, etc.

Page 22: Introdução à Python - Módulo 1

MÓDULO 1: Histórico e Uma Introdução sobre Python.

Onde posso usar Python?

Qualquer lugar ;)

Game and 3D Graphics, Software Development, Network Programming, Education, Scientific and Numeric, Desktop GUIs, Database Access, Web and Internet Development.

Page 23: Introdução à Python - Módulo 1

MÓDULO 1: Histórico e Uma Introdução sobre Python.

THE ZEN OF PYTHON

by Tim Peters

>>> import this

Page 24: Introdução à Python - Módulo 1

MÓDULO 1: Histórico e Uma Introdução sobre Python.

THE ZEN OF PYTHON

by Tim Peters❏ Bonito é melhor que feio.❏ Legibilidade conta.❏ Casos especiais não são especiais o bastante para se quebrar as regras.❏ Embora a simplicidade supere o purismo.❏ Deveria haver uma – e preferencialmente apenas uma – maneira óbvia de

se fazer isto.❏ Se a implementação é difícil de explicar, é uma má idéia.

Page 25: Introdução à Python - Módulo 1

MÓDULO 1: Linguagem Interpretada.

Python é uma linguagem interpretada, isso quer dizer que o código fonte (.py) é lido linha a linha pelo programa interpretador, gera-se o bytecode pelo compilador (.pyc) e então executado pela VM de Python.

Page 26: Introdução à Python - Módulo 1

MÓDULO 1: Linguagem Interpretada.

A linguagem é de altíssimo nível, mas ela também pode compilar seus programas para que a próxima vez que o executar não precise compilar novamente o programa. .pyc: .py compilado

.pyo: .py otimizado e compilado

Page 27: Introdução à Python - Módulo 1

MÓDULO 1: Linguagem Interpretada.

Interpretado é mais lento que compilado…

logo Python, é lento? Ruim? Não presta?Para a maioria dos nossos problemas ela é suficiente ou até melhor :)

Python é uma das linguagens interpretadas mais rápida e poderosa que existe.(PS: Eu não esqueci de Lua que é extremamente poderosa e muitas vezes melhor que Python)

Page 28: Introdução à Python - Módulo 1

MÓDULO 1: Começando

Agora, vamos entrar de vez no universo Python…

Um caminho sem volta.

Page 29: Introdução à Python - Módulo 1

MÓDULO 1: Python 3

Usaremos Python 3 no lugar de Python 2 para iniciar a programação com Python. Não existe problema algum entre uma e outra. As diferenças entre Python 2 e 3 podem ser vistas no Site oficial:

https://wiki.python.org/moin/Python2orPython3

Page 30: Introdução à Python - Módulo 1

MÓDULO 1: Diferenças

Guido van Rossum decidiu ao final do lançamento de Python 2x (2010) fazer uma limpeza na linguagem e arrumar muitas questões para tornarmais simples para os iniciantes. Python 2 terá suporte, correções debugs etc, porem implementações erecursos novos só em Python 3.

Page 31: Introdução à Python - Módulo 1

MÓDULO 1: Instalando Python3

Usuário de Windows. :(

Baixe o instalador no Site Oficial (Versão >= 3 ):link: http://python.org/download/

Page 32: Introdução à Python - Módulo 1

MÓDULO 1: Instalando Python3

Usuário de Windows.

Page 33: Introdução à Python - Módulo 1

MÓDULO 1: Instalando Python3

Usuário de Windows. Next… Finish

Page 34: Introdução à Python - Módulo 1

MÓDULO 1: Instalando Python3

Usuário de Windows.

1) IDLE - EDITOR DE TEXTO/INTERPRETADOR PARA ESCREVER OS CÓDIGOS2) LINHA DE COMANDO3) MANUAL.

Page 35: Introdução à Python - Módulo 1

MÓDULO 1: Instalando Python3

Usuário de Windows.

IDLE aberta e com uma linha executada

Page 36: Introdução à Python - Módulo 1

MÓDULO 1: Instalando Python3

Usuário de Windows.

Na IDLEClique em File/New Windowpara criar um novo documento de texto vazio, salvo-o com a extensão .pyNo seu diretório preferido.

Page 37: Introdução à Python - Módulo 1

MÓDULO 1: Instalando Python3

Usuário de Windows.

Escreva um código de teste,e IDLE de Python já destacaas palavras reservadas da linguagem e também indenta seucódigo automaticamente.

Page 38: Introdução à Python - Módulo 1

MÓDULO 1: Instalando Python3

Usuário de Windows.

Para executar seu código,clique em RUN/Run Moduleou pelo atalho [F5].O Interpretador será chamadocom seu código já em Execução

Page 39: Introdução à Python - Módulo 1

MÓDULO 1: Instalando Python3

Usuário de Windows.

Para executar um programa .py pelo terminal/linha de comando basta digitar na pasta do seu arquivo .py, o comando:

prompt> python3 <seuprograma>.py

Page 40: Introdução à Python - Módulo 1

MÓDULO 1: Instalando Python3

Usuário de Windows.

Fácil, sim ou sim?

:)

Page 41: Introdução à Python - Módulo 1

MÓDULO 1: Instalando Python3

Usuário de Linux. :)

Usuários linux (beseado em Debian)sudo apt-get install idle-python3.3

Ou pelo Central de Programas/Synapatic

Page 42: Introdução à Python - Módulo 1

MÓDULO 1: Palavras Reservadas

33 Palavras reservadas da linguagem.

False class finally is return

None continue for lambda try

True def from nonlocal while

and del global not with

as elif if or yield

assert else import pass

break except in raise

Page 43: Introdução à Python - Módulo 1

MÓDULO 1: Operadores

❏ Relacionais❏ Lógicos❏ Aritméticos❏ Bit a Bit❏ Precedência das operações

Page 44: Introdução à Python - Módulo 1

MÓDULO 1: Operadores Relacionais

Operador Descrição Exemplo

> Maior que 2 > 3

< Menor que 2 < 4

>= Maior igual que 2 >= 2

<= Menor Igual que 4 <= 4

!= Diferente de True != False

== Igual a True == 1

Page 45: Introdução à Python - Módulo 1

MÓDULO 1: Operadores Lógicos

Operador Descrição Exemplo

not Negação Lógica not True

and E lógico True and False

or OU lógico False or True

Page 46: Introdução à Python - Módulo 1

MÓDULO 1: Operadores Aritméticos

Operador Descrição Exemplo

+ Adição 2 + 3

- Subtração 2 - 2

* Multiplicação 2 * 3

/ Divisão 5/4

// Divisão Inteira 4/3

** Exponenciação 2**100

% Resto de Divisão(mod) 10 % 2

Page 47: Introdução à Python - Módulo 1

MÓDULO 1: Operadores bit a bit

Operador Descrição Exemplo

~ complemento bit a bit

~b

<< deslocar bits à esquerda

b << 1

>> deslocar bits à direita

b >> 1

& E (and) bit a bit b & 0x01

^ ou exclusivo (XOR) bit a bit b ^ 0x01

| ou (OR) bit a bit b | 0x01

Page 48: Introdução à Python - Módulo 1

MÓDULO 1: Precedência das Operações

Regra: PEMDASP = Parêntesis.E = Exponenciação.M = Multiplicação.D = Divisão.A = Adição.S = Subtração.

Page 49: Introdução à Python - Módulo 1

MÓDULO 1: Delimitadores

( ) [ ] { }

, : . ; @ = ->

+= -= *= /= //= %=

&= |= ^= >>= <<= **=

Page 50: Introdução à Python - Módulo 1

MÓDULO 1: Tipo de Dados

int Número inteiro 100000005644343

float Número ponto flutuante 45678.984

bool booleano True, False

str String (cadeia de carateres) “Bola”, ‘Gato’

complex Número complexo 3+2j

list lista heterogênea [1,2,3, “eggs”, “foo”]

dict array associativo (hash table) {“nota”: 10.1 }

set conjunto ordenado único {1,2,3,4,6,10}

tuple list imutável, tupla. (1,2,3,4, “eggs”)

Page 51: Introdução à Python - Módulo 1

MÓDULO 1: Built-in Functions

O interpretador Python tem uma série de funções e tipos embutidos que estão sempre disponíveis. A seguir será listada algumas funções uteis:

➢ float(x) -> converte o valor x para float.➢ int(x) -> converte o valor x para int.➢ str(x) -> converte o valor x para uma str.➢ print(x, y) -> imprime os dados na tela.➢ input(msg) -> recebe dados via teclado.

Page 52: Introdução à Python - Módulo 1

MÓDULO 1: Built-in Functions

O interpretador Python tem uma série de funções e tipos embutidos que estão sempre disponíveis. A seguir será listada algumas funções uteis:

➔ help([obj]) -> chama o sistema de ajuda do objeto.➔ len([obj]) -> retorna o tamanho do obj➔ list(x) -> converte x para list➔ tuple(x) -> converte x para tuple

Page 53: Introdução à Python - Módulo 1

MÓDULO 1: Built-in Functions

O interpretador Python tem uma série de funções e tipos embutidos que estão sempre disponíveis. A seguir será listada algumas funções uteis:

➔ range(inicio, fim-1, passo) -> retorna um objeto tipo range com a sequência gerada pelo intervalo definido entre inicio e fim-1, com o passo default: 1.

➔ type([obj]) -> retorna o tipo do objeto

Page 54: Introdução à Python - Módulo 1

MÓDULO 1: Python como uma calculadora

Usaremos o interpretador Python para fazermos alguns cálculos básicos:No terminal Linux, digite python3 e pressione [ENTER]

Page 55: Introdução à Python - Módulo 1

Exemplos e Exercícios.

MÓDULO 1: Python como uma calculadora

Page 56: Introdução à Python - Módulo 1

Para declarar variáveis em Python não é necessário especificar o tipo, pois a linguagem possui inferência de tipos.

x = 10 -> x é do tipo int

y = “eggs” -> y é do tipo str

Z = [2,34] -> Z é do tipo list

MÓDULO 1: Declarando Variáveis

Page 57: Introdução à Python - Módulo 1

Como a linguagem é de tipagem dinâmica, podemos alterar o tipo de uma variável apenas atribuindo outro valor a ela:

x = 10 -> x é do tipo int

x = “eggs” -> x é do tipo str e seu valor foi mudado.

x = [42,42] -> x é do tipo list

MÓDULO 1: Declarando Variáveis

Page 58: Introdução à Python - Módulo 1

Contúdo ela tem também tipagem FORTE. Evita que o programador faça coisas bizarras como somar uma variável tipo int com str:x = 10

x = x + ‘10’

TypeError: unsupported operand type(s) for +: 'int' and 'str'

MÓDULO 1: Declarando Variáveis

Page 59: Introdução à Python - Módulo 1

Para fazer isso é necessário converter a variável explicitamente.

x = 10

x = str(x) + ‘10’

print(x) -> ‘1010’

MÓDULO 1: Declarando Variáveis

Page 60: Introdução à Python - Módulo 1

Para fazer isso é necessário converter a variável explicitamente.

x = ‘10’

x = int(x) + 10

print(x) -> 20

MÓDULO 1: Declarando Variáveis

Page 61: Introdução à Python - Módulo 1

x = [] -> x tipo list

x = “” -> x tipo str

x = 1 -> x tipo int

x = True -> x tipo bool

x = () -> x tipo tuple

x = {} -> x tipo dict

x = 1.0 -> x tipo float

x = None -> x tipo indefinido (null, nil)

MÓDULO 1: Declarando Variáveis

Page 62: Introdução à Python - Módulo 1

As linguagens de programação possuem mecanismos para controlar o fluxo do programa, que são as Estruturas Condicionais e de Repetição.

❏ SE, SENAO. ❏ ENQUANTO, PARA, REPITA.

MÓDULO 1: Estrutura de Controle

Page 63: Introdução à Python - Módulo 1

No Python, o SE, ENTÃO é escrito desta maneira:

if <condicao> :

<indentacao> <comando>

else :

<indentacao> <comando>

<indentacao> = escopo.

MÓDULO 1: Estrutura de Controle: IF, ELIF, ELSE

Page 64: Introdução à Python - Módulo 1

ELIF

if <condicao>:

<indentacao> <comando>

elif <condicao>:

<indentacao> <comando>

else:

<indentacao> <comando>

MÓDULO 1: Estrutura de Controle: IF, ELIF, ELSE

Page 65: Introdução à Python - Módulo 1

Em Python, os blocos de códigos são delimitados por 4 espaços em branco (PEP 8), não usa delimitadores visuais como {, } no C e Java. Fica mais fácil e agradável de ler.

MÓDULO 1: Estrutura de Controle: blocos

Page 66: Introdução à Python - Módulo 1

Exemplo:nota = 7.5

if nota < 7.0:

print(“Aluno de Exame.”)

else:

print(“Aluno Aprovado.”)

MÓDULO 1: Estrutura de Controle: IF, ELIF, ELSE

Page 67: Introdução à Python - Módulo 1

Exemplo 2: situação-> Aluno aprovado, exame ou reprovado. Usando elif.nota = 6.5

if nota >= 7:

print(“Aluno Aprovado.”)

elif nota >=4 and nota < 7:

print(“Aluno de Exame.”)

else:

print(“Aluno Reprovado.”)

MÓDULO 1: Estrutura de Controle: IF, ELIF, ELSE

Page 68: Introdução à Python - Módulo 1

ifs aninhados:nota = 5.5

if nota < 7:

if nota >= 5:

print(“Aluno de Exame”)

else:

print(“Aluno Reprovado”)

else:

print(“Aluno Aprovado”)

MÓDULO 1: Estrutura de Controle: IF, ELIF, ELSE

Page 69: Introdução à Python - Módulo 1

Existem também as estruturas de repetição, em Python o while, e o for:while <condicao>:<indentacao> <comando>

MÓDULO 1: Estrutura de Controle: while, for

Page 70: Introdução à Python - Módulo 1

x = 0

while x < 10:

print(x)

x = x + 1 # ou x += 1

-----------------------------------------

saida: 0,1,2,3,4,5,6,7,8,9

-----------------------------------------

MÓDULO 1: Estrutura de Controle: while, for

Page 71: Introdução à Python - Módulo 1

x = 0

while True:

print(x)

x = x + 1 # ou x += 1

if x >= 10:

break

-----------------------------------------

saida: 0,1,2,3,4,5,6,7,8,9

-----------------------------------------

Comando: break, quebra o laço de for e while,

MÓDULO 1: Estrutura de Controle: while, for

Page 72: Introdução à Python - Módulo 1

x = 0

while True:

print(x)

x = x + 1 # ou x += 1

if x >= 10: #loop infinito

continue

-----------------------------------------

saida: 0,1,2,3,4,5,6,7,8,9, 10, 11, 12, … infinito

-----------------------------------------

Comando: continue, ignora o resto do bloco de código e continua o laço

MÓDULO 1: Estrutura de Controle: while, for

Page 73: Introdução à Python - Módulo 1

Laço for do Python é diferente das outras linguagens, não itera sobre os índices de uma sequência e sim sobre os próprios elementos da sequência:for <elemento> in <sequencia>:<indentação> <comando>

MÓDULO 1: Estrutura de Controle: while, for

Page 74: Introdução à Python - Módulo 1

Laço for:

for i in range(10):

print(i)

----------------------------

saída: 0,1,2,3,4,5,6,7,8,9

----------------------------

MÓDULO 1: Estrutura de Controle: while, for

Page 75: Introdução à Python - Módulo 1

Laço for:

for i in range(5, 10):

print(i)

----------------------------

saída:5,6,7,8,9

----------------------------

MÓDULO 1: Estrutura de Controle: while, for

Page 76: Introdução à Python - Módulo 1

Laço for:

for i in range(1, 10, 2):

print(i)

----------------------------

saída:1,3,5,7,9

----------------------------

MÓDULO 1: Estrutura de Controle: while, for

Page 77: Introdução à Python - Módulo 1

Laço for:lista = [1,3,5,”eggs”]

for elemento in lista:

print(elemento)

----------------------------

saída:1,3,5,”eggs”

----------------------------

MÓDULO 1: Estrutura de Controle: while, for

Page 78: Introdução à Python - Módulo 1

Laço for:monty = “python”

for letra in monty:

print(letra)

-----------------------------------

saída:”p”, “y”, “t”, “h”, “o”, “n”

-----------------------------------

MÓDULO 1: Estrutura de Controle: while, for

Page 79: Introdução à Python - Módulo 1

Laço for, com if e else:lista = [1,3,5,”eggs”]

for elemento in lista:

if elemento is ‘eggs’:

print(“ovo em inglés é: ”, elemento)

else:

print(elemento)

----------------------------

saída:1,3,5, “ovo em ingles é: eggs”

----------------------------

MÓDULO 1: Estrutura de Controle: while, for

Page 80: Introdução à Python - Módulo 1

Laço for, com break:lista = [1,2,3,4,5,-1,7,8,9,0,100]

for elemento in lista:

if elemento == -1:

break

else:

print(elemento)

----------------------------

saída:1,3,4,5

----------------------------

MÓDULO 1: Estrutura de Controle: while, for

Page 81: Introdução à Python - Módulo 1

Dúvidas?

MÓDULO 1: Dúvidas/exercícios

Page 82: Introdução à Python - Módulo 1

MÓDULO 1: FIM

Material disponível em:jhoonb.com/courses