SlideShare une entreprise Scribd logo
1  sur  74
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Criando rede WLAN e SERVIDOR DNS E HTTP no Packet Tracer
Criando rede WLAN e SERVIDOR DNS E HTTP no Packet TracerCriando rede WLAN e SERVIDOR DNS E HTTP no Packet Tracer
Criando rede WLAN e SERVIDOR DNS E HTTP no Packet TracerEdenilton Michael
 
Oficina de Python para iniciantes
Oficina de Python para iniciantesOficina de Python para iniciantes
Oficina de Python para iniciantesmarioaxavier7
 
Introdução à programação
Introdução à programação Introdução à programação
Introdução à programação João Piedade
 
[Curso Java Basico] Aula 12: Lendo dados do teclado usando a classe Scanner
[Curso Java Basico] Aula 12: Lendo dados do teclado usando a classe Scanner[Curso Java Basico] Aula 12: Lendo dados do teclado usando a classe Scanner
[Curso Java Basico] Aula 12: Lendo dados do teclado usando a classe ScannerLoiane Groner
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a ObjetosIgor Takenami
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em pythonAlvaro Oliveira
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação CGercélia Ramos
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPDaniel Brandão
 
Apresentação python fábio jr alves
Apresentação python   fábio jr alvesApresentação python   fábio jr alves
Apresentação python fábio jr alvesGrupython Ufla
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsEvandro Júnior
 
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 TkCarlos Campani
 
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
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScriptCarlos Eduardo Kadu
 
Python Introdução e Orientação a Objetos.pdf
Python Introdução e Orientação a Objetos.pdfPython Introdução e Orientação a Objetos.pdf
Python Introdução e Orientação a Objetos.pdfMarioAthayde
 
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 ArraysLoiane Groner
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem PythonLuciano Ramalho
 

Tendances (20)

POO - Aula 10 - Polimorfismo
POO - Aula 10 - PolimorfismoPOO - Aula 10 - Polimorfismo
POO - Aula 10 - Polimorfismo
 
Criando rede WLAN e SERVIDOR DNS E HTTP no Packet Tracer
Criando rede WLAN e SERVIDOR DNS E HTTP no Packet TracerCriando rede WLAN e SERVIDOR DNS E HTTP no Packet Tracer
Criando rede WLAN e SERVIDOR DNS E HTTP no Packet Tracer
 
Oficina de Python para iniciantes
Oficina de Python para iniciantesOficina de Python para iniciantes
Oficina de Python para iniciantes
 
Introdução à programação
Introdução à programação Introdução à programação
Introdução à programação
 
[Curso Java Basico] Aula 12: Lendo dados do teclado usando a classe Scanner
[Curso Java Basico] Aula 12: Lendo dados do teclado usando a classe Scanner[Curso Java Basico] Aula 12: Lendo dados do teclado usando a classe Scanner
[Curso Java Basico] Aula 12: Lendo dados do teclado usando a classe Scanner
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em python
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
 
Curso de Node JS Básico
Curso de Node JS BásicoCurso de Node JS Básico
Curso de Node JS Básico
 
Apresentação python fábio jr alves
Apresentação python   fábio jr alvesApresentação python   fábio jr alves
Apresentação python fábio jr alves
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e Threads
 
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
 
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 }
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScript
 
Python Introdução e Orientação a Objetos.pdf
Python Introdução e Orientação a Objetos.pdfPython Introdução e Orientação a Objetos.pdf
Python Introdução e Orientação a Objetos.pdf
 
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
 
Apresentação sobre ipv6
Apresentação sobre ipv6Apresentação sobre ipv6
Apresentação sobre ipv6
 
Linguagem Assembly
Linguagem AssemblyLinguagem Assembly
Linguagem Assembly
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 

En vedette

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
 

En vedette (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
 
Curso de Python e Django
Curso de Python e DjangoCurso de Python e Django
Curso de Python e Django
 

Similaire à 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
 

Similaire à 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
 

Plus 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
 

Plus 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
 

Dernier

Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxTailsonSantos1
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaHELENO FAVACHO
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptxJssicaCassiano2
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfamarianegodoi
 
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVAEDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVAssuser2ad38b
 
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...DirceuNascimento5
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmicolourivalcaburite
 
GÊNERO CARTAZ - o que é, para que serve.pptx
GÊNERO CARTAZ - o que é, para que serve.pptxGÊNERO CARTAZ - o que é, para que serve.pptx
GÊNERO CARTAZ - o que é, para que serve.pptxMARIADEFATIMASILVADE
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*Viviane Moreiras
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxLuizHenriquedeAlmeid6
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2Maria Teresa Thomaz
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfHELENO FAVACHO
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfHELENO FAVACHO
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMHELENO FAVACHO
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do séculoBiblioteca UCS
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfHELENO FAVACHO
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.denisecompasso2
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfcomercial400681
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfHELENO FAVACHO
 

Dernier (20)

Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
 
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVAEDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
 
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
GÊNERO CARTAZ - o que é, para que serve.pptx
GÊNERO CARTAZ - o que é, para que serve.pptxGÊNERO CARTAZ - o que é, para que serve.pptx
GÊNERO CARTAZ - o que é, para que serve.pptx
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.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