Python 3 for Zombies (very basic level) Fernando Masanori – FATEC – Centro Paula Souza
@fmasanori
Brain Hack Yeah!
Acreditem, ex-aluno meu
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
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
Rodar o programa
Sempre use a extensão “.py” para não perder as cores do seu programa
Salvar o programa
Mesmo resultado
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
Dir
etiv
as
if/else/input/print
Identação
if/else/input/print
= atribuição
if/else/input/print
== comparação
if/else/input/print
• 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!”
As partes do seu 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
Código fonte
O editor salva o código fonte em
um arquivo
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
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?
• 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?
print (“Bem vindo ao meu programa!”)
print (“Volte sempre!”)
Programas simples
Programas normais
Escolhendo o caminho
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
• 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
chute == 42
chute > 42
print (‘Você venceu!”)
print (‘Alto”)
print (‘Baixo”)
print (‘Fim do Jogo!”)
Dando dicas
Utilize BACKSPACE e TAB para ir e
voltar
Dando dicas
Só um chute por vez?
Programa considerado fraco
Seria tão legal repetir várias vezes as mesmas linhas de
código, mas isso é um sonho...
Repetir comandos
Repetir comandos
Repetir comandos
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
Sempre é 42?
42 de novo?
Sim, resposta 42 sempre, hehe
Sorteando
Show de bola! Não importa o quanto eu
jogue, sempre terei um número novo!
Agora sim!
Aqui vem o trem de dados
Cada vagão tem sua
informação
Listas == trem de dados
Mineirinho e seu trem de dados
Todos a bordo do expresso
my_array!
O trem de dados my_array é uma única variável
Listas == trem de dados
Dê um nome ao trem de dados
Atribua uma lista de dados
Como posso acrescentar um vagão com “Bettys”?
Engatar mais dados
Aumentei um vagão na
lista
append
• Uma lista vazia
• Uma lista com três notas
• Acessando uma nota
• Mudando a primeira nota
Listas
Strings ou textos
• Posso usar aspas simples, dupla ou tripla
Aspas simples, duplas, triplas
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)
• Posso usar um incremento ao fatiar a string
Incremento no fatiamento
• Verifique se uma palavra é palíndrome
Incremento no fatiamento
Alterar strings?
• Usando concatenação contornamos esse problema
Concatenar pode ajudar
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
• 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
def functions
• 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())
Arquivos
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
• 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/pg11.txt
Dictionaries
Interface GUI
https://gist.github.com/4961824
By Luciano Ramalho
Fibonacci Recursivo
https://gist.github.com/4762654
Bootle
https://gist.github.com/4762814
https://raw.github.com/defnull/bottle/master/bottle.py
Copiar o arquivo abaixo em \python3x\Lib