Este documento apresenta os membros do grupo WebLovers, que inclui 5 pessoas: Giancarlo Silva, Allyson Barros, Daniele Montenegro, Elionai Moura e Sedir Morais. Cada membro é graduando ou graduado em Análise e Desenvolvimento de Sistemas no IFRN e lidera o grupo WebLovers.
1. Curso básico de algoritmos com
Python
Tecnologia em Análise e Desenvolvimento de
Sistemas – IFRN
EPOCA 2011
2. 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
3. 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
4. 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
5. 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
6. 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
7. 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.
8. 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).
9. 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.
10. 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):
11. Preparando seu
ambiente de trabalho
• Editor de texto Gedit;
• Terminal do Ubuntu;
• IDE’s (IDLE, Eclipse + PyDev, Emacs,
Geany, Wing IDE, etc).
12. Preparando seu ambiente de
trabalho (ambiente Linux)
• Configurando o Gedit para trabalhar da
melhor forma com o Python (menu Editar
> Preferências):
13. 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.
15. O que é um algoritmo?
numero = 0
if numero == 0:
print "Neutro"
elif numero % 2 == 0:
print "Par"
else:
print "Ímpar"
16. 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.
17. 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.
18. Tipos básicos
• Tipos numéricos:
– Inteiro (int);
– Inteiro preciso (long);
– Ponto flutuante (float);
– Número complexo (complex);
• Tipo String (str);
• Tipo booleano (bool).
32. Operações básicas
• Operações relacionais (ou comparativas):
– Igual (==);
– Diferente (!= ou <>);
– Maior que (>);
– Menor que (<);
– Maior ou igual (>=);
– Menor ou igual (<=).
33. 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.
34. Estruturas de controle de fluxo
• Tipos de estrutura:
– Se/senão (if/else);
– Para (for);
– Enquanto (while);
– Comandos continue e break.
45. 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.
46. 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.
48. 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:
49. 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
50. 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.
51. 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.
52. 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’
53. 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’
54. 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.
56. 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().
57. 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.
59. 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.
60. 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]]
61. 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].
62. 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.
63. 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!
64. 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.
65. Chamando funções
• Basta escrever o nome da função e, se
necessário, passar um ou mais valores para os
argumentos.
66. Exemplo de funções com
recursividade
• Função para calcular o fatorial de um número
qualquer:
67. Funções
• Exercício proposto:
– Escreva uma função que imprima na tela a
sequência de Fibonacci até um número
previamente definido.
68. 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.
71. 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
72. 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