SlideShare uma empresa Scribd logo
1 de 74
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Bruno Grange
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + PythonMateus Padua
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem Capolllorj
 
Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução BásicaChristian Perone
 
Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Cloves da Rocha
 
Apostila Lógica de Programação
Apostila Lógica de ProgramaçãoApostila Lógica de Programação
Apostila Lógica de ProgramaçãoRicardo Terra
 
Aula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas CondicionaisAula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas CondicionaisDaniel Brandão
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)Armando Daniel
 
Frameworks de desenvolvimento web
Frameworks de desenvolvimento webFrameworks de desenvolvimento web
Frameworks de desenvolvimento webArlindo Santos
 
Python bge
Python bgePython bge
Python bgeTiago
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Mariana Camargo
 
Overview of python 2019
Overview of python 2019Overview of python 2019
Overview of python 2019Samir Mohanty
 
2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com PythonJardel Weyrich
 

Mais procurados (20)

Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + Python
 
POO - 22 - Tratamento de Exceções em Java
POO - 22 - Tratamento de Exceções em JavaPOO - 22 - Tratamento de Exceções em Java
POO - 22 - Tratamento de Exceções em Java
 
Pilha e filas
Pilha e filasPilha e filas
Pilha e filas
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
Estrutura de Dados - Ponteiros
Estrutura de Dados - PonteirosEstrutura de Dados - Ponteiros
Estrutura de Dados - Ponteiros
 
Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução Básica
 
Introdução a ciência de dados com Python
Introdução a ciência de dados com PythonIntrodução a ciência de dados com Python
Introdução a ciência de dados com Python
 
Estrutura de dados - Pilhas
Estrutura de dados - PilhasEstrutura de dados - Pilhas
Estrutura de dados - Pilhas
 
Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1
 
Apostila Lógica de Programação
Apostila Lógica de ProgramaçãoApostila Lógica de Programação
Apostila Lógica de Programação
 
Linguagem C - Strings
Linguagem C - StringsLinguagem C - Strings
Linguagem C - Strings
 
Aula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas CondicionaisAula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas Condicionais
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Frameworks de desenvolvimento web
Frameworks de desenvolvimento webFrameworks de desenvolvimento web
Frameworks de desenvolvimento web
 
Python bge
Python bgePython bge
Python bge
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
 
Overview of python 2019
Overview of python 2019Overview of python 2019
Overview of python 2019
 
2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python
 

Destaque

Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolsoJean Lopes
 
Curso Python IFPB - Algoritmos
Curso Python IFPB - AlgoritmosCurso Python IFPB - Algoritmos
Curso Python IFPB - AlgoritmosDiego Lopes
 
Python para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantesrichardsonlima
 
Introdução à Programação em Python
Introdução à Programação em PythonIntrodução à Programação em Python
Introdução à Programação em PythonRodrigo Hübner
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em PythonLuciano Ramalho
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programaçãorodfernandes
 
Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nívelIgor Sobreira
 
Desenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2pyDesenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2pyGilson Filho
 
Python no ensino de programação
Python no ensino de programaçãoPython no ensino de programação
Python no ensino de programaçãoGivanaldo Rocha
 
Arduino: Brincando de eletrônica com Python e Hardware Livre
Arduino: Brincando de eletrônica com Python e Hardware LivreArduino: Brincando de eletrônica com Python e Hardware Livre
Arduino: Brincando de eletrônica com Python e Hardware LivreÁlvaro Justen
 
Seminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem PythonSeminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem PythonGiancarlo Silva
 
Python - Programação funcional
Python - Programação funcionalPython - Programação funcional
Python - Programação funcionalfabiocerqueira
 
Extraindo dados públicos na marra com Python
Extraindo dados públicos na marra com PythonExtraindo dados públicos na marra com Python
Extraindo dados públicos na marra com PythonPedro Valente
 
Python no Celular
Python no CelularPython no Celular
Python no Celulariuridiniz
 
Dados tabulares: A Maneira Pythônica
Dados tabulares: A Maneira PythônicaDados tabulares: A Maneira Pythônica
Dados tabulares: A Maneira PythônicaÁlvaro Justen
 
Arduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoArduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoÁlvaro Justen
 

Destaque (18)

Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolso
 
Curso Python IFPB - Algoritmos
Curso Python IFPB - AlgoritmosCurso Python IFPB - Algoritmos
Curso Python IFPB - Algoritmos
 
Aprendendo python
Aprendendo pythonAprendendo python
Aprendendo python
 
Python para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantes
 
Introdução à Programação em Python
Introdução à Programação em PythonIntrodução à Programação em Python
Introdução à Programação em Python
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em Python
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
 
Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nível
 
Desenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2pyDesenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2py
 
Python no ensino de programação
Python no ensino de programaçãoPython no ensino de programação
Python no ensino de programação
 
Arduino: Brincando de eletrônica com Python e Hardware Livre
Arduino: Brincando de eletrônica com Python e Hardware LivreArduino: Brincando de eletrônica com Python e Hardware Livre
Arduino: Brincando de eletrônica com Python e Hardware Livre
 
Seminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem PythonSeminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem Python
 
Python - Programação funcional
Python - Programação funcionalPython - Programação funcional
Python - Programação funcional
 
Extraindo dados públicos na marra com Python
Extraindo dados públicos na marra com PythonExtraindo dados públicos na marra com Python
Extraindo dados públicos na marra com Python
 
Python no Celular
Python no CelularPython no Celular
Python no Celular
 
Dados tabulares: A Maneira Pythônica
Dados tabulares: A Maneira PythônicaDados tabulares: A Maneira Pythônica
Dados tabulares: A Maneira Pythônica
 
Arduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoArduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremo
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 

Semelhante a Curso básico de Algoritmos com Python

Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Marcelo Barros de Almeida
 
Fundamentos de Python
Fundamentos de PythonFundamentos de Python
Fundamentos de PythonJeff560813
 
Python: programação divertida novamente
Python: programação divertida novamentePython: programação divertida novamente
Python: programação divertida novamenteRodrigo Amaral
 
Aula3PythonBasico (1).ppt
Aula3PythonBasico (1).pptAula3PythonBasico (1).ppt
Aula3PythonBasico (1).pptMichaelArrais1
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Flávio Ribeiro
 
PE1 - Revisão e Matéria sobre Laços (FOR, WHILE, DO-WHILE)
PE1 - Revisão e Matéria sobre Laços (FOR, WHILE, DO-WHILE)PE1 - Revisão e Matéria sobre Laços (FOR, WHILE, DO-WHILE)
PE1 - Revisão e Matéria sobre Laços (FOR, WHILE, DO-WHILE)Charles Fortes
 
Introducao ao python - Luciana Mota
Introducao ao python - Luciana MotaIntroducao ao python - Luciana Mota
Introducao ao python - Luciana Motalucianacmota
 
Tcc ritzmann,m.r. robotec
Tcc ritzmann,m.r. robotecTcc ritzmann,m.r. robotec
Tcc ritzmann,m.r. robotecMagno Ritzmann
 
Desenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonDesenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonFlávio Ribeiro
 
Aulas 13 e 14 - Algoritmos
Aulas 13 e 14 - AlgoritmosAulas 13 e 14 - Algoritmos
Aulas 13 e 14 - AlgoritmosJocelma Rios
 
Curso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP BásicoCurso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP BásicoNorton Guimarães
 

Semelhante a Curso básico de Algoritmos com Python (20)

Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)
 
Fundamentos de Python
Fundamentos de PythonFundamentos de Python
Fundamentos de Python
 
Python: programação divertida novamente
Python: programação divertida novamentePython: programação divertida novamente
Python: programação divertida novamente
 
Aula3PythonBasico (1).ppt
Aula3PythonBasico (1).pptAula3PythonBasico (1).ppt
Aula3PythonBasico (1).ppt
 
Aula3PythonBasico.ppt
Aula3PythonBasico.pptAula3PythonBasico.ppt
Aula3PythonBasico.ppt
 
Python para Programadores
Python para ProgramadoresPython para Programadores
Python para Programadores
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
 
PE1 - Revisão e Matéria sobre Laços (FOR, WHILE, DO-WHILE)
PE1 - Revisão e Matéria sobre Laços (FOR, WHILE, DO-WHILE)PE1 - Revisão e Matéria sobre Laços (FOR, WHILE, DO-WHILE)
PE1 - Revisão e Matéria sobre Laços (FOR, WHILE, DO-WHILE)
 
Python Emsl2009
Python Emsl2009Python Emsl2009
Python Emsl2009
 
Introducao ao python - Luciana Mota
Introducao ao python - Luciana MotaIntroducao ao python - Luciana Mota
Introducao ao python - Luciana Mota
 
Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001
 
Aula python
Aula pythonAula python
Aula python
 
Java Básico
Java BásicoJava Básico
Java Básico
 
Tcc ritzmann,m.r. robotec
Tcc ritzmann,m.r. robotecTcc ritzmann,m.r. robotec
Tcc ritzmann,m.r. robotec
 
Desenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonDesenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando Python
 
Aulas 13 e 14 - Algoritmos
Aulas 13 e 14 - AlgoritmosAulas 13 e 14 - Algoritmos
Aulas 13 e 14 - Algoritmos
 
Automatize tarefas maçantes com python - Aula 1
Automatize tarefas maçantes com python - Aula 1Automatize tarefas maçantes com python - Aula 1
Automatize tarefas maçantes com python - Aula 1
 
PHP(I-Bim).ppt
PHP(I-Bim).pptPHP(I-Bim).ppt
PHP(I-Bim).ppt
 
Aula01
Aula01Aula01
Aula01
 
Curso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP BásicoCurso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP Básico
 

Mais de Giancarlo Silva

[EXPOTEC 2016] Construção de sites e gestão de conteúdo com WordPress
[EXPOTEC 2016] Construção de sites e gestão de conteúdo com WordPress[EXPOTEC 2016] Construção de sites e gestão de conteúdo com WordPress
[EXPOTEC 2016] Construção de sites e gestão de conteúdo com WordPressGiancarlo Silva
 
EduQuest: Uma proposta para o uso de Serious Games na educação e na capacitaç...
EduQuest: Uma proposta para o uso de Serious Games na educação e na capacitaç...EduQuest: Uma proposta para o uso de Serious Games na educação e na capacitaç...
EduQuest: Uma proposta para o uso de Serious Games na educação e na capacitaç...Giancarlo Silva
 
Seminário - Linguagem Dart: Structured web apps
Seminário - Linguagem Dart: Structured web appsSeminário - Linguagem Dart: Structured web apps
Seminário - Linguagem Dart: Structured web appsGiancarlo Silva
 
Seminário - Enterprise Resource Planning (ERP)
Seminário - Enterprise Resource Planning (ERP)Seminário - Enterprise Resource Planning (ERP)
Seminário - Enterprise Resource Planning (ERP)Giancarlo Silva
 
Seminário - Comcast, conformação de pacotes e neutralidade da rede
Seminário - Comcast, conformação de pacotes e neutralidade da redeSeminário - Comcast, conformação de pacotes e neutralidade da rede
Seminário - Comcast, conformação de pacotes e neutralidade da redeGiancarlo Silva
 
Seminário - A Nationwide economiza milhões de dólares tornando-se verde
Seminário - A Nationwide economiza milhões de dólares tornando-se verdeSeminário - A Nationwide economiza milhões de dólares tornando-se verde
Seminário - A Nationwide economiza milhões de dólares tornando-se verdeGiancarlo Silva
 
WordPress: De blogs pessoais a grandes portais - Parte 2
WordPress: De blogs pessoais a grandes portais - Parte 2WordPress: De blogs pessoais a grandes portais - Parte 2
WordPress: De blogs pessoais a grandes portais - Parte 2Giancarlo Silva
 
WordPress: De blogs pessoais a grandes portais - Parte 1
WordPress: De blogs pessoais a grandes portais - Parte 1WordPress: De blogs pessoais a grandes portais - Parte 1
WordPress: De blogs pessoais a grandes portais - Parte 1Giancarlo Silva
 

Mais de Giancarlo Silva (8)

[EXPOTEC 2016] Construção de sites e gestão de conteúdo com WordPress
[EXPOTEC 2016] Construção de sites e gestão de conteúdo com WordPress[EXPOTEC 2016] Construção de sites e gestão de conteúdo com WordPress
[EXPOTEC 2016] Construção de sites e gestão de conteúdo com WordPress
 
EduQuest: Uma proposta para o uso de Serious Games na educação e na capacitaç...
EduQuest: Uma proposta para o uso de Serious Games na educação e na capacitaç...EduQuest: Uma proposta para o uso de Serious Games na educação e na capacitaç...
EduQuest: Uma proposta para o uso de Serious Games na educação e na capacitaç...
 
Seminário - Linguagem Dart: Structured web apps
Seminário - Linguagem Dart: Structured web appsSeminário - Linguagem Dart: Structured web apps
Seminário - Linguagem Dart: Structured web apps
 
Seminário - Enterprise Resource Planning (ERP)
Seminário - Enterprise Resource Planning (ERP)Seminário - Enterprise Resource Planning (ERP)
Seminário - Enterprise Resource Planning (ERP)
 
Seminário - Comcast, conformação de pacotes e neutralidade da rede
Seminário - Comcast, conformação de pacotes e neutralidade da redeSeminário - Comcast, conformação de pacotes e neutralidade da rede
Seminário - Comcast, conformação de pacotes e neutralidade da rede
 
Seminário - A Nationwide economiza milhões de dólares tornando-se verde
Seminário - A Nationwide economiza milhões de dólares tornando-se verdeSeminário - A Nationwide economiza milhões de dólares tornando-se verde
Seminário - A Nationwide economiza milhões de dólares tornando-se verde
 
WordPress: De blogs pessoais a grandes portais - Parte 2
WordPress: De blogs pessoais a grandes portais - Parte 2WordPress: De blogs pessoais a grandes portais - Parte 2
WordPress: De blogs pessoais a grandes portais - Parte 2
 
WordPress: De blogs pessoais a grandes portais - Parte 1
WordPress: De blogs pessoais a grandes portais - Parte 1WordPress: De blogs pessoais a grandes portais - Parte 1
WordPress: De blogs pessoais a grandes portais - Parte 1
 

Último

Atividade do poema sobre mãe de mário quintana.pdf
Atividade do poema sobre mãe de mário quintana.pdfAtividade do poema sobre mãe de mário quintana.pdf
Atividade do poema sobre mãe de mário quintana.pdfmaria794949
 
bem estar animal em proteção integrada componente animal
bem estar animal em proteção integrada componente animalbem estar animal em proteção integrada componente animal
bem estar animal em proteção integrada componente animalcarlamgalves5
 
O carteiro chegou - Janet & Allan Ahlberg
O carteiro chegou - Janet & Allan AhlbergO carteiro chegou - Janet & Allan Ahlberg
O carteiro chegou - Janet & Allan AhlbergBrenda Fritz
 
Labor e Trabalho em A Condição Humana de Hannah Arendt .pdf
Labor e Trabalho em A Condição Humana de Hannah Arendt .pdfLabor e Trabalho em A Condição Humana de Hannah Arendt .pdf
Labor e Trabalho em A Condição Humana de Hannah Arendt .pdfemeio123
 
livro para educação infantil conceitos sensorial
livro para educação infantil conceitos sensoriallivro para educação infantil conceitos sensorial
livro para educação infantil conceitos sensorialNeuroppIsnayaLciaMar
 
Exercícios de Clima no brasil e no mundo.pdf
Exercícios de Clima no brasil e no mundo.pdfExercícios de Clima no brasil e no mundo.pdf
Exercícios de Clima no brasil e no mundo.pdfRILTONNOGUEIRADOSSAN
 
Meu corpo - Ruth Rocha e Anna Flora livro
Meu corpo - Ruth Rocha e Anna Flora livroMeu corpo - Ruth Rocha e Anna Flora livro
Meu corpo - Ruth Rocha e Anna Flora livroBrenda Fritz
 
O que é uma Revolução Solar. tecnica preditiva
O que é uma Revolução Solar. tecnica preditivaO que é uma Revolução Solar. tecnica preditiva
O que é uma Revolução Solar. tecnica preditivaCludiaRodrigues693635
 
Slides Lição 8, Central Gospel, Os 144 Mil Que Não Se Curvarão Ao Anticristo....
Slides Lição 8, Central Gospel, Os 144 Mil Que Não Se Curvarão Ao Anticristo....Slides Lição 8, Central Gospel, Os 144 Mil Que Não Se Curvarão Ao Anticristo....
Slides Lição 8, Central Gospel, Os 144 Mil Que Não Se Curvarão Ao Anticristo....LuizHenriquedeAlmeid6
 
Apresentação sobre as etapas do desenvolvimento infantil
Apresentação sobre as etapas do desenvolvimento infantilApresentação sobre as etapas do desenvolvimento infantil
Apresentação sobre as etapas do desenvolvimento infantilMariaHelena293800
 
Semana Interna de Prevenção de Acidentes SIPAT/2024
Semana Interna de Prevenção de Acidentes SIPAT/2024Semana Interna de Prevenção de Acidentes SIPAT/2024
Semana Interna de Prevenção de Acidentes SIPAT/2024Rosana Andrea Miranda
 
Slides Lição 8, Betel, Ordenança para confessar os pecados e perdoar as ofens...
Slides Lição 8, Betel, Ordenança para confessar os pecados e perdoar as ofens...Slides Lição 8, Betel, Ordenança para confessar os pecados e perdoar as ofens...
Slides Lição 8, Betel, Ordenança para confessar os pecados e perdoar as ofens...LuizHenriquedeAlmeid6
 
UFCD_9184_Saúde, nutrição, higiene, segurança, repouso e conforto da criança ...
UFCD_9184_Saúde, nutrição, higiene, segurança, repouso e conforto da criança ...UFCD_9184_Saúde, nutrição, higiene, segurança, repouso e conforto da criança ...
UFCD_9184_Saúde, nutrição, higiene, segurança, repouso e conforto da criança ...Manuais Formação
 
Respostas prova do exame nacional Port. 2008 - 1ª fase - Criterios.pdf
Respostas prova do exame nacional Port. 2008 - 1ª fase - Criterios.pdfRespostas prova do exame nacional Port. 2008 - 1ª fase - Criterios.pdf
Respostas prova do exame nacional Port. 2008 - 1ª fase - Criterios.pdfssuser06ee57
 
Fotossíntese para o Ensino médio primeiros anos
Fotossíntese para o Ensino médio primeiros anosFotossíntese para o Ensino médio primeiros anos
Fotossíntese para o Ensino médio primeiros anosbiancaborges0906
 
Recurso da Casa das Ciências: Bateria/Acumulador
Recurso da Casa das Ciências: Bateria/AcumuladorRecurso da Casa das Ciências: Bateria/Acumulador
Recurso da Casa das Ciências: Bateria/AcumuladorCasa Ciências
 
Atividade com a música Xote da Alegria - Falamansa
Atividade com a música Xote  da  Alegria    -   FalamansaAtividade com a música Xote  da  Alegria    -   Falamansa
Atividade com a música Xote da Alegria - FalamansaMary Alvarenga
 
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfHans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfrarakey779
 
AS COLUNAS B E J E SUAS POSICOES CONFORME O RITO.pdf
AS COLUNAS B E J E SUAS POSICOES CONFORME O RITO.pdfAS COLUNAS B E J E SUAS POSICOES CONFORME O RITO.pdf
AS COLUNAS B E J E SUAS POSICOES CONFORME O RITO.pdfssuserbb4ac2
 
As Mil Palavras Mais Usadas No Inglês (Robert de Aquino) (Z-Library).pdf
As Mil Palavras Mais Usadas No Inglês (Robert de Aquino) (Z-Library).pdfAs Mil Palavras Mais Usadas No Inglês (Robert de Aquino) (Z-Library).pdf
As Mil Palavras Mais Usadas No Inglês (Robert de Aquino) (Z-Library).pdfcarloseduardogonalve36
 

Último (20)

Atividade do poema sobre mãe de mário quintana.pdf
Atividade do poema sobre mãe de mário quintana.pdfAtividade do poema sobre mãe de mário quintana.pdf
Atividade do poema sobre mãe de mário quintana.pdf
 
bem estar animal em proteção integrada componente animal
bem estar animal em proteção integrada componente animalbem estar animal em proteção integrada componente animal
bem estar animal em proteção integrada componente animal
 
O carteiro chegou - Janet & Allan Ahlberg
O carteiro chegou - Janet & Allan AhlbergO carteiro chegou - Janet & Allan Ahlberg
O carteiro chegou - Janet & Allan Ahlberg
 
Labor e Trabalho em A Condição Humana de Hannah Arendt .pdf
Labor e Trabalho em A Condição Humana de Hannah Arendt .pdfLabor e Trabalho em A Condição Humana de Hannah Arendt .pdf
Labor e Trabalho em A Condição Humana de Hannah Arendt .pdf
 
livro para educação infantil conceitos sensorial
livro para educação infantil conceitos sensoriallivro para educação infantil conceitos sensorial
livro para educação infantil conceitos sensorial
 
Exercícios de Clima no brasil e no mundo.pdf
Exercícios de Clima no brasil e no mundo.pdfExercícios de Clima no brasil e no mundo.pdf
Exercícios de Clima no brasil e no mundo.pdf
 
Meu corpo - Ruth Rocha e Anna Flora livro
Meu corpo - Ruth Rocha e Anna Flora livroMeu corpo - Ruth Rocha e Anna Flora livro
Meu corpo - Ruth Rocha e Anna Flora livro
 
O que é uma Revolução Solar. tecnica preditiva
O que é uma Revolução Solar. tecnica preditivaO que é uma Revolução Solar. tecnica preditiva
O que é uma Revolução Solar. tecnica preditiva
 
Slides Lição 8, Central Gospel, Os 144 Mil Que Não Se Curvarão Ao Anticristo....
Slides Lição 8, Central Gospel, Os 144 Mil Que Não Se Curvarão Ao Anticristo....Slides Lição 8, Central Gospel, Os 144 Mil Que Não Se Curvarão Ao Anticristo....
Slides Lição 8, Central Gospel, Os 144 Mil Que Não Se Curvarão Ao Anticristo....
 
Apresentação sobre as etapas do desenvolvimento infantil
Apresentação sobre as etapas do desenvolvimento infantilApresentação sobre as etapas do desenvolvimento infantil
Apresentação sobre as etapas do desenvolvimento infantil
 
Semana Interna de Prevenção de Acidentes SIPAT/2024
Semana Interna de Prevenção de Acidentes SIPAT/2024Semana Interna de Prevenção de Acidentes SIPAT/2024
Semana Interna de Prevenção de Acidentes SIPAT/2024
 
Slides Lição 8, Betel, Ordenança para confessar os pecados e perdoar as ofens...
Slides Lição 8, Betel, Ordenança para confessar os pecados e perdoar as ofens...Slides Lição 8, Betel, Ordenança para confessar os pecados e perdoar as ofens...
Slides Lição 8, Betel, Ordenança para confessar os pecados e perdoar as ofens...
 
UFCD_9184_Saúde, nutrição, higiene, segurança, repouso e conforto da criança ...
UFCD_9184_Saúde, nutrição, higiene, segurança, repouso e conforto da criança ...UFCD_9184_Saúde, nutrição, higiene, segurança, repouso e conforto da criança ...
UFCD_9184_Saúde, nutrição, higiene, segurança, repouso e conforto da criança ...
 
Respostas prova do exame nacional Port. 2008 - 1ª fase - Criterios.pdf
Respostas prova do exame nacional Port. 2008 - 1ª fase - Criterios.pdfRespostas prova do exame nacional Port. 2008 - 1ª fase - Criterios.pdf
Respostas prova do exame nacional Port. 2008 - 1ª fase - Criterios.pdf
 
Fotossíntese para o Ensino médio primeiros anos
Fotossíntese para o Ensino médio primeiros anosFotossíntese para o Ensino médio primeiros anos
Fotossíntese para o Ensino médio primeiros anos
 
Recurso da Casa das Ciências: Bateria/Acumulador
Recurso da Casa das Ciências: Bateria/AcumuladorRecurso da Casa das Ciências: Bateria/Acumulador
Recurso da Casa das Ciências: Bateria/Acumulador
 
Atividade com a música Xote da Alegria - Falamansa
Atividade com a música Xote  da  Alegria    -   FalamansaAtividade com a música Xote  da  Alegria    -   Falamansa
Atividade com a música Xote da Alegria - Falamansa
 
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfHans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
 
AS COLUNAS B E J E SUAS POSICOES CONFORME O RITO.pdf
AS COLUNAS B E J E SUAS POSICOES CONFORME O RITO.pdfAS COLUNAS B E J E SUAS POSICOES CONFORME O RITO.pdf
AS COLUNAS B E J E SUAS POSICOES CONFORME O RITO.pdf
 
As Mil Palavras Mais Usadas No Inglês (Robert de Aquino) (Z-Library).pdf
As Mil Palavras Mais Usadas No Inglês (Robert de Aquino) (Z-Library).pdfAs Mil Palavras Mais Usadas No Inglês (Robert de Aquino) (Z-Library).pdf
As Mil Palavras Mais Usadas No Inglês (Robert de Aquino) (Z-Library).pdf
 

Curso básico de Algoritmos com Python

  • 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.
  • 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.
  • 55. Strings – Indexação e manipulação Que 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
  • 74. MUITO OBRIGADO! www.grupoweblovers.org grupoweblovers@googlegroups.com twitter.com/WebLoversRN