Você está na página 1de 74

Curso básico de algoritmos com

Python

Tecnologia em Análise e Desenvolvimento de


Sistemas – IFRN
EPOCA 2011
WebLovers - Quem somos

GIANCARLO SILVA - @giancarlozero

Graduando em Análise e Desenvolvimento de


Sistemas – IFRN

Líder do Grupo WebLovers – grupoweblovers.org

E-mail: giancarlozero@gmail.com
MSN: giancarlozero@yahoo.com.br
WebLovers - Quem somos

ALLYSON BARROS - @allysonbarros

Graduando em Análise e Desenvolvimento de


Sistemas – IFRN

Empreendedor e desenvolvedor Rails

Líder do Grupo WebLovers – grupoweblovers.org

E-mail: allysonbarrosrn@gmail.com
MSN: allyson_barros_irm@hotmail.com
WebLovers - Quem somos

DANIELE MONTENEGRO – @lelybarros

Bacharel em Ciências Sociais – UFRN

Graduanda em Análise e Desenvolvimento de


Sistemas – IFRN

Líder do Grupo WebLovers – grupoweblovers.org

E-mail: monte.daniele@gmail.com
MSN: danie_monte@hotmail.com
WebLovers - Quem somos

ELIONAI MOURA - @eli_embits

Graduando em Análise e Desenvolvimento de


Sistemas – IFRN

Empreendedor e Desenvolvedor PHP da EmBits

Líder do Grupo WebLovers – grupoweblovers.org

E-mail: nick.legal@gmail.com
MSN: eli.ml@hotmail.com
WebLovers - Quem somos

SEDIR MORAIS - @sedir_

Graduando em Análise e Desenvolvimento de


Sistemas – IFRN

Líder do Grupo WebLovers – grupoweblovers.org

E-mail: philippi.sedir@gmail.com
MSN: philippi.sedir@gmail.com
Agenda do minicurso
• Como instalar o Python;
• Preparando seu ambiente de trabalho;
• Introdução a Algoritmos;
• Introdução à linguagem Python;
• Tipos básicos de dados;
• Operações aritméticas, relacionais e lógicas;
• Estruturas de controle de fluxo;
• Strings;
• Listas, vetores e matrizes;
• Funções;
• Introdução à Orientação a Objetos;
• Para saber mais.
Instalação do Python: Linux
• Verifique a disponibilidade do Python no
repositório de sua distribuição e faça o
download/instalação, caso necessário;
• No Ubuntu o Python 2.7 já vem instalado
por padrão. Caso contrário, verifique na
Central de Programas, no gerenciador
Synaptic ou via terminal (sudo apt-cache
search python).
Instalação do Python: Mac OS X
• O Python já vem pré-instalado no sistema
operacional da Apple. Entretanto, devido
ao ciclo de atualizações do Mac OS X o
Python pré-instalado pode estar
obsoleto;
• Recomenda-se baixar a versão mais nova
em www.python.org e fazer a instalação.
Instalação do Python: Windows
• Faça o download do instalador do Python
em www.python.org e instale-o em seu
Windows;
• Ajuste o classpath através do prompt de
comandos (XX = número da versão):
Preparando seu
ambiente de trabalho

• Editor de texto Gedit;


• Terminal do Ubuntu;
• IDE’s (IDLE, Eclipse + PyDev, Emacs,
Geany, Wing IDE, etc).
Preparando seu ambiente de
trabalho (ambiente Linux)
• Configurando o Gedit para trabalhar da
melhor forma com o Python (menu Editar
> Preferências):
O que é um algoritmo?
• Algoritmos são sequências de instruções
finitas e não-ambíguas com a finalidade de
executar uma ação ou alcançar um
resultado;
• Há várias formas de estudar algoritmos,
como o desenho de fluxogramas lógicos, a
escrita de comandos em pseudocódigo (ex.:
Portugol) e também usando as linguagens
de programação propriamente ditas.
O que é um algoritmo?
O que é um algoritmo?

numero = 0
if numero == 0:
print "Neutro"
elif numero % 2 == 0:
print "Par"
else:
print "Ímpar"
Repitam comigo: PÁI-TON!
• Python é uma linguagem de
programação interpretada, orientada a
objetos e fortemente tipada, criada pelo
holandês Guido van Rossum em 1989 e
lançada em 1991;
• O Python suporta vários paradigmas e
modelos de programação, como a
Programação Procedural/Estruturada, a
Orientação a Objetos, etc.
Repitam comigo: PÁI-TON!
• Além de ser interpretado, o Python também funciona
de forma virtualizada, podendo gerar Bytecodes na
extensão .pyc ou .pyo;

• Em Python, quase tudo é considerado um objeto:


classes, funções, números, módulos, etc.
Tipos básicos
• Tipos numéricos:
– Inteiro (int);
– Inteiro preciso (long);
– Ponto flutuante (float);
– Número complexo (complex);
• Tipo String (str);
• Tipo booleano (bool).
Tipos básicos
• Tipo inteiro (int)
Tipos básicos
• Tipo inteiro preciso (long)
Tipos básicos
• Tipo ponto flutuante (float)
Tipos básicos
• Tipo complexo (complex)
Tipos básicos
• Tipo booleano (bool)
Tipos básicos
• Tipo string/texto (str)
Operações básicas

• Tipos de operações:
– Aritméticas;
– Lógicas;
– Relacionais;
Operações básicas
• Operações aritméticas:
– Adição (+);
– Subtração (-);
– Multiplicação (*);
– Divisão(/);
– Divisão inteira (//);
– Potenciação (**);
– Resto (%).
Operações básicas
• Operações aritméticas – Ordem de
precedência:
1. Operações entre parênteses;
1. Potenciação;
2. Resto;
3. Divisão inteira;
4. Divisão;
5. Multiplicação;
6. Subtração;
7. Adição.
Operações básicas
• Operações aritméticas – Exemplo:
– Calculando o resto da divisão de 3 vezes 5
mais 1, por 2:
Operações básicas

• Operações lógicas:
– E (and);
– Ou (or);
– Não (not).
Operações básicas
• Operações lógicas – Tabelas da Verdade
(Álgebra de Boole):
Operações básicas
• Operações lógicas – Exemplo: Tabela da
Verdade AND:
Operações básicas
• Operações relacionais (ou comparativas):
– Igual (==);
– Diferente (!= ou <>);
– Maior que (>);
– Menor que (<);
– Maior ou igual (>=);
– Menor ou igual (<=).
Operações básicas
• Operações lógicas e relacionais – Ordem de
precedência:
1. Operações entre parênteses;
2. Or;
3. And;
4. Not;
5. Operações entre Parênteses;
1. Menor que;
2. Maior que;
3. Menor ou igual;
4. Maior ou igual;
5. Operações entre parênteses;
1. Diferente;
2. Igual.
Estruturas de controle de fluxo
• Tipos de estrutura:
– Se/senão (if/else);
– Para (for);
– Enquanto (while);
– Comandos continue e break.
Estruturas de controle de fluxo
• If/Else (Pseudocódigo):
Estruturas de controle de fluxo
• If/Else – Exemplo 01 (Python):
Estruturas de controle de fluxo
• If/Else – Exemplo 02 (Python):
Estruturas de controle de fluxo
• For (Pseudocódigo):
Estruturas de controle de fluxo
• For – Exemplo 01 (Python):
Estruturas de controle de fluxo
• For – Exemplo 02 (Python):
Estruturas de controle de fluxo
• While (Pseudocódigo):
Estruturas de controle de fluxo
• While – Exemplo (Python):
Estruturas de controle de fluxo
• Comando Break:
Estruturas de controle de fluxo
• Comando Continue:
Estruturas de controle de fluxo
• Exercícios propostos:
1. Crie um programa que peça dois números e
diga se o primeiro número é ou não é
divisível pelo segundo;
2. Crie um programa que peça a idade de um
indivíduo e verifique se ele tem ou não
idade suficiente para tirar carteira de
motorista. Se a idade digitada for zero, o
programa deverá mostrar uma mensagem
de erro.
Strings
• Strings são sequências de caracteres
reconhecidos como texto simples em um
programa;
• É possível exibir texto, bem como armazená-lo
em uma ou mais variáveis;
• Para exibir texto usa-se o comando print, seguido
do texto entre aspas simples ou duplas;
• Strings formadas por múltiplas linhas de texto
podem ser criadas e atribuídas a variáveis
escrevendo os textos entre trios de aspas
simples ou duplas.
Strings
Strings – Concatenação e
repetição
• Usa-se (inclusive opcionalmente) o sinal + para
concatenar duas ou mais strings;
• Usa-se o sinal * para repetir uma string um
determinado número de vezes:
Strings – Indexação e
manipulação
• Para o Python, strings se comportam
como listas de caracteres (veremos as
listas logo adiante) e são indexados como
tal. Entretanto, diferente das listas,
strings são imutáveis:

Índices 0 1 2 3 4 5 6 7
Índices (inverso) -8 -7 -6 -5 -4 -3 -2 -1
Caracteres f i a t 1 4 7
Strings – Indexação e
manipulação
• Baseado na indexação de uma string, usa-
se a técnica de slice (fatia) para manipulá-
la das mais diversas formas;
• É possível usar essa técnica para ‚fatiar‛
partes de uma string, unir, separar, obter
substrings, atribuir strings e/ou
substrings à variáveis, entre outros usos.
Strings – Indexação e
manipulação
• Para usar slices, primeiro atribui-se uma
string a uma variável qualquer;
• Depois escreve-se esta variável seguido por
números entre colchetes, separados por
dois pontos. Os números representam o
intervalo entre dois índices da string e a
razão de iteração;
variável[início : fim : razão]
• Dependendo da necessidade, é possível
omitir um dos valores entre os colchetes. A
razão é totalmente opcional.
Strings – Indexação e
manipulação
>>> palavra = ‚cachorro‛
>>> palavra[2:6] #Mostrar substring
‘chor’
>>> palavra[:1] #Apenas a primeira letra
‘c’
>>> palavra[1:] #Exceto a primeira letra
‘achorro’
Strings – Indexação e
manipulação
>>> palavra = ‚cachorro‛
>>> palavra[-3:] #Apenas as 3 últimas letras
‘rro’
>>> palavra[::2] #Mostrar letras na razão de 2
‘ccor’
>>> palavra 2 = palavra[::2] #variável recebe
substring
>>> print palavra2
‘ccor’
Strings – Indexação e
manipulação
• O programador pode usar a função
raw_input() para solicitar que o usuário
entre com um dado qualquer no
programa;
• Ao rodar no terminal, o programa
aguarda a entrada de algum dado e, ao
pressionar ENTER, o programa
processará o dado conforme definido em
seu código.
Strings – Indexação e
manipulação

Que saída será gerada por este código?


Strings
• Exercícios propostos:
1. Crie um programa que exiba apenas as vogais
de uma palavra;
2. Crie um programa que receba um texto e
substitua a vogal ‘a’ desse texto por outra à
escolha do usuário;
3. Crie um programa que receba um texto e o
exiba de trás para frente.
• Dicas:
1. Use a técnica de slice;
2. Use, se necessário, a função raw_input().
Listas, vetores e matrizes
• Listas são sequências de dados que podem
ser formados por elementos de qualquer
tipo;
• Ao contrário das strings, as listas são
mutáveis, ou seja, podem ter seus
elementos modificados;
• Para criar uma lista, escreve-se alguns
elementos separados por vírgulas, dentro
de colchetes e os atribui a uma variável.
Listas, vetores e matrizes

• Exemplos de listas:
– lista1 = [1, 2, 3, 4, 5]
– lista2 = [‚Flamengo‛, ‚Vasco‛, ‚ABC‛,
‚América‛]
– lista3 = [‚João‛, 25, 1.85, ‚Professor‛, True]
Listas, vetores e matrizes
• Vetores nada mais são do que listas
formadas apenas por números;
• Existem vetores unidimensionais (como o
exemplo mostrado no slide anterior) e
vetores multidimensionais, também
chamados de matrizes.
Listas, vetores e matrizes
• Vetor (uma lista simples):
vetor = [0, 1, 2, 3, 4, (...)]

• Matriz (lista aninhada, ou seja: uma lista


dentro de outra):
matriz2x2 = [[0, 1],[2, 3]]
matriz3x2 = [[0, 1], [2, 3], [4, 5]]
matriz2x3 = [[0, 1, 2], [3, 4, 5]]
Acessando valores de uma matriz
• Para acessar um valor de um vetor, basta imprimir uma variável
seguida da posição ‘i’ do valor, entre colchetes – vetor = [i];
• No caso de uma matriz, deve-se indicar as posições ‘i’ e ‘j’ do valor
desejado – matriz = [i][j].
Funções
• Funções são blocos de código identificados
por um nome e dotados de parâmetros
predefinidos;
• Python vem com diversas funções em sua
biblioteca padrão, além de permitir a
definição de suas próprias funções;
• Funções criadas pelo programador podem
ou não ter valor de retorno (comando
return), dependendo da necessidade.
Funções
• Exemplos de funções built-in:
– type() – Identifica o tipo de uma variável;
– raw_input() – Recebe uma entrada de dados;
– id() – Retorna a identidade de um objeto;
– pow(x, y) – Potenciação: retorna um número
x elevado a uma potência y;
– Entre vários outros!
Definindo funções
• Define-se uma função em Python usando-se o
comando def seguido do nome da função,
escrevendo zero ou mais argumentos entre
parênteses e terminando com um sinal de dois
pontos (:);
• Na linha seguinte, escreve-se o bloco de código
desejado.
Chamando funções
• Basta escrever o nome da função e, se
necessário, passar um ou mais valores para os
argumentos.
Exemplo de funções com
recursividade
• Função para calcular o fatorial de um número
qualquer:
Funções
• Exercício proposto:

– Escreva uma função que imprima na tela a


sequência de Fibonacci até um número
previamente definido.
Introdução a Orientação a
Objetos
• A linguagem Python tem como uma de
suas várias características o suporte ao
paradigma da Programação Orientada a
Objetos, que permite o reaproveitamento
de código e uma maior abstração do
problema a ser resolvido;
• Demonstraremos agora como se codifica
e funciona uma classe em Python.
Python OO - Classes
• Exemplo: Retângulo
Python OO – Objeto
(ou Instância)
• Exemplo: Retângulo
Para saber mais
• Material de estudo
– Livros:
• Introdução à Programação
com Python

Editora Novatec

• Python e Django: Desenvolvimento


ágil de aplicações web

Editora Novatec
Para saber mais
• Material de estudo
– Na Internet:
• Documentação oficial – migre.me/64xa4
• Tutorial Python (E-Book. Autor: Guido van
Rossum) – migre.me/64xcN
• Aprenda a Programar (E-Book. Autor: Luciano
Ramalho) – migre.me/64xn9
• Python para Desenvolvedores (E-Book. Autor:
Luiz Eduardo Borges) – migre.me/64xIA
DÚVIDAS?
MUITO OBRIGADO!

www.grupoweblovers.org
grupoweblovers@googlegroups.com
twitter.com/WebLoversRN

Você também pode gostar