python for zombies (very basic level)

77
Python 3 for Zombies (very basic level) Fernando Masanori FATEC Centro Paula Souza @fmasanori Brain Hack Yeah! Acreditem, ex-aluno meu

Upload: fernando-masanori

Post on 26-May-2015

6.929 views

Category:

Education


0 download

DESCRIPTION

Introdução à programação com Python, exemplos legais no final! Resumo no vídeo: http://www.youtube.com/watch?v=Zp7Y8goUI70

TRANSCRIPT

Page 1: Python for zombies (very basic level)

Python 3 for Zombies (very basic level) Fernando Masanori – FATEC – Centro Paula Souza

@fmasanori

Brain Hack Yeah!

Acreditem, ex-aluno meu

Page 2: Python for zombies (very basic level)

Se quiser estudar sozinho, use o livro abaixo

Page 3: Python for zombies (very basic level)

Ou este para aprender

Page 4: Python for zombies (very basic level)

Mas, se precisa de mais ajuda para aprender a programar, continue aqui...

Page 5: Python for zombies (very basic level)

Errando se aprende

Page 6: Python for zombies (very basic level)

Errando se aprende

No Python os espaços iniciais são importantes

Page 7: Python for zombies (very basic level)

Errando se aprende

Page 8: Python for zombies (very basic level)

String diferente de inteiro

Page 9: Python for zombies (very basic level)

Observe que não aconteceu nada ao digitar enter no final da linha É necessário “rodar” o programa no modo edição (Run Module F5)

Edition mode

Page 10: Python for zombies (very basic level)

Rodar o programa

Page 11: Python for zombies (very basic level)

Sempre use a extensão “.py” para não perder as cores do seu programa

Salvar o programa

Page 12: Python for zombies (very basic level)

Mesmo resultado

Page 13: Python for zombies (very basic level)

if/else/input/print

Page 14: Python for zombies (very basic level)

if/else/input/print

Page 15: Python for zombies (very basic level)

Funções

if/else/input/print

Page 16: Python for zombies (very basic level)

Strings

if/else/input/print

Page 17: Python for zombies (very basic level)

Variáveis

if/else/input/print

Page 18: Python for zombies (very basic level)

Dir

etiv

as

if/else/input/print

Page 19: Python for zombies (very basic level)

Identação

if/else/input/print

Page 20: Python for zombies (very basic level)

= atribuição

if/else/input/print

Page 21: Python for zombies (very basic level)

== comparação

if/else/input/print

Page 22: Python for zombies (very basic level)

• Funções embutidas (built in functions) são chamadas pelo seu nome e exigem parênteses

• Strings se diferenciam dos comandos do programa por estarem dentro de aspas

• Variáveis controlam dados na memória e possuem tipos

• Diretivas são comandos da linguagem

As partes do seu programa

Page 23: Python for zombies (very basic level)

• A identação separa blocos de comandos

• Um igual (=) significa atribuição

– Ex.: chute = int(g) (chute recebe inteiro de g)

• Dois iguais (==) significa comparação

– Ex.: chute == 42 (chute é igual a 42?)

• Dois pontos abrem blocos de instruções

– “Eu amo dois pontos!”

As partes do seu programa

Page 24: Python for zombies (very basic level)

• Há duas coisas para executar o programa de adivinhação: um editor e um interpretador

• O editor salva o código escrito em um arquivo no disco

Código fonte

O editor salva o código fonte em

um arquivo

Como executo o programa?

Page 25: Python for zombies (very basic level)

• Computadores não podem processar textos pois somente entendem binário (zeros e uns)

• O interpretador transforma o código fonte em um arquivo binário para o computador

Interpretador Python

O interpretador traduz o texto para

binário, que o computador entende

Hmm.. parece um jogo de

adivinhação...

Como executo o programa?

Page 26: Python for zombies (very basic level)

• O interpretador Python atua em dois modos: interativo e edição

• O modo interativo é ótimo para testar comandos e obter respostas instantâneas

• Porém o modo edição é o mais utilizado para desenvolver os programas – Nomes dos arquivos geralmente terminam com

“.py”

– Caso utilize outra extensão perderá as cores...

Como executo o programa?

Page 27: Python for zombies (very basic level)

print (“Bem vindo ao meu programa!”)

print (“Volte sempre!”)

Programas simples

Page 28: Python for zombies (very basic level)

Programas normais

Page 29: Python for zombies (very basic level)

Escolhendo o caminho

Page 30: Python for zombies (very basic level)

chute == 42

O caminho True

O caminho False

condição

O computador segue por este caminho se a condição é verdadeira (chute == 42)

O computador segue por este caminho se a condição

é falsa (chute != 42)

Escolhendo o caminho

Page 31: Python for zombies (very basic level)

• O programa somente diz se acertou ou não

• Para ajudar você dirá “Alto” ou “Baixo” caso a pessoa erre

• Como ficaria a estrada?

Dando dicas

Page 32: Python for zombies (very basic level)

chute == 42

chute > 42

print (‘Você venceu!”)

print (‘Alto”)

print (‘Baixo”)

print (‘Fim do Jogo!”)

Dando dicas

Page 33: Python for zombies (very basic level)

Utilize BACKSPACE e TAB para ir e

voltar

Dando dicas

Page 34: Python for zombies (very basic level)

Só um chute por vez?

Programa considerado fraco

Page 35: Python for zombies (very basic level)

Seria tão legal repetir várias vezes as mesmas linhas de

código, mas isso é um sonho...

Repetir comandos

Page 36: Python for zombies (very basic level)

Repetir comandos

Page 37: Python for zombies (very basic level)

Repetir comandos

Page 38: Python for zombies (very basic level)

chute = 0

chute != 42

g = input(...) chute = int(g)

Quando o programa chega no while pela primeira vez

ele verifica a condição

No final do bloco do loop o programa volta para a

condição de novo

Se a condição é verdadeira ele sobe no looping

Repetir comandos

Page 39: Python for zombies (very basic level)

Sempre é 42?

42 de novo?

Sim, resposta 42 sempre, hehe

Page 40: Python for zombies (very basic level)

Sorteando

Page 41: Python for zombies (very basic level)

Show de bola! Não importa o quanto eu

jogue, sempre terei um número novo!

Agora sim!

Page 42: Python for zombies (very basic level)

Aqui vem o trem de dados

Cada vagão tem sua

informação

Listas == trem de dados

Mineirinho e seu trem de dados

Page 43: Python for zombies (very basic level)

Todos a bordo do expresso

my_array!

O trem de dados my_array é uma única variável

Listas == trem de dados

Page 44: Python for zombies (very basic level)

Dê um nome ao trem de dados

Atribua uma lista de dados

Como posso acrescentar um vagão com “Bettys”?

Engatar mais dados

Page 45: Python for zombies (very basic level)

Aumentei um vagão na

lista

append

Page 46: Python for zombies (very basic level)

• Uma lista vazia

• Uma lista com três notas

• Acessando uma nota

• Mudando a primeira nota

Listas

Page 47: Python for zombies (very basic level)

Strings ou textos

Page 48: Python for zombies (very basic level)

• Posso usar aspas simples, dupla ou tripla

Aspas simples, duplas, triplas

Page 49: Python for zombies (very basic level)

Fatia do primeiro número até antes do segundo Não inclui o segundo número! Sim, esse é o meu time...

0 1 2 3 4 5 6 7 8

Fatiamento (Jack Stripador)

Page 50: Python for zombies (very basic level)

• Posso usar um incremento ao fatiar a string

Incremento no fatiamento

Page 51: Python for zombies (very basic level)

• Verifique se uma palavra é palíndrome

Incremento no fatiamento

Page 52: Python for zombies (very basic level)

Alterar strings?

Page 53: Python for zombies (very basic level)

• Usando concatenação contornamos esse problema

Concatenar pode ajudar

Page 54: Python for zombies (very basic level)

for == while enrustido

Códigos equivalentes: for durante o dia vira while à noite

Page 55: Python for zombies (very basic level)

for == while enrustido

Códigos equivalentes

Page 56: Python for zombies (very basic level)

for == while enrustido

Códigos equivalentes

Page 57: Python for zombies (very basic level)

• Aprendemos algumas funções do Python: len, int, float, print e input

• Agora iremos criar as nossas próprias funções

• Utilizo def para definir a função e return para devolver algum valor

• Existem funções que não retornam nada

def functions

Page 58: Python for zombies (very basic level)

• Esta função retorna se o parâmetro x é par

• Observe que diferentemente do que já vimos até agora, essas linhas não serão executadas imediatamente

• Preciso chamar a função para executá-la

def functions

Page 59: Python for zombies (very basic level)

• Até agora nossos dados desapareciam ao sair do IDLE

• Arquivos servem para armazenamento permanente

• Um arquivo é uma área em disco onde podemos ler ou gravar informações

• Acessamos o arquivo pelo seu nome

• Para acessar um arquivo é preciso abri-lo

Arquivos

Page 60: Python for zombies (very basic level)

• Ao abrir o arquivo informamos seu nome, diretório onde fica (se necessário) e que operações iremos executar: leitura e/ou escrita

• A função que abre os arquivo é open e os modos são: r – leitura, w – escrita, a – append, b – binário, + (atualização)

• Os métodos para ler ou escrever são read e write

• Os arquivos devem ser fechados com close

Arquivos

Page 61: Python for zombies (very basic level)

• Caso você execute este programa nada aparecerá na tela

• Procure no diretório c:\Python3x o arquivo números.txt

• O modo w cria o arquivo se ele não existir, caso exista ele será apagado e reescrito

Arquivos

Page 62: Python for zombies (very basic level)

• readlines gera uma lista onde cada elemento é uma linha lida

• Arquivos textos são simples e possuem um caracter de controle no final para pular linha

• Se quisermos tirar esse caracter do final podemos usar print(linha.rstrip())

Arquivos

Page 63: Python for zombies (very basic level)

Pythonic way

• O código acima faz o mesmo da forma pythônica

• No slide anterior vimos como programadores normais fazem a leitura

• Python é legal, pois sempre você pode se aprofundar mais

• Python é simples, mas difícil de esgotar

Page 64: Python for zombies (very basic level)

• O dicionário em si consiste em relacionar uma chave a um valor específico

• Diferentemente das listas, onde o índice é um número, dicionários utilizam suas chaves como índice

• Para adicionar novos elementos não preciso de append, basta fazer a atribuição – Se a chave já existe: o valor associado é alterado

– Se a chave não existe: a nova chave é adicionada

Dictionaries

Page 65: Python for zombies (very basic level)

Dictionaries

Page 66: Python for zombies (very basic level)

Dictionaries

Page 68: Python for zombies (very basic level)

Dictionaries

https://gist.github.com/4673017

Page 69: Python for zombies (very basic level)

Banco de Dados

https://gist.github.com/4673029

Page 70: Python for zombies (very basic level)

Interface GUI

https://gist.github.com/4961824

By Luciano Ramalho

Page 71: Python for zombies (very basic level)

OOP

https://gist.github.com/4673041

Page 72: Python for zombies (very basic level)

JSON Chuck Norris Nerd Jokes

https://gist.github.com/4745061

Page 73: Python for zombies (very basic level)

Gmail send message

https://gist.github.com/4745299

Page 74: Python for zombies (very basic level)

Quicksort

https://gist.github.com/4673057

Page 75: Python for zombies (very basic level)

Fibonacci Recursivo

https://gist.github.com/4762654

Page 76: Python for zombies (very basic level)

Bootle

https://gist.github.com/4762814

https://raw.github.com/defnull/bottle/master/bottle.py

Copiar o arquivo abaixo em \python3x\Lib