Python Intermediário. terça-feira, 4 de agosto de 15



Documentos relacionados
Introdução ao Paradigma Orientado a Objetos. Principais conceitos

LÓGICA DE PROGRAMAÇÃO. Professor Celso Masotti

Implementando uma Classe e Criando Objetos a partir dela

Conceitos básicos da linguagem C

Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br

9 Comandos condicionais

Parte I. Orientação a objetos no PHP. Contato: <lara.popov@ifsc.edu.br> Site:

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

QUITETURA AVANÇADA DE SISTEMAS

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES

PROGRAMAÇÃO ORIENTADA A OBJETO EM PHP

Computação II Orientação a Objetos

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

5.1 Sistemas de Arquivos

agility made possible

Oficina de Programação em Python direcionada para o desenvolvimento de jogos

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

ÍNDICE. Delphi... 3 CAPÍTULO 1 INTRODUÇÃO CAPÍTULO 2 INSTALANDO O DELPHI... 10

ALGORITMOS MEMÓRIA, VARIÁVEIS E CONSTANTES, OPERADORES Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos

Curso de PHP. FATEC - Jundiaí. A programação orientada a objetos (object-oriented oriented programming

COMO PROGRAMAR SEU TIME

3.1 Definições Uma classe é a descrição de um tipo de objeto.

Usando o do-file editor Automatizando o Stata

Um objeto é uma instância de uma 'classe'. Você define uma classe utilizando o trecho de código abaixo;

TÉCNICAS DE PROGRAMAÇÃO

2 Pesquisa de valores em uma lista de dados

1) Ao ser executado o código abaixo, em PHP, qual será o resultado impresso em tela?

INTRODUÇÃO À LINGUAGEM C++

2 echo "PHP e outros.";

Astra LX Registro de Pacientes e Médicos Guia para o acesso aos registros de Pacientes e Médicos e eliminação de dados duplicados no AstraLX

Objetivo principal: aprender como definir e chamar funções.

Aula de JavaScript 05/03/10

Orientação a Objetos. Conceitos Iniciais Introdução a Linguagem Java. Gil Eduardo de Andrade

Organização de Computadores Software

Sistemas de Apoio à Decisão

DALUA: BIBLIOTECA PARA APLICAÇÕES DISTRIBUÍDAS

Entendendo as Permissões de Arquivos no GNU/Linux

Cotagem de dimensões básicas

Programação Orientada a Objeto

Algoritmos e Programação Parte Teórica

QUANTIFICADORES. Existem frases declarativas que não há como decidir se são verdadeiras ou falsas. Por exemplo: (a) Ele é um campeão da Fórmula 1.

7. Estrutura de Decisão

Desenvolvimento estruturado versus orientado a objetos.

Prof. Me. Marcos Echevarria

Figura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO?

Meu Grande Amigo. Como Escolher O Cão Ideal Para Você E Sua Família. Paulo I. S. Doreste

3. INTRODUÇÃO À LINGUAGEM C 3.1. CONCEITOS BÁSICOS. Lógica de Programação

DESENVOLVIMENTO DE SOFTWARE

Arte em ASCII. Introdução: Python

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza.

COMO CRIAR UM SITE DE NEGÓCIOS

Manual da. pesquisa Informática S.A

Exercícios de Revisão Java Básico

Bem-vindo ao tópico sobre consultas no SAP Business One.

Tuplas e Dicionários. Vanessa Braganholo vanessa@ic.uff.br

Separação de Interesses Programação Estruturada e Programação Orientada a Objetos Entrelaçamento de Código Espalhamento de Código

Programação para web JavaScript

Análise e Projeto Orientado a Objetos

Programação Orientada a Objetos: Lista de exercícios #1. Bruno Góis Mateus

Algoritmos em Javascript

JavaScript (ou JScript)

TUTORIAL AMBIENTE WEB PORTUGOL

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Programação Orientada a Objetos (DPADF 0063)

cast poderia ser usado também para transformar um real (float) em inteiro. A sintaxe C (float)i pode ser substituída em C++ por float(i).

MAB224 Programação de Computadores II. Prof. Franklin Marquezino Universidade Federal do Rio de Janeiro

Aula 1: Conhecendo a Calculadora

INF 1007 Programação II

Comandos de repetição while

UML: Diagrama de Casos de Uso, Diagrama de Classes

Influenciam nossa percepção; ajudam-nos a organizar e a coordenar a Classes estimulam projeto centrado em dados:

IMPRESSÃO DE DADOS VARIÁVEIS usando Adobe InDesign e OpenOffice.org

Autor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006. PdP. Pesquisa e Desenvolvimento de Produtos

Sensor de temperatura Parte 5 Cleiton Bueno Preparando o ambiente do Banco de dados Mysql

Psicologia Social. É a área da Psicologia que procura estudar a interação social.

Equipe OC- Olimpíadas Científicas

Algoritmos e programação

INTRODUÇÃO AO JAVA PARA PROGRAMADORES C

Indicamos inicialmente os números de cada item do questionário e, em seguida, apresentamos os dados com os comentários dos alunos.

2ª Lista de Exercícios Orientação a Objetos

Especificação do Trabalho

LÓGICA DE PROGRAMAÇÃO. Vitor Valerio de Souza Campos

2 Ferramentas Utilizadas

Programação: Estruturas de seleção

Tema 1: Modelo Estático

AMBIENTE DE PROGRAMAÇÃO PYTHON

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES SISTEMAS DE NUMERAÇÃO: REPRESENTAÇÃO EM PONTO FLUTUANTE. Prof. Dr. Daniel Caetano

Montagem e Manutenção. Luís Guilherme A. Pontes

compreender a importância de cada estrutura de controle disponível na Linguagem C;

Representação de Algoritmos - Linguagens de Programação

Aula 12: Funções. Pré-requisitos: Todas as aulas anteriores deste módulo. 1. Aproveitando Códigos no Programa

Desenvolvimento OO com Java Orientação a objetos básica

COMO MINIMIZAR AS DÍVIDAS DE UM IMÓVEL ARREMATADO

Som, Vídeo, e Deep Zoom. José Antônio da Cunha IFRN

COMANDO DA AERONÁUTICA ESCOLA DE ESPECIALISTAS DE AERONÁUTICA SUBDIVISÃO DE ADMISSÃO E DE SELEÇÃO

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Transcrição:

Python Intermediário

I FUNÇÕES Módulo Python (Intermediário)

Função Uma função é uma sequência de comandos que desempenham algum tipo de tarefa no seu programa Evita duplicação de código Facilita alterações: se quisermos mudar como a tarefa deve ser executada, teremos apenas um local para modificar

Função (Exemplo) def imprime_uma_mensagem(): print( Olá mundo! ) def => indica o início da definição de uma função imprime_uma_mensagem => nome da função () => a definição de parâmetros é feita entre os parênteses : (dois pontos) => indica o início do corpo da função, tudo que estiver identado faz parte desse corpo Para chamar a função: imprime_uma_mensagem()

Função (Exemplo) def imprime_uma_mensagem(msg): print(msg)

Parâmetros padrão (Exemplo) def cumprimentar(trat, nome, sobrenome, formal=true): if formal: return "Olá, %s %s!" % (trat, sobrenome) return "Olá, %s!" % nome print(cumprimentar("sr", "Jose", "Silva")) print(cumprimentar("sr", "Jose", "Silva", False))

Funções (Exercícios) 1. Defina uma função chamada maior() que receba dois números como argumento e retorne o maior deles. (Não vale usar a função max()) 2. Defina a função maior_de_tres() que receba três números e retorne o maior deles 3. Defina uma função chamada largura() que retorne o tamanho de uma string ou lista. (Não vale usar a função len())

Funções (Exercícios) 4. Define uma função chamada eh_vogal(), que receba um caractere (string de tamanho 1) e retorne True se for uma vogal e False caso contrário. 5. Defina as funções soma() e multiplica() que recebam uma lista e retornem o somatório e produtório dessa lista, respectivamente. Exemplo: soma([1,2,3,4]) retorna 10 multiplica([1, 2, 3, 4]) retorna 24

II CLASSES Módulo Python (Intermediário)

Classe É uma forma de agrupar dados e funções que trabalham sobre esses dados Define um um novo tipo de dado, como string, inteiro, lista, etc. Os valores dos dados que salvamos em uma classe são chamados atributos, e as funções associadas à classe são chamadas de métodos

Classe Em Python, tudo é objeto. Ou seja, tudo é uma instância de alguma classe Para saber o tipo (ou classe) de determinado objeto, basta: type(objeto) Exercício: verifique o tipo de alguns objetos (exemplo: strings, inteiros, funções, etc)

Classes (Exemplo) class Pessoa: def init (self, nome, idade): self.nome = nome self.idade = idade def ano_nascimento(self): return 2015 - self.idade

Classes (Exercícios) 1. Defina uma classe chamada Animal com as seguintes características: Atributos: especie (string), nome (string), idade (inteiro) Métodos: init (self, especie, nome, idade) se_apresentar(self): print( Eu sou um(a) %s, meu nome é %s e tenho %s anos de idade % (self.especie, self.nome, str(self.idade))) ano_nascimento(self): Retorna o ano em que o animal nasceu

Classes (Exercícios) 2. Defina uma classe chamada Dono com as seguintes características: Atributos: nome (string), pets (lista de Animais) Métodos: init (self, especie, nome, idade) adicionar_pet(self, animal): adiciona um Animal à lista de pets do Dono.

Classe (Exercícios) Vamos melhorar nossa classe pessoa: import datetime # objetos de data... def init (self, nome, nascimento): self.nome = nome self.nascimento = nascimento def idade(self): hoje = datetime.date.today() idade = hoje.year - self.nascimento.year if hoje < datetime.date(hoje.year, self.nascimento.month, self.nascimento.day): idade -= 1 return idade

III Orientação à objetos Módulo Python (Intermediário)

Introdução Não é obrigatório organizar seu código em classes ao programar em Python. Você pode usar apenas funções, e essa abordagem é chamada de procedural. O paradigma procedural funciona bem para programas simples. Mas para programas maiores e complexos, a Programação Orientada a Objetos (POO) se mostra uma abordagem mais adequada.

Vantagens Código mais organizado Dados e funções (métodos no caso) relacionados são colocados em uma única estrutura (a classe) Mais intuitiva, pois já aprendemos a pensar naturalmente sobre objetos e os relacionamentos entre eles Mais fácil de codificar usando boas práticas Vejamos alguns conceitos de POO e suas implementações em Python...

Composição É uma forma de relacionamento de objetos onde um objeto é colocado como atributo de outro Se pudermos expressar um relacionamento entre duas classes através do termo tem-um (ou temuma), então esse é um relacionamento de composição Exemplo: Um objeto da classe Pessoa que possui um campo chamado nascimento que armazena um objeto da classe datetime

Composição (Exercício) Implemente as seguintes classes: Classe Atributos Métodos Estudante Departamento Disciplina nome (string) numero (inteiro) disciplinas (lista - Disciplina) nome (string) nome (string) codigo (string) creditos (inteiro) departamento (Departamento) init matricular(self, disciplina) init adicionar_disciplina(self, disciplina) init adicionar_estudante(self, estudante)

Composição (Exercício) 1. Descreva brevemente um possível conjunto de classes que poderiam ser usadas para representar uma coleção de músicas (exemplos de classes: Musica, Artista, Album, Playlist) 2. Escreva uma implementação simples do modelo que mostre como as diferentes classes estariam relacionadas

Herança É uma forma de arranjar objetos em uma hierarquia Um objeto que herda de outro objeto é considerado como um subtipo daquele objeto Se pudermos expressar um relacionamento entre duas classes através do termo é-um (ou é-uma), então esse é um relacionamento de herança class Animal:... class Cachorro(Animal):...

Herança Herança nos ajuda a representar objetos que possuem semelhanças na maneira como funcionam De forma que podemos implementar funcionalidades comuns em uma classe pai (ou base) e reaproveitar nas classes filhas (ou subclasses)

Herança (Exemplo) class Animal: def init (self, nome, peso): self.nome = nome self.peso = peso class Cachorro(Animal): def latir(self): print( %s: Au, au, au! % self.nome) class Gato(Animal): def miar(self): print( %s: Miau Miau! % self.nome) um_cao = Cachorro( Bob, 12) um_cao.latir() um_gato = Gato( Nik, 3) um_gato.miar()

Herança (Exercício) Modele e implemente utilizando Herança as seguintes classes: Pessoa Aluno Professor Para testar, crie atributos e métodos adequados a cada tipo de classe

III Erros e Exceções Módulo Python (Intermediário)

Erros Erros em um programa são frequentemente chamados de bugs Quase sempre são causados uma falha do programador O processo de encontrar e eliminar bugs é chamado de debugging Erros podem ser categorizados em 3 grupos: Erros de sintaxe Erros em tempo de execução Erros de lógica

Erros de sintaxe Erros na utilização da linguagem de programação São análogos aos erros ortográficos e gramaticais da lingua portuguesa Erros de sintaxe comuns no Python: Escrever uma palavra reservada de forma errada (exemplo: clas) Esquecer de colocar um símbolo, como vírgula, ponto, parênteses Identação incorreta

Erros de sintaxe (Exercício) Provoque alguns erros de sintaxe e observe como o interpretador se comporta: myfunction(x, y): return x + y else: print("hello!") if arriving: print("hi!") esle: print("bye!") if mark >= 50 print("you passed!") if flag: print("flag is set!")

V DESAFIOS Módulo Python (Intermediário)

Funções 1. Defina uma função chamada reverte() que reverte uma string. Exemplo: reverte( Teste ) retorna etset 2. Defina uma função chamada eh_palindromo() que reconhece palíndromos (palavras ou frases iguais ao seu reverso, exemplo: radar). Exemplo: eh_palindromo( sopapos ) retorna True

Funções 3. Escreva uma função chamada eh_membro() que recebe um valor (string ou número) e uma lista de valores e verifica se o valor existe na lista. (Não vale usar o operador in). Exemplo: eh_membro(2, [1,2,5]) retorna True

Funções 4. Defina uma função chamada intersecao() que recebe duas listas e retorna os elementos que fazem parte das duas listas. Exemplo: intersecao([1,2,3], [1,3,5]) retorna [1,3] 5. Defina uma função chamada histograma() que recebe uma lista de inteiros e imprime um histograma no terminal. Exemplo: histograma(3, 6, 4) imprime: * * * * * * * * * * * * *

Classes 1. Defina uma classe chamada Triangulo com as seguintes características: Atributos: angulo1, angulo2 e angulo3 (todos números) Métodos: init (self, a1, a2, a3) verificar_angulos(self): Verifica que a soma dos três triângulos dá 180 Retorne True se a soma der 180, e False caso contrário.

Classes 2. Defina uma classe chamada Musica com as seguintes características: Atributos: letra (lista de versos) Métodos: init (self, letra) cantar(self): Imprime a música, um verso por linha Exemplo de chamada: feliz_aniversario = Musica([ Parabéns pra você, Nesta data querida, Muitas felicidades, Muitos anos de vida! ]) feliz_aniversario.cantar()

Classes 3. Defina uma classe chamada Utilidades e coloque, como métodos, as funções criadas nos desafios de 1 a 5 (Funções): reverte eh_palindromo eh_membro intersecao histograma Testar cada uma delas