Introdução à Python - Módulo 1

Preview:

DESCRIPTION

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

Citation preview

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

Hello World!

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

jhoonb.com

CONTEÚDO PROGRAMÁTICO

Dividido em Módulos:

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

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

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.

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.

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.

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.

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.

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

Lançada em 1991 porGuido van Rossum

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

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

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

Guido na Google:

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

Guido na Dropbox:

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:

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;

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

Guido van Rossum:Benevolent Dictator for Life (BDFL)

(Ditador Benevolente Vitalício)

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!

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

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.

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.

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.

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

THE ZEN OF PYTHON

by Tim Peters

>>> import this

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.

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.

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

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)

MÓDULO 1: Começando

Agora, vamos entrar de vez no universo Python…

Um caminho sem volta.

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

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.

MÓDULO 1: Instalando Python3

Usuário de Windows. :(

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

MÓDULO 1: Instalando Python3

Usuário de Windows.

MÓDULO 1: Instalando Python3

Usuário de Windows. Next… Finish

MÓDULO 1: Instalando Python3

Usuário de Windows.

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

MÓDULO 1: Instalando Python3

Usuário de Windows.

IDLE aberta e com uma linha executada

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.

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.

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

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

MÓDULO 1: Instalando Python3

Usuário de Windows.

Fácil, sim ou sim?

:)

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

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

MÓDULO 1: Operadores

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

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

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

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

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

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.

MÓDULO 1: Delimitadores

( ) [ ] { }

, : . ; @ = ->

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

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

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

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.

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

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

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]

Exemplos e Exercícios.

MÓDULO 1: Python como uma calculadora

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

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

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

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

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

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

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

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

ELIF

if <condicao>:

<indentacao> <comando>

elif <condicao>:

<indentacao> <comando>

else:

<indentacao> <comando>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Dúvidas?

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

MÓDULO 1: FIM

Material disponível em:jhoonb.com/courses