SlideShare uma empresa Scribd logo
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

Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentais
Fabrício Lopes Sanchez
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em Python
Luciano Ramalho
 
Estrutura de Dados - Aula 04 - Listas Estáticas
Estrutura de Dados - Aula 04 - Listas EstáticasEstrutura de Dados - Aula 04 - Listas Estáticas
Estrutura de Dados - Aula 04 - Listas Estáticas
Leinylson Fontinele
 
Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01
thomasdacosta
 
Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02
thomasdacosta
 
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e ArraysEstrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
Loiane Groner
 
Estrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - ApresentaçãoEstrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - Apresentação
Leinylson Fontinele
 
Linguagem C 07 Registros
Linguagem C 07 RegistrosLinguagem C 07 Registros
Linguagem C 07 Registros
Regis Magalhães
 
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores Aritméticos
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores AritméticosAula 02 - Tipos de dados, Variáveis, Constantes e Operadores Aritméticos
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores Aritméticos
Messias Batista
 
Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros
Karoline Tavares
 
Python
PythonPython
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScript
Bruno Catã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
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e Algoritmos
Mario Jorge Pereira
 
Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e Programação
Aislan Rafael
 
Aula 4 - Estruturas condicionais
Aula 4 - Estruturas condicionaisAula 4 - Estruturas condicionais
Aula 4 - Estruturas condicionais
Rosanete Grassiani dos Santos
 
Introdução à Programação em Python
Introdução à Programação em PythonIntrodução à Programação em Python
Introdução à Programação em Python
Rodrigo Hübner
 
Python
PythonPython
Algoritmos: Tipos de Dados
Algoritmos: Tipos de DadosAlgoritmos: Tipos de Dados
Algoritmos: Tipos de Dados
Elaine Cecília Gatto
 
Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)
Luciano Ramalho
 

Mais procurados (20)

Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentais
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em Python
 
Estrutura de Dados - Aula 04 - Listas Estáticas
Estrutura de Dados - Aula 04 - Listas EstáticasEstrutura de Dados - Aula 04 - Listas Estáticas
Estrutura de Dados - Aula 04 - Listas Estáticas
 
Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01
 
Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02
 
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e ArraysEstrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
 
Estrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - ApresentaçãoEstrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - Apresentação
 
Linguagem C 07 Registros
Linguagem C 07 RegistrosLinguagem C 07 Registros
Linguagem C 07 Registros
 
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores Aritméticos
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores AritméticosAula 02 - Tipos de dados, Variáveis, Constantes e Operadores Aritméticos
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores Aritméticos
 
Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros
 
Python
PythonPython
Python
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScript
 
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)
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e Algoritmos
 
Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e Programação
 
Aula 4 - Estruturas condicionais
Aula 4 - Estruturas condicionaisAula 4 - Estruturas condicionais
Aula 4 - Estruturas condicionais
 
Introdução à Programação em Python
Introdução à Programação em PythonIntrodução à Programação em Python
Introdução à Programação em Python
 
Python
PythonPython
Python
 
Algoritmos: Tipos de Dados
Algoritmos: Tipos de DadosAlgoritmos: Tipos de Dados
Algoritmos: Tipos de Dados
 
Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)
 

Destaque

Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolso
Jean Lopes
 
Curso Python IFPB - Algoritmos
Curso Python IFPB - AlgoritmosCurso Python IFPB - Algoritmos
Curso Python IFPB - Algoritmos
Diego Lopes
 
Aprendendo python
Aprendendo pythonAprendendo python
Aprendendo python
Victor Marcelino
 
Python para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantes
richardsonlima
 
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
rodfernandes
 
Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nível
Igor 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 web2py
Gilson Filho
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e Tk
Carlos Campani
 
Python no ensino de programação
Python no ensino de programaçãoPython no ensino de programação
Python no ensino de programação
Givanaldo 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 Python
Giancarlo Silva
 
Python - Programação funcional
Python - Programação funcionalPython - Programação funcional
Python - Programação funcional
fabiocerqueira
 
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
Pedro Valente
 
Python no Celular
Python no CelularPython no Celular
Python no Celular
iuridiniz
 
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
 
Curso de Python e Django
Curso de Python e DjangoCurso de Python e Django
Curso de Python e Django
Osvaldo Santana Neto
 

Destaque (17)

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
 
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
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e Tk
 
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
 
Curso de Python e Django
Curso de Python e DjangoCurso de Python e Django
Curso de Python e Django
 

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 Python
Jeff560813
 
Python: programação divertida novamente
Python: programação divertida novamentePython: programação divertida novamente
Python: programação divertida novamente
Rodrigo Amaral
 
Aula3PythonBasico.ppt
Aula3PythonBasico.pptAula3PythonBasico.ppt
Aula3PythonBasico.ppt
MichaelArrais1
 
Aula3PythonBasico (1).ppt
Aula3PythonBasico (1).pptAula3PythonBasico (1).ppt
Aula3PythonBasico (1).ppt
MichaelArrais1
 
Python para Programadores
Python para ProgramadoresPython para Programadores
Python para Programadores
Osvaldo Santana Neto
 
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
Flá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
 
Python Emsl2009
Python Emsl2009Python Emsl2009
Python Emsl2009
Julio Cesar Eiras Melanda
 
Introducao ao python - Luciana Mota
Introducao ao python - Luciana MotaIntroducao ao python - Luciana Mota
Introducao ao python - Luciana Mota
lucianacmota
 
Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001
José Volmei Dal Prá Junior
 
Aula python
Aula pythonAula python
Java Básico
Java BásicoJava Básico
Java Básico
Wesley R. Bezerra
 
Tcc ritzmann,m.r. robotec
Tcc ritzmann,m.r. robotecTcc ritzmann,m.r. robotec
Tcc ritzmann,m.r. robotec
Magno 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 Python
Flávio Ribeiro
 
Aulas 13 e 14 - Algoritmos
Aulas 13 e 14 - AlgoritmosAulas 13 e 14 - Algoritmos
Aulas 13 e 14 - Algoritmos
Jocelma Rios
 
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
Laboratório de Políticas Públicas Participativas
 
PHP(I-Bim).ppt
PHP(I-Bim).pptPHP(I-Bim).ppt
PHP(I-Bim).ppt
MrcioSantos806520
 
Aula01
Aula01Aula01
Aula01
Yuri Passos
 
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
Norton 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.ppt
Aula3PythonBasico.pptAula3PythonBasico.ppt
Aula3PythonBasico.ppt
 
Aula3PythonBasico (1).ppt
Aula3PythonBasico (1).pptAula3PythonBasico (1).ppt
Aula3PythonBasico (1).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 WordPress
Giancarlo 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 apps
Giancarlo 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 rede
Giancarlo 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 verde
Giancarlo 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 2
Giancarlo 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 1
Giancarlo 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

Infografia | Presidência húngara do Conselho da UE
Infografia | Presidência húngara do Conselho da UEInfografia | Presidência húngara do Conselho da UE
Infografia | Presidência húngara do Conselho da UE
Centro Jacques Delors
 
EBOOK_HORA DO CONTO_O MONSTRO DAS CORES_ANGELINA & MÓNICA_22_23
EBOOK_HORA DO CONTO_O MONSTRO DAS CORES_ANGELINA & MÓNICA_22_23EBOOK_HORA DO CONTO_O MONSTRO DAS CORES_ANGELINA & MÓNICA_22_23
EBOOK_HORA DO CONTO_O MONSTRO DAS CORES_ANGELINA & MÓNICA_22_23
Sandra Pratas
 
Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...
Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...
Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...
LuizHenriquedeAlmeid6
 
Mini livro sanfona - Minha Escola Tem História.
Mini livro  sanfona - Minha Escola Tem História. Mini livro  sanfona - Minha Escola Tem História.
Mini livro sanfona - Minha Escola Tem História.
Mary Alvarenga
 
Relatório de Atividades 2020 CENSIPAM.pdf
Relatório de Atividades 2020 CENSIPAM.pdfRelatório de Atividades 2020 CENSIPAM.pdf
Relatório de Atividades 2020 CENSIPAM.pdf
Falcão Brasil
 
Caderno 1 - Módulo Água JMS 2024 (1).pdf
Caderno 1 -  Módulo Água JMS 2024 (1).pdfCaderno 1 -  Módulo Água JMS 2024 (1).pdf
Caderno 1 - Módulo Água JMS 2024 (1).pdf
SupervisoEMAC
 
Apresentação Institucional do Centro Gestor e Operacional do Sistema de Prote...
Apresentação Institucional do Centro Gestor e Operacional do Sistema de Prote...Apresentação Institucional do Centro Gestor e Operacional do Sistema de Prote...
Apresentação Institucional do Centro Gestor e Operacional do Sistema de Prote...
Falcão Brasil
 
Caça-palavras e cruzadinha - Encontros consonantais.
Caça-palavras e cruzadinha -  Encontros consonantais.Caça-palavras e cruzadinha -  Encontros consonantais.
Caça-palavras e cruzadinha - Encontros consonantais.
Mary Alvarenga
 
Alfabetização de adultos.pdf
Alfabetização de             adultos.pdfAlfabetização de             adultos.pdf
Alfabetização de adultos.pdf
arodatos81
 
Aprendizagem Imersiva: Conceitos e Caminhos
Aprendizagem Imersiva: Conceitos e CaminhosAprendizagem Imersiva: Conceitos e Caminhos
Aprendizagem Imersiva: Conceitos e Caminhos
Leonel Morgado
 
Noite Alva! José Ernesto Ferraresso.ppsx
Noite Alva! José Ernesto Ferraresso.ppsxNoite Alva! José Ernesto Ferraresso.ppsx
Noite Alva! José Ernesto Ferraresso.ppsx
Luzia Gabriele
 
Estudo Infantil - MISSÕES NACIONAIS - IGREJA BATISTA
Estudo Infantil - MISSÕES NACIONAIS - IGREJA BATISTAEstudo Infantil - MISSÕES NACIONAIS - IGREJA BATISTA
Estudo Infantil - MISSÕES NACIONAIS - IGREJA BATISTA
deboracorrea21
 
Slide para aplicação da AVAL. FLUÊNCIA.pptx
Slide para aplicação  da AVAL. FLUÊNCIA.pptxSlide para aplicação  da AVAL. FLUÊNCIA.pptx
Slide para aplicação da AVAL. FLUÊNCIA.pptx
LeilaVilasboas
 
Oceano, Fonte de Vida e Beleza Maria Inês Aroeira Braga.ppsx
Oceano, Fonte de Vida e Beleza Maria Inês Aroeira Braga.ppsxOceano, Fonte de Vida e Beleza Maria Inês Aroeira Braga.ppsx
Oceano, Fonte de Vida e Beleza Maria Inês Aroeira Braga.ppsx
Luzia Gabriele
 
As Ideias Têm Consequências - Richard M. Weaver
As Ideias Têm Consequências - Richard M. WeaverAs Ideias Têm Consequências - Richard M. Weaver
As Ideias Têm Consequências - Richard M. Weaver
C4io99
 
Caça-palavras - multiplicação
Caça-palavras  -  multiplicaçãoCaça-palavras  -  multiplicação
Caça-palavras - multiplicação
Mary Alvarenga
 
EBOOK_HORA DO CONTO_MARINELA NEVES & PAULA FRANCISCO_22_23
EBOOK_HORA DO CONTO_MARINELA NEVES & PAULA FRANCISCO_22_23EBOOK_HORA DO CONTO_MARINELA NEVES & PAULA FRANCISCO_22_23
EBOOK_HORA DO CONTO_MARINELA NEVES & PAULA FRANCISCO_22_23
Sandra Pratas
 
Folha de Atividades (Virei Super-Herói! Projeto de Edição de Fotos) com Grade...
Folha de Atividades (Virei Super-Herói! Projeto de Edição de Fotos) com Grade...Folha de Atividades (Virei Super-Herói! Projeto de Edição de Fotos) com Grade...
Folha de Atividades (Virei Super-Herói! Projeto de Edição de Fotos) com Grade...
marcos oliveira
 

Último (20)

Infografia | Presidência húngara do Conselho da UE
Infografia | Presidência húngara do Conselho da UEInfografia | Presidência húngara do Conselho da UE
Infografia | Presidência húngara do Conselho da UE
 
EBOOK_HORA DO CONTO_O MONSTRO DAS CORES_ANGELINA & MÓNICA_22_23
EBOOK_HORA DO CONTO_O MONSTRO DAS CORES_ANGELINA & MÓNICA_22_23EBOOK_HORA DO CONTO_O MONSTRO DAS CORES_ANGELINA & MÓNICA_22_23
EBOOK_HORA DO CONTO_O MONSTRO DAS CORES_ANGELINA & MÓNICA_22_23
 
Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...
Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...
Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...
 
Mini livro sanfona - Minha Escola Tem História.
Mini livro  sanfona - Minha Escola Tem História. Mini livro  sanfona - Minha Escola Tem História.
Mini livro sanfona - Minha Escola Tem História.
 
Relatório de Atividades 2020 CENSIPAM.pdf
Relatório de Atividades 2020 CENSIPAM.pdfRelatório de Atividades 2020 CENSIPAM.pdf
Relatório de Atividades 2020 CENSIPAM.pdf
 
Caderno 1 - Módulo Água JMS 2024 (1).pdf
Caderno 1 -  Módulo Água JMS 2024 (1).pdfCaderno 1 -  Módulo Água JMS 2024 (1).pdf
Caderno 1 - Módulo Água JMS 2024 (1).pdf
 
Apresentação Institucional do Centro Gestor e Operacional do Sistema de Prote...
Apresentação Institucional do Centro Gestor e Operacional do Sistema de Prote...Apresentação Institucional do Centro Gestor e Operacional do Sistema de Prote...
Apresentação Institucional do Centro Gestor e Operacional do Sistema de Prote...
 
Caça-palavras e cruzadinha - Encontros consonantais.
Caça-palavras e cruzadinha -  Encontros consonantais.Caça-palavras e cruzadinha -  Encontros consonantais.
Caça-palavras e cruzadinha - Encontros consonantais.
 
Alfabetização de adultos.pdf
Alfabetização de             adultos.pdfAlfabetização de             adultos.pdf
Alfabetização de adultos.pdf
 
Aprendizagem Imersiva: Conceitos e Caminhos
Aprendizagem Imersiva: Conceitos e CaminhosAprendizagem Imersiva: Conceitos e Caminhos
Aprendizagem Imersiva: Conceitos e Caminhos
 
Noite Alva! José Ernesto Ferraresso.ppsx
Noite Alva! José Ernesto Ferraresso.ppsxNoite Alva! José Ernesto Ferraresso.ppsx
Noite Alva! José Ernesto Ferraresso.ppsx
 
TALENTOS DA NOSSA ESCOLA .
TALENTOS DA NOSSA ESCOLA                .TALENTOS DA NOSSA ESCOLA                .
TALENTOS DA NOSSA ESCOLA .
 
Estudo Infantil - MISSÕES NACIONAIS - IGREJA BATISTA
Estudo Infantil - MISSÕES NACIONAIS - IGREJA BATISTAEstudo Infantil - MISSÕES NACIONAIS - IGREJA BATISTA
Estudo Infantil - MISSÕES NACIONAIS - IGREJA BATISTA
 
RECORDANDO BONS MOMENTOS! _
RECORDANDO BONS MOMENTOS!               _RECORDANDO BONS MOMENTOS!               _
RECORDANDO BONS MOMENTOS! _
 
Slide para aplicação da AVAL. FLUÊNCIA.pptx
Slide para aplicação  da AVAL. FLUÊNCIA.pptxSlide para aplicação  da AVAL. FLUÊNCIA.pptx
Slide para aplicação da AVAL. FLUÊNCIA.pptx
 
Oceano, Fonte de Vida e Beleza Maria Inês Aroeira Braga.ppsx
Oceano, Fonte de Vida e Beleza Maria Inês Aroeira Braga.ppsxOceano, Fonte de Vida e Beleza Maria Inês Aroeira Braga.ppsx
Oceano, Fonte de Vida e Beleza Maria Inês Aroeira Braga.ppsx
 
As Ideias Têm Consequências - Richard M. Weaver
As Ideias Têm Consequências - Richard M. WeaverAs Ideias Têm Consequências - Richard M. Weaver
As Ideias Têm Consequências - Richard M. Weaver
 
Caça-palavras - multiplicação
Caça-palavras  -  multiplicaçãoCaça-palavras  -  multiplicação
Caça-palavras - multiplicação
 
EBOOK_HORA DO CONTO_MARINELA NEVES & PAULA FRANCISCO_22_23
EBOOK_HORA DO CONTO_MARINELA NEVES & PAULA FRANCISCO_22_23EBOOK_HORA DO CONTO_MARINELA NEVES & PAULA FRANCISCO_22_23
EBOOK_HORA DO CONTO_MARINELA NEVES & PAULA FRANCISCO_22_23
 
Folha de Atividades (Virei Super-Herói! Projeto de Edição de Fotos) com Grade...
Folha de Atividades (Virei Super-Herói! Projeto de Edição de Fotos) com Grade...Folha de Atividades (Virei Super-Herói! Projeto de Edição de Fotos) com Grade...
Folha de Atividades (Virei Super-Herói! Projeto de Edição de Fotos) com Grade...
 

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