Your SlideShare is downloading. ×
Curso básico de Algoritmos com Python
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Curso básico de Algoritmos com Python

9,358
views

Published on

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

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

Published in: Education

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
9,358
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
307
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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.
  • 14. O que é um algoritmo?
  • 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).
  • 19. Tipos básicos• Tipo inteiro (int)
  • 20. Tipos básicos• Tipo inteiro preciso (long)
  • 21. Tipos básicos• Tipo ponto flutuante (float)
  • 22. Tipos básicos• Tipo complexo (complex)
  • 23. Tipos básicos• Tipo booleano (bool)
  • 24. Tipos básicos• Tipo string/texto (str)
  • 25. Operações básicas• Tipos de operações: – Aritméticas; – Lógicas; – Relacionais;
  • 26. Operações básicas• Operações aritméticas: – Adição (+); – Subtração (-); – Multiplicação (*); – Divisão(/); – Divisão inteira (//); – Potenciação (**); – Resto (%).
  • 27. 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.
  • 28. Operações básicas• Operações aritméticas – Exemplo: – Calculando o resto da divisão de 3 vezes 5 mais 1, por 2:
  • 29. Operações básicas• Operações lógicas: – E (and); – Ou (or); – Não (not).
  • 30. Operações básicas• Operações lógicas – Tabelas da Verdade (Álgebra de Boole):
  • 31. Operações básicas• Operações lógicas – Exemplo: Tabela da Verdade AND:
  • 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.
  • 35. Estruturas de controle de fluxo• If/Else (Pseudocódigo):
  • 36. Estruturas de controle de fluxo• If/Else – Exemplo 01 (Python):
  • 37. Estruturas de controle de fluxo• If/Else – Exemplo 02 (Python):
  • 38. Estruturas de controle de fluxo• For (Pseudocódigo):
  • 39. Estruturas de controle de fluxo• For – Exemplo 01 (Python):
  • 40. Estruturas de controle de fluxo• For – Exemplo 02 (Python):
  • 41. Estruturas de controle de fluxo• While (Pseudocódigo):
  • 42. Estruturas de controle de fluxo• While – Exemplo (Python):
  • 43. Estruturas de controle de fluxo• Comando Break:
  • 44. Estruturas de controle de fluxo• Comando Continue:
  • 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.
  • 47. Strings
  • 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 recebesubstring>>> 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.
  • 55. Strings – Indexação e manipulaçãoQue saída será gerada por este 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.
  • 58. 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]
  • 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.
  • 69. Python OO - Classes• Exemplo: Retângulo
  • 70. Python OO – Objeto (ou Instância)• Exemplo: Retângulo
  • 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
  • 73. DÚVIDAS?
  • 74. MUITO OBRIGADO! www.grupoweblovers.orggrupoweblovers@googlegroups.com twitter.com/WebLoversRN