74
Curso básico de algoritmos com Python Tecnologia em Análise e Desenvolvimento de Sistemas – IFRN EPOCA 2011

Curso básico de Algoritmos com Python

Embed Size (px)

DESCRIPTION

Apresentação de slides do minicurso de Giancarlo Lima da Silva sobre Algoritmos com a linguagem Python, ministrado durante o EPOCA' 2011, no IFRN (Campus Natal-Central) www.grupoweblovers.org

Citation preview

Page 1: Curso básico de Algoritmos com Python

Curso básico de algoritmos com

Python

Tecnologia em Análise e Desenvolvimento de

Sistemas – IFRN

EPOCA 2011

Page 2: Curso básico de Algoritmos com Python

WebLovers - Quem somos

GIANCARLO SILVA - @giancarlozero

Graduando em Análise e Desenvolvimento de Sistemas – IFRN Líder do Grupo WebLovers – grupoweblovers.org E-mail: [email protected] MSN: [email protected]

Page 3: Curso básico de Algoritmos com Python

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: [email protected] MSN: [email protected]

Page 4: Curso básico de Algoritmos com Python

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: [email protected] MSN: [email protected]

Page 5: Curso básico de Algoritmos com Python

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: [email protected] MSN: [email protected]

Page 6: Curso básico de Algoritmos com Python

WebLovers - Quem somos

SEDIR MORAIS - @sedir_

Graduando em Análise e Desenvolvimento de Sistemas – IFRN Líder do Grupo WebLovers – grupoweblovers.org E-mail: [email protected] MSN: [email protected]

Page 7: Curso básico de Algoritmos com Python

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.

Page 8: Curso básico de Algoritmos com Python

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).

Page 9: Curso básico de Algoritmos com 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.

Page 10: Curso básico de Algoritmos com Python

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):

Page 11: Curso básico de Algoritmos com Python

Preparando seu ambiente de trabalho

• Editor de texto Gedit;

• Terminal do Ubuntu;

• IDE’s (IDLE, Eclipse + PyDev, Emacs,

Geany, Wing IDE, etc).

Page 12: Curso básico de Algoritmos com Python

Preparando seu ambiente de trabalho (ambiente Linux)

• Configurando o Gedit para trabalhar da

melhor forma com o Python (menu Editar

> Preferências):

Page 13: Curso básico de Algoritmos com Python

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.

Page 14: Curso básico de Algoritmos com Python

O que é um algoritmo?

Page 15: Curso básico de Algoritmos com Python

O que é um algoritmo?

numero = 0

if numero == 0:

print "Neutro"

elif numero % 2 == 0:

print "Par"

else:

print "Ímpar"

Page 16: Curso básico de Algoritmos com Python

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.

Page 17: Curso básico de Algoritmos com Python

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.

Page 18: Curso básico de Algoritmos com Python

Tipos básicos

• Tipos numéricos:

– Inteiro (int);

– Inteiro preciso (long);

– Ponto flutuante (float);

– Número complexo (complex);

• Tipo String (str);

• Tipo booleano (bool).

Page 19: Curso básico de Algoritmos com Python

Tipos básicos

• Tipo inteiro (int)

Page 20: Curso básico de Algoritmos com Python

Tipos básicos

• Tipo inteiro preciso (long)

Page 21: Curso básico de Algoritmos com Python

Tipos básicos

• Tipo ponto flutuante (float)

Page 22: Curso básico de Algoritmos com Python

Tipos básicos

• Tipo complexo (complex)

Page 23: Curso básico de Algoritmos com Python

Tipos básicos

• Tipo booleano (bool)

Page 24: Curso básico de Algoritmos com Python

Tipos básicos

• Tipo string/texto (str)

Page 25: Curso básico de Algoritmos com Python

Operações básicas

• Tipos de operações:

– Aritméticas;

– Lógicas;

– Relacionais;

Page 26: Curso básico de Algoritmos com Python

Operações básicas

• Operações aritméticas:

– Adição (+);

– Subtração (-);

– Multiplicação (*);

– Divisão(/);

– Divisão inteira (//);

– Potenciação (**);

– Resto (%).

Page 27: Curso básico de Algoritmos com Python

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.

Page 28: Curso básico de Algoritmos com Python

Operações básicas

• Operações aritméticas – Exemplo:

– Calculando o resto da divisão de 3 vezes 5 mais 1, por 2:

Page 29: Curso básico de Algoritmos com Python

Operações básicas

• Operações lógicas:

– E (and);

– Ou (or);

– Não (not).

Page 30: Curso básico de Algoritmos com Python

Operações básicas

• Operações lógicas – Tabelas da Verdade

(Álgebra de Boole):

Page 31: Curso básico de Algoritmos com Python

Operações básicas

• Operações lógicas – Exemplo: Tabela da

Verdade AND:

Page 32: Curso básico de Algoritmos com Python

Operações básicas

• Operações relacionais (ou comparativas):

– Igual (==);

– Diferente (!= ou <>);

– Maior que (>);

– Menor que (<);

– Maior ou igual (>=);

– Menor ou igual (<=).

Page 33: Curso básico de Algoritmos com Python

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.

Page 34: Curso básico de Algoritmos com Python

Estruturas de controle de fluxo

• Tipos de estrutura:

– Se/senão (if/else);

– Para (for);

– Enquanto (while);

– Comandos continue e break.

Page 35: Curso básico de Algoritmos com Python

Estruturas de controle de fluxo

• If/Else (Pseudocódigo):

Page 36: Curso básico de Algoritmos com Python

Estruturas de controle de fluxo

• If/Else – Exemplo 01 (Python):

Page 37: Curso básico de Algoritmos com Python

Estruturas de controle de fluxo

• If/Else – Exemplo 02 (Python):

Page 38: Curso básico de Algoritmos com Python

Estruturas de controle de fluxo

• For (Pseudocódigo):

Page 39: Curso básico de Algoritmos com Python

Estruturas de controle de fluxo

• For – Exemplo 01 (Python):

Page 40: Curso básico de Algoritmos com Python

Estruturas de controle de fluxo

• For – Exemplo 02 (Python):

Page 41: Curso básico de Algoritmos com Python

Estruturas de controle de fluxo

• While (Pseudocódigo):

Page 42: Curso básico de Algoritmos com Python

Estruturas de controle de fluxo

• While – Exemplo (Python):

Page 43: Curso básico de Algoritmos com Python

Estruturas de controle de fluxo

• Comando Break:

Page 44: Curso básico de Algoritmos com Python

Estruturas de controle de fluxo

• Comando Continue:

Page 45: Curso básico de Algoritmos com Python

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.

Page 46: Curso básico de Algoritmos com Python

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.

Page 47: Curso básico de Algoritmos com Python

Strings

Page 48: Curso básico de Algoritmos com Python

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:

Page 49: Curso básico de Algoritmos com Python

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

Page 50: Curso básico de Algoritmos com Python

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.

Page 51: Curso básico de Algoritmos com Python

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.

Page 52: Curso básico de Algoritmos com Python

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’

Page 53: Curso básico de Algoritmos com Python

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’

Page 54: Curso básico de Algoritmos com Python

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.

Page 55: Curso básico de Algoritmos com Python

Strings – Indexação e manipulação

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

Page 56: Curso básico de Algoritmos com Python

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().

Page 57: Curso básico de Algoritmos com Python

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.

Page 58: Curso básico de Algoritmos com Python

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]

Page 59: Curso básico de Algoritmos com Python

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.

Page 60: Curso básico de Algoritmos com Python

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]]

Page 61: Curso básico de Algoritmos com Python

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].

Page 62: Curso básico de Algoritmos com Python

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.

Page 63: Curso básico de Algoritmos com Python

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!

Page 64: Curso básico de Algoritmos com Python

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.

Page 65: Curso básico de Algoritmos com Python

Chamando funções

• Basta escrever o nome da função e, se necessário, passar um ou mais valores para os argumentos.

Page 66: Curso básico de Algoritmos com Python

Exemplo de funções com recursividade

• Função para calcular o fatorial de um número qualquer:

Page 67: Curso básico de Algoritmos com Python

Funções

• Exercício proposto:

– Escreva uma função que imprima na tela a sequência de Fibonacci até um número previamente definido.

Page 68: Curso básico de Algoritmos com Python

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.

Page 69: Curso básico de Algoritmos com Python

Python OO - Classes

• Exemplo: Retângulo

Page 70: Curso básico de Algoritmos com Python

Python OO – Objeto (ou Instância)

• Exemplo: Retângulo

Page 71: Curso básico de Algoritmos com Python

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

Page 72: Curso básico de Algoritmos com Python

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

Page 73: Curso básico de Algoritmos com Python

DÚVIDAS?

Page 74: Curso básico de Algoritmos com Python

MUITO OBRIGADO!

www.grupoweblovers.org

[email protected]

twitter.com/WebLoversRN