Brain Hack
                                Yeah!




                          Acreditem, ex-aluno meu


  Python 3 for Zombies (very basic level)
Fernando Masanori – FATEC – Centro Paula Souza
                 @fmasanori
Se quiser estudar sozinho,
    use o livro abaixo
Ou este para aprender
Mas, se precisa de mais ajuda para
aprender a programar, continue aqui...
Errando se aprende
Errando se aprende




No Python os espaços iniciais são importantes
Errando se aprende
String diferente de inteiro
Edition mode




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)
Rodar o programa
Salvar o programa




Sempre use a extensão “.py” para não perder as cores do seu programa
Mesmo resultado
if/else/input/print
if/else/input/print
if/else/input/print


Funções
if/else/input/print


       Strings
if/else/input/print


             Variáveis
if/else/input/print
Diretivas
if/else/input/print




Identação
if/else/input/print




     = atribuição
if/else/input/print




            == comparação
As partes do seu programa

• 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

• 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!”
Como executo o programa?

• 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                 O editor salva o
                         código fonte em
                           um arquivo




         Código fonte
Como executo o programa?

• 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
                                            Hmm.. parece
                                             um jogo de
                                            adivinhação...


                     Interpretador Python




                    O interpretador
                  traduz o texto para
                     binário, que o
                 computador entende
Como executo o programa?

• 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...
Programas simples



print (“Bem      print (“Volte
vindo ao meu     sempre!”)
programa!”)
Programas normais
Escolhendo o caminho
Escolhendo o caminho

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

      chute == 42




   O computador segue por           O caminho False
  este caminho se a condição
      é falsa (chute != 42)
Dando dicas

• 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


                           print (‘Você
                            venceu!”)


                                            print     print (‘Fim do
chute == 42
                                          (‘Alto”)       Jogo!”)



              chute > 42



                                            print
                                          (‘Baixo”)
Dando dicas




Utilize BACKSPACE
 e TAB para ir e
       voltar
Programa considerado fraco

            Só um chute
              por vez?
Repetir comandos
            Seria tão legal repetir várias
             vezes as mesmas linhas de
           código, mas isso é um sonho...
Repetir comandos
Repetir comandos
Repetir comandos
                                               g = input(...)
                                               chute = int(g)




Quando o programa chega                                            Se a condição é verdadeira
no while pela primeira vez                                             ele sobe no looping
  ele verifica a condição


                  chute = 0
                                                     chute != 42




                              No final do bloco do loop o
                                programa volta para a
                                   condição de novo
42 de novo?

     Sempre é
       42?




         Sim, resposta 42 sempre, hehe
Sorteando
Agora sim!


   Show de bola! Não
  importa o quanto eu
jogue, sempre terei um
     número novo!
Listas == trem de dados




  Aqui vem o                                 Cada vagão
trem de dados                                  tem sua
                                             informação

                Mineirinho e seu trem de dados
Listas == trem de dados



 Todos a bordo do
    expresso
    my_array!




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




                     Atribua uma
Dê um nome ao       lista de dados
trem de dados




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



          Aumentei
         um vagão na
            lista
Listas
• Uma lista vazia

• Uma lista com três notas

• Acessando uma nota

• Mudando a primeira nota
Strings ou textos
Aspas simples, duplas, triplas

• Posso usar aspas simples, dupla ou tripla
Fatiamento (Jack Stripador)




                                      0 1 2 3 4 5 6 7 8




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

• Posso usar um incremento ao fatiar a string
Incremento no fatiamento

• Verifique se uma palavra é palíndrome
Alterar strings?
Concatenar pode ajudar

• Usando concatenação contornamos esse
  problema
for == while enrustido




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




        Códigos equivalentes
for == while enrustido




        Códigos equivalentes
def functions

• 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


• 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
Arquivos

• 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

• 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



• 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



• 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())
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 
Dictionaries

• 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
Dictionaries
Dictionaries

• Faça um programa que leia o arquivo alice.txt
  e conte o número de ocorrências de cada
  palavra no texto. Obs.: para saber os
  caracteres especiais use import string e
  utilize string.punctuation
• http://www.gutenberg.org/cache/epub/11/pg
  11.txt
Dictionaries




https://gist.github.com/4673017
Banco de Dados




https://gist.github.com/4673029
Interface GUI




                        By Luciano Ramalho

https://gist.github.com/4961824
OOP




https://gist.github.com/4673041
JSON Chuck Norris Nerd Jokes




    https://gist.github.com/4745061
Gmail send message




https://gist.github.com/4745299
Quicksort




https://gist.github.com/4673057
Fibonacci Recursivo




https://gist.github.com/4762654
Bootle
            Copiar o arquivo abaixo em python3xLib
https://raw.github.com/defnull/bottle/master/bottle.py




           https://gist.github.com/4762814
Perguntas?
 fmasanori@gmail.com

facebook.com/fmasanori
 twitter.com/fmasanori

Python for zombies (very basic level)

  • 1.
    Brain Hack Yeah! Acreditem, ex-aluno meu Python 3 for Zombies (very basic level) Fernando Masanori – FATEC – Centro Paula Souza @fmasanori
  • 2.
    Se quiser estudarsozinho, use o livro abaixo
  • 3.
    Ou este paraaprender
  • 4.
    Mas, se precisade mais ajuda para aprender a programar, continue aqui...
  • 5.
  • 6.
    Errando se aprende NoPython os espaços iniciais são importantes
  • 7.
  • 8.
  • 9.
    Edition mode Observe quenão aconteceu nada ao digitar enter no final da linha É necessário “rodar” o programa no modo edição (Run Module F5)
  • 10.
  • 11.
    Salvar o programa Sempreuse a extensão “.py” para não perder as cores do seu programa
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
    if/else/input/print = atribuição
  • 21.
    if/else/input/print == comparação
  • 22.
    As partes doseu programa • 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
  • 23.
    As partes doseu programa • 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!”
  • 24.
    Como executo oprograma? • 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 O editor salva o código fonte em um arquivo Código fonte
  • 25.
    Como executo oprograma? • 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 Hmm.. parece um jogo de adivinhação... Interpretador Python O interpretador traduz o texto para binário, que o computador entende
  • 26.
    Como executo oprograma? • 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...
  • 27.
    Programas simples print (“Bem print (“Volte vindo ao meu sempre!”) programa!”)
  • 28.
  • 29.
  • 30.
    Escolhendo o caminho O computador segue por este caminho se a condição condição é verdadeira (chute == 42) O caminho True chute == 42 O computador segue por O caminho False este caminho se a condição é falsa (chute != 42)
  • 31.
    Dando dicas • Oprograma somente diz se acertou ou não • Para ajudar você dirá “Alto” ou “Baixo” caso a pessoa erre • Como ficaria a estrada?
  • 32.
    Dando dicas print (‘Você venceu!”) print print (‘Fim do chute == 42 (‘Alto”) Jogo!”) chute > 42 print (‘Baixo”)
  • 33.
    Dando dicas Utilize BACKSPACE e TAB para ir e voltar
  • 34.
    Programa considerado fraco Só um chute por vez?
  • 35.
    Repetir comandos Seria tão legal repetir várias vezes as mesmas linhas de código, mas isso é um sonho...
  • 36.
  • 37.
  • 38.
    Repetir comandos g = input(...) chute = int(g) Quando o programa chega Se a condição é verdadeira no while pela primeira vez ele sobe no looping ele verifica a condição chute = 0 chute != 42 No final do bloco do loop o programa volta para a condição de novo
  • 39.
    42 de novo? Sempre é 42? Sim, resposta 42 sempre, hehe
  • 40.
  • 41.
    Agora sim! Show de bola! Não importa o quanto eu jogue, sempre terei um número novo!
  • 42.
    Listas == tremde dados Aqui vem o Cada vagão trem de dados tem sua informação Mineirinho e seu trem de dados
  • 43.
    Listas == tremde dados Todos a bordo do expresso my_array! O trem de dados my_array é uma única variável
  • 44.
    Engatar mais dados Atribua uma Dê um nome ao lista de dados trem de dados Como posso acrescentar um vagão com “Bettys”?
  • 45.
    append Aumentei um vagão na lista
  • 46.
    Listas • Uma listavazia • Uma lista com três notas • Acessando uma nota • Mudando a primeira nota
  • 47.
  • 48.
    Aspas simples, duplas,triplas • Posso usar aspas simples, dupla ou tripla
  • 49.
    Fatiamento (Jack Stripador) 0 1 2 3 4 5 6 7 8 Fatia do primeiro número até antes do segundo Não inclui o segundo número! Sim, esse é o meu time...
  • 50.
    Incremento no fatiamento •Posso usar um incremento ao fatiar a string
  • 51.
    Incremento no fatiamento •Verifique se uma palavra é palíndrome
  • 52.
  • 53.
    Concatenar pode ajudar •Usando concatenação contornamos esse problema
  • 54.
    for == whileenrustido Códigos equivalentes: for durante o dia vira while à noite
  • 55.
    for == whileenrustido Códigos equivalentes
  • 56.
    for == whileenrustido Códigos equivalentes
  • 57.
    def functions • Aprendemosalgumas 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
  • 58.
    def functions • Estafunçã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
  • 59.
    Arquivos • Até agoranossos 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
  • 60.
    Arquivos • Ao abriro 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
  • 61.
    Arquivos • 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
  • 62.
    Arquivos • readlines gerauma 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())
  • 63.
    Pythonic way • Ocó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 
  • 64.
    Dictionaries • O dicionárioem 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
  • 65.
  • 66.
  • 67.
    Dictionaries • Faça umprograma que leia o arquivo alice.txt e conte o número de ocorrências de cada palavra no texto. Obs.: para saber os caracteres especiais use import string e utilize string.punctuation • http://www.gutenberg.org/cache/epub/11/pg 11.txt
  • 68.
  • 69.
  • 70.
    Interface GUI By Luciano Ramalho https://gist.github.com/4961824
  • 71.
  • 72.
    JSON Chuck NorrisNerd Jokes https://gist.github.com/4745061
  • 73.
  • 74.
  • 75.
  • 76.
    Bootle Copiar o arquivo abaixo em python3xLib https://raw.github.com/defnull/bottle/master/bottle.py https://gist.github.com/4762814
  • 77.