Este documento apresenta uma introdução à programação em Python e ao toolkit Tk. Ele discute os objetivos do curso, as características da linguagem Python, a importância da teoria e da prática, e como usar o interpretador Python de forma interativa.
14 programando em python - interfaces graficas com tkVictor Marcelino
O documento descreve a biblioteca Tkinter para construção de interfaces gráficas em Python. Tkinter é uma interface para o toolkit Tk e permite criar janelas, botões, rótulos e outros widgets. O documento explica como importar Tkinter, criar widgets, configurar suas propriedades e gerenciar a geometria dos elementos na tela.
O documento apresenta os conceitos e implementação de pilhas como estrutura de dados. Aborda o funcionamento básico de pilhas com LIFO, exemplos de aplicações, implementação com vetor e lista encadeada em Java. Inclui exercícios sobre criação de pilha para armazenar contatos e conversão de notações matemáticas usando pilhas.
O documento apresenta uma introdução ao desenvolvimento web com Python e Django, abordando a história e características da linguagem Python, o interpretador Python, tipos de dados, operadores, estruturas de controle e outros conceitos básicos da linguagem.
Programando em python interfaces graficas com tksamuelthiago
O documento descreve as interfaces gráficas em Python usando a biblioteca Tkinter. Tkinter é uma biblioteca leve para construção de interfaces gráficas que vem embutida no Python. O documento explica como criar janelas, widgets como rótulos e botões, e gerenciar a geometria e posicionamento dos elementos visuais.
Introdução a Python resume os principais pontos sobre a linguagem Python, incluindo sua criação, tipagem dinâmica, uso em diferentes áreas e bibliotecas, conceitos básicos como variáveis e tipos de dados, estruturas de repetição e condicionais, manipulação de strings e arquivos.
Python não força o programador a pensar em objetos, mas eles fazem parte da linguagem desde o início, incluindo conceitos avançados como sobrecarga de operadores, herança múltipla e introspecção. Com sua sintaxe simples, é muito natural aprender orientação a objetos em Python
Este documento apresenta uma introdução à linguagem de programação Python. Ele discute as características e implementações da linguagem, tipos de dados como números, strings e listas, e conceitos como variáveis, funções, orientação a objetos e módulos. O documento é dividido em três partes cobrindo tópicos como apresentação, introdução e detalhes da linguagem.
O documento discute tratamento de exceções em programação orientada a objetos. Exceções indicam erros ocorridos durante a execução de um programa. Há duas atividades associadas a exceções: geração, quando o erro ocorre, e captura, quando o erro é tratado. Exceções podem ser verificadas ou não verificadas.
14 programando em python - interfaces graficas com tkVictor Marcelino
O documento descreve a biblioteca Tkinter para construção de interfaces gráficas em Python. Tkinter é uma interface para o toolkit Tk e permite criar janelas, botões, rótulos e outros widgets. O documento explica como importar Tkinter, criar widgets, configurar suas propriedades e gerenciar a geometria dos elementos na tela.
O documento apresenta os conceitos e implementação de pilhas como estrutura de dados. Aborda o funcionamento básico de pilhas com LIFO, exemplos de aplicações, implementação com vetor e lista encadeada em Java. Inclui exercícios sobre criação de pilha para armazenar contatos e conversão de notações matemáticas usando pilhas.
O documento apresenta uma introdução ao desenvolvimento web com Python e Django, abordando a história e características da linguagem Python, o interpretador Python, tipos de dados, operadores, estruturas de controle e outros conceitos básicos da linguagem.
Programando em python interfaces graficas com tksamuelthiago
O documento descreve as interfaces gráficas em Python usando a biblioteca Tkinter. Tkinter é uma biblioteca leve para construção de interfaces gráficas que vem embutida no Python. O documento explica como criar janelas, widgets como rótulos e botões, e gerenciar a geometria e posicionamento dos elementos visuais.
Introdução a Python resume os principais pontos sobre a linguagem Python, incluindo sua criação, tipagem dinâmica, uso em diferentes áreas e bibliotecas, conceitos básicos como variáveis e tipos de dados, estruturas de repetição e condicionais, manipulação de strings e arquivos.
Python não força o programador a pensar em objetos, mas eles fazem parte da linguagem desde o início, incluindo conceitos avançados como sobrecarga de operadores, herança múltipla e introspecção. Com sua sintaxe simples, é muito natural aprender orientação a objetos em Python
Este documento apresenta uma introdução à linguagem de programação Python. Ele discute as características e implementações da linguagem, tipos de dados como números, strings e listas, e conceitos como variáveis, funções, orientação a objetos e módulos. O documento é dividido em três partes cobrindo tópicos como apresentação, introdução e detalhes da linguagem.
O documento discute tratamento de exceções em programação orientada a objetos. Exceções indicam erros ocorridos durante a execução de um programa. Há duas atividades associadas a exceções: geração, quando o erro ocorre, e captura, quando o erro é tratado. Exceções podem ser verificadas ou não verificadas.
O documento discute arrays em Java. Ele explica que arrays são coleções homogêneas de valores ou objetos, e que para criar e usar um array são necessários três passos: declaração, construção e inicialização. Ele também descreve como acessar, inicializar e percorrer elementos de um array.
O documento discute os conceitos fundamentais de orientação a objetos, incluindo classes, objetos, encapsulamento, herança, polimorfismo, modificadores de acesso e construtores. Também aborda diagramas, propriedades, métodos e interfaces.
O documento discute o tratamento de exceções em Java, definindo exceções como eventos que quebram o fluxo normal de execução de um programa e indicam erros. Ele explica como tratar exceções usando os blocos try/catch e a palavra-chave finally, além de discutir exceções verificadas versus não verificadas e métodos para lidar com exceções lançadas.
Aula 2 - POO: Fundamentos da linguagem JavaDaniel Brandão
Aula 2 da disciplina Programação Orientada a Objetos, onde é apresentando o conceito inicial da linguagem JAVA, que será a base da aplicação prática na disciplina.
JavaScript é a linguagem do browser e mais popular do mundo. Foi criada em 1995 para o Netscape e adotada pela Microsoft em 1996. Apesar de sua má fama inicial devido a problemas como variáveis globais e parseInt, JavaScript possui "partes boas" como funções como valores, objetos dinâmicos e JSON que a tornaram uma linguagem importante.
O documento discute a introdução à linguagem de programação Python. Aborda tópicos como tipos de dados primitivos, variáveis, operadores matemáticos e lógicos, estruturas de controle como if/else e loops while e for. Também apresenta listas e strings como estruturas de dados fundamentais em Python.
Apresentação da Palestra sobre o Framework Django, utilizado no desenvolvimento de sites e aplicações web. Na apresentação são mostrados os recursos do Django, citando seu ORM, acesso a bancos de dados, templates, cache, views, urls e diversos outros recursos.
O documento discute o paradigma lógico de programação, no qual programas são definidos declarativamente através de fatos e regras lógicas. A linguagem Prolog é apresentada como a principal linguagem deste paradigma, permitindo declarar fatos sobre objetos e relacionamentos, definir regras sobre esses objetos e fazer perguntas para inferir novas informações.
O documento discute a normalização da relação MATRICULA, que contém atributos sobre disciplinas, professores, salas, horários e notas de estudantes. A relação possui várias dependências funcionais e não está na terceira forma normal. Ela seria decomposta em cinco relações na terceira forma normal, preservando todas as dependências funcionais.
O documento apresenta um resumo de 3 frases ou menos sobre o tópico da aula:
1) A aula introduz a linguagem Python, discutindo suas características, instalação e primeiros programas;
2) Também são apresentados tipos de dados básicos, operadores, entrada e saída de dados, estruturas de controle de fluxo como if/else e loops;
3) Por fim, há exemplos mostrando como usar strings, documentação interativa e diferentes formas de laços como for e while.
O documento discute programação com Python, abordando tópicos como:
1) Quem utiliza Python e suas aplicações;
2) Conceitos básicos da linguagem como variáveis, tipos, estruturas de dados e instruções;
3) Orientação a objetos com Python, incluindo classes, atributos, métodos e exercícios práticos.
O documento discute conceitos de orientação a objetos em Python, definindo objetos como componentes de software que incluem dados e comportamentos. Explica que classes definem tipos de objetos abstratos e instâncias de classes são objetos concretos. Demonstra a criação de uma classe Cao e instância rex para ilustrar a relação entre classe e objeto.
O documento introduz o conceito de Python como uma linguagem de programação interpretada e dinamicamente tipada. Apresenta alguns tópicos básicos como estruturas de dados como listas e dicionários, além de operadores e funções.
O documento descreve conceitos de pilhas e filas em Java. Ele apresenta:
1) As definições de pilha e fila, incluindo os princípios LIFO e FIFO.
2) As principais operações de pilhas e filas como push, pop, enqueue e dequeue.
3) Implementações de pilhas e filas usando arranjos em Java e suas complexidades de tempo e espaço.
Algoritmos e Estrutura de Dados - Aula 01thomasdacosta
O professor Thomás da Costa apresenta-se e fornece informações sobre o curso de Algoritmos e Estrutura de Dados. Ele detalha sua experiência profissional, as formas de avaliação do curso, os tópicos que serão abordados e a importância da disciplina para a carreira de programador.
O documento discute tratamento de exceções em Java. Ele explica que o tratamento de exceções permite detectar e lidar com erros durante a execução de um programa. Apresenta exemplos de código que usam blocos try-catch e try-finally para tratar erros como divisão por zero. Discute também as classes que identificam diferentes tipos de erros.
O documento discute tratamento de exceções em Java, apresentando soluções para problemas comuns como armazenamento de dados inválidos e retorno de erros. Exceções representam situações não normais e devem ser usadas para separar lógica de negócio do tratamento de erros, lançando exceções em casos específicos e tratando-as com blocos try-catch. A hierarquia de exceções em Java é explicada, com RuntimeException para erros de lógica e checked exceptions para erros recuperáveis.
Aula tecnologia da informacao 6 banco de dadoswapiva
O documento explica os objetivos da aula sobre gerenciamento de bancos de dados, incluindo explicar a importância da implementação de processos e tecnologias de gerenciamento de dados, as vantagens de uma abordagem de gerenciamento de bancos de dados e como o software de gerenciamento de banco de dados auxilia as empresas. Também dará exemplos para ilustrar conceitos-chave sobre bancos de dados.
Aula 03 - Introdução aos Diagramas de AtividadeAlberto Simões
Introdução aos Diagramas de Atividade (UML) para a disciplina de Planeamento de Sistemas de Informação do Mestrado em Informação Empresarial da Escola Superior de Estudos Industriais e de Gestão do Instituto Politécnico do Porto.
Este documento apresenta os fundamentos da linguagem de programação Java, incluindo sua história, características como orientação a objetos, portabilidade e segurança, e o passo a passo para instalação do ambiente de desenvolvimento Java.
Este documento apresenta um resumo do guia de bolso "Python - Guia de Bolso". Ele fornece um resumo conciso das instruções, tipos, funções e módulos da linguagem Python, servindo como ferramenta de consulta para desenvolvedores. O guia também inclui informações sobre a história e aplicações da linguagem Python.
O documento discute arrays em Java. Ele explica que arrays são coleções homogêneas de valores ou objetos, e que para criar e usar um array são necessários três passos: declaração, construção e inicialização. Ele também descreve como acessar, inicializar e percorrer elementos de um array.
O documento discute os conceitos fundamentais de orientação a objetos, incluindo classes, objetos, encapsulamento, herança, polimorfismo, modificadores de acesso e construtores. Também aborda diagramas, propriedades, métodos e interfaces.
O documento discute o tratamento de exceções em Java, definindo exceções como eventos que quebram o fluxo normal de execução de um programa e indicam erros. Ele explica como tratar exceções usando os blocos try/catch e a palavra-chave finally, além de discutir exceções verificadas versus não verificadas e métodos para lidar com exceções lançadas.
Aula 2 - POO: Fundamentos da linguagem JavaDaniel Brandão
Aula 2 da disciplina Programação Orientada a Objetos, onde é apresentando o conceito inicial da linguagem JAVA, que será a base da aplicação prática na disciplina.
JavaScript é a linguagem do browser e mais popular do mundo. Foi criada em 1995 para o Netscape e adotada pela Microsoft em 1996. Apesar de sua má fama inicial devido a problemas como variáveis globais e parseInt, JavaScript possui "partes boas" como funções como valores, objetos dinâmicos e JSON que a tornaram uma linguagem importante.
O documento discute a introdução à linguagem de programação Python. Aborda tópicos como tipos de dados primitivos, variáveis, operadores matemáticos e lógicos, estruturas de controle como if/else e loops while e for. Também apresenta listas e strings como estruturas de dados fundamentais em Python.
Apresentação da Palestra sobre o Framework Django, utilizado no desenvolvimento de sites e aplicações web. Na apresentação são mostrados os recursos do Django, citando seu ORM, acesso a bancos de dados, templates, cache, views, urls e diversos outros recursos.
O documento discute o paradigma lógico de programação, no qual programas são definidos declarativamente através de fatos e regras lógicas. A linguagem Prolog é apresentada como a principal linguagem deste paradigma, permitindo declarar fatos sobre objetos e relacionamentos, definir regras sobre esses objetos e fazer perguntas para inferir novas informações.
O documento discute a normalização da relação MATRICULA, que contém atributos sobre disciplinas, professores, salas, horários e notas de estudantes. A relação possui várias dependências funcionais e não está na terceira forma normal. Ela seria decomposta em cinco relações na terceira forma normal, preservando todas as dependências funcionais.
O documento apresenta um resumo de 3 frases ou menos sobre o tópico da aula:
1) A aula introduz a linguagem Python, discutindo suas características, instalação e primeiros programas;
2) Também são apresentados tipos de dados básicos, operadores, entrada e saída de dados, estruturas de controle de fluxo como if/else e loops;
3) Por fim, há exemplos mostrando como usar strings, documentação interativa e diferentes formas de laços como for e while.
O documento discute programação com Python, abordando tópicos como:
1) Quem utiliza Python e suas aplicações;
2) Conceitos básicos da linguagem como variáveis, tipos, estruturas de dados e instruções;
3) Orientação a objetos com Python, incluindo classes, atributos, métodos e exercícios práticos.
O documento discute conceitos de orientação a objetos em Python, definindo objetos como componentes de software que incluem dados e comportamentos. Explica que classes definem tipos de objetos abstratos e instâncias de classes são objetos concretos. Demonstra a criação de uma classe Cao e instância rex para ilustrar a relação entre classe e objeto.
O documento introduz o conceito de Python como uma linguagem de programação interpretada e dinamicamente tipada. Apresenta alguns tópicos básicos como estruturas de dados como listas e dicionários, além de operadores e funções.
O documento descreve conceitos de pilhas e filas em Java. Ele apresenta:
1) As definições de pilha e fila, incluindo os princípios LIFO e FIFO.
2) As principais operações de pilhas e filas como push, pop, enqueue e dequeue.
3) Implementações de pilhas e filas usando arranjos em Java e suas complexidades de tempo e espaço.
Algoritmos e Estrutura de Dados - Aula 01thomasdacosta
O professor Thomás da Costa apresenta-se e fornece informações sobre o curso de Algoritmos e Estrutura de Dados. Ele detalha sua experiência profissional, as formas de avaliação do curso, os tópicos que serão abordados e a importância da disciplina para a carreira de programador.
O documento discute tratamento de exceções em Java. Ele explica que o tratamento de exceções permite detectar e lidar com erros durante a execução de um programa. Apresenta exemplos de código que usam blocos try-catch e try-finally para tratar erros como divisão por zero. Discute também as classes que identificam diferentes tipos de erros.
O documento discute tratamento de exceções em Java, apresentando soluções para problemas comuns como armazenamento de dados inválidos e retorno de erros. Exceções representam situações não normais e devem ser usadas para separar lógica de negócio do tratamento de erros, lançando exceções em casos específicos e tratando-as com blocos try-catch. A hierarquia de exceções em Java é explicada, com RuntimeException para erros de lógica e checked exceptions para erros recuperáveis.
Aula tecnologia da informacao 6 banco de dadoswapiva
O documento explica os objetivos da aula sobre gerenciamento de bancos de dados, incluindo explicar a importância da implementação de processos e tecnologias de gerenciamento de dados, as vantagens de uma abordagem de gerenciamento de bancos de dados e como o software de gerenciamento de banco de dados auxilia as empresas. Também dará exemplos para ilustrar conceitos-chave sobre bancos de dados.
Aula 03 - Introdução aos Diagramas de AtividadeAlberto Simões
Introdução aos Diagramas de Atividade (UML) para a disciplina de Planeamento de Sistemas de Informação do Mestrado em Informação Empresarial da Escola Superior de Estudos Industriais e de Gestão do Instituto Politécnico do Porto.
Este documento apresenta os fundamentos da linguagem de programação Java, incluindo sua história, características como orientação a objetos, portabilidade e segurança, e o passo a passo para instalação do ambiente de desenvolvimento Java.
Este documento apresenta um resumo do guia de bolso "Python - Guia de Bolso". Ele fornece um resumo conciso das instruções, tipos, funções e módulos da linguagem Python, servindo como ferramenta de consulta para desenvolvedores. O guia também inclui informações sobre a história e aplicações da linguagem Python.
Este documento fornece uma introdução à linguagem de programação Python. Resume os principais pontos sobre o que é Python, por que usar Python, e compara Python com outras linguagens. O documento também fornece detalhes sobre recursos, produtividade, aplicações e comunidades de Python.
1. O documento descreve como acessar e manipular bancos de dados MySQL usando Python.
2. Ele explica como instalar o módulo MySQLdb, conectar-se ao banco de dados, criar tabelas, inserir, ler, atualizar e excluir dados.
3. Também aborda operações como commits, rollbacks e tratamento de erros para garantir a consistência dos dados.
Desenvolvendo aplicações web com python e web2pyGilson Filho
Gilson Filho e Bruno Barbosa apresentam sobre desenvolvimento web com Python e o framework web2Py. Eles descrevem suas experiências com programação e o framework, incluindo uma introdução básica à linguagem Python e como o web2Py funciona.
Arduino: Robótica e Automação com Software e Hardware LivresÁlvaro Justen
O documento apresenta uma introdução ao Arduino, incluindo sua história, hardware, software e projetos. O palestrante Turicas discute como o Arduino pode ser usado para robótica e automação com software livre e convida os participantes a tirarem dúvidas e verem exemplos de projetos.
Este documento apresenta os membros do grupo WebLovers, que inclui 5 pessoas: Giancarlo Silva, Allyson Barros, Daniele Montenegro, Elionai Moura e Sedir Morais. Cada membro é graduando ou graduado em Análise e Desenvolvimento de Sistemas no IFRN e lidera o grupo WebLovers.
O Tkinter é um conjunto de widgets (componentes de interface gráfica) para Interface Gráfica com o Usuário(GUI). Uma das vantagens desse módulo gráfico é que ele já vem junto com o Python.
Este documento apresenta como desenvolver aplicativos em Python para celulares Symbian S60 usando o framework Python for S60. Explica os requisitos, recursos e vantagens de usar Python em celulares, como instalar o Python for S60 e rodar um programa "Hello World" no console do celular.
Programando para web com python - Introdução a PythonAlvaro Oliveira
O documento apresenta uma palestra sobre a linguagem de programação Python. Resume os principais pontos da seguinte forma:
1) Apresenta breve histórico da linguagem Python, criada em 1990 por Guido van Rossum com foco em usuários como físicos e engenheiros.
2) Discutem as principais características da linguagem como interpretação, tipagem dinâmica, controle de fluxo por indentação, orientação a objetos e biblioteca padrão rica.
3) Explicam porque Python é uma boa opção para
Turicas apresenta a biblioteca rows para Python, que facilita a importação e normalização de dados tabulares de diferentes formatos como CSV, HTML e XLS em uma única API. Com rows, os dados são automaticamente convertidos para os tipos corretos como datetime e decimal, e podem ser facilmente exportados de volta aos mesmos ou diferentes formatos. A biblioteca também inclui funcionalidades como interface de linha de comando e testes automatizados.
Arduino + Python: produtividade ao extremoÁlvaro Justen
O documento descreve como Python pode ser usado junto com Arduino para aumentar a produtividade. Python pode ser usado diretamente no Arduino ou no PC para controlar o Arduino via USB, Ethernet ou sem fio. Vários projetos são apresentados como exemplos.
Desenvolvendo aplicações Mobile em PythonRelsi Maron
Apresentação da biblioteca python de desenvolvimento multiplataforma Kivy. Usando a simplicidade, e o poder, de Python é possível criar desde simples projetos à aplicações interativas com suporte a multi-toques e games, e gerar uma aplicação nativa para o dispositivo.
Palestra "relâmpago" (15 min) mostrando alguns detalhes de construção de DSLs em Python: decorators, sobrecarga de operadores, __getattr__, utilizando como exemplo a biblioteca de expectations e matchers Should-DSL (http://github.com/hugobr/should-dsl)
O documento descreve como usar Python para enviar tweets automaticamente. Ele lista alguns passos iniciais como seguir pessoas que falam sobre determinados assuntos e depois seguir todos os seus seguidores para ampliar a rede. Também fornece links para APIs do Twitter e exemplos de código Python para enviar tweets programáticamente.
Neste tutorial apresentei usando Python Básico conceitos de como construir um sistema de recomendação por filtragem colaborativa.
Mutirão PyCursos:
Vídeo em: https://plus.google.com/u/0/events/c3hqbk20omt3r5uoq13gpk82i9g
[1] O documento discute o desenvolvimento de aplicações web usando o framework Django, incluindo sua história, características e padrão MVC.
[2] É apresentada uma introdução ao Django, explicando o que é o framework e como ele pode ser usado para construir aplicações web de forma rápida e eficiente.
[3] São descritas as etapas para criar uma primeira aplicação web simples usando Django, incluindo a instalação do framework, criação de um projeto e execução de um servidor de desenvolvimento.
O documento apresenta os bancos de dados NoSQL, discutindo o que são, exemplos como CouchDB, MongoDB e Redis, e demonstrando códigos de exemplo para cada um utilizando Python. O palestrante é apresentado como desenvolvedor Python experiente e especialista em bancos de dados NoSQL.
O documento descreve a história e características da linguagem de programação Python, desde sua criação por Guido van Rossum até versões atuais. Python tem tipagem dinâmica, sintaxe simples e é interpretada, possibilitando programação em diversas plataformas. Existem várias ferramentas para desenvolvimento com Python.
Desenvolvimento de aplicações embarcadas utilizando PythonFlávio Ribeiro
Flávio Ribeiro apresenta sobre sistemas embarcados e desenvolvimento de software para esses sistemas usando Python. Ele discute conceitos de sistemas embarcados, por que usar Python, e dicas para desenvolvimento eficiente como desacoplamento, uso de threads e otimização.
O documento discute os principais paradigmas de linguagens de programação, como:
1. Linguagens imperativas, que incluem as estruturadas/procedurais e orientadas a objetos.
2. Linguagens declarativas, como funcionais e lógicas.
Existem diferentes categorias de linguagens que refletem diferentes abordagens de resolução de problemas, influenciadas por fatores como domínios de aplicação, arquitetura de computadores e metodologias de projeto. Muitas linguagens modernas suportam múltiplos paradig
Este documento fornece uma introdução à linguagem de programação Python. Ele discute a história e características da linguagem, incluindo tipos de dados, variáveis, operadores, estruturas de decisão e entrada/saída. A linguagem Python é descrita como dinâmica, de alto nível e fácil de aprender, tornando-a adequada para diversas aplicações.
Automação de Aplicativos: Scripting com PythonFabio Spanhol
O documento discute linguagens de script e o uso de Python para automatizar aplicativos. Python pode ser usado para controlar o aplicativo de edição de imagem GIMP, através de plug-ins registrados na base de dados procedural do GIMP. Os plug-ins em Python podem acessar as ferramentas e funcionalidades do GIMP para automatizar tarefas.
Django é um framework web escrito em Python que utiliza o padrão MTV, foi criado originalmente para gerenciar um site jornalístico e se tornou um projeto de código aberto em 2005 sob a licença BSD.
Este documento fornece informações sobre uma licença Creative Commons que permite o uso não comercial e compartilhamento da obra desde que mantenha a mesma licença. Também apresenta detalhes sobre o livro "Python para desenvolvedores" de Luiz Eduardo Borges.
O documento discute as diferenças entre Python, CPython, Pythonico e Cython. Pythonico refere-se a seguir as melhores práticas de codificação Python como definido na PEP 8. CPython é a implementação original da linguagem Python. Cython é uma ferramenta que converte código Python em C para melhorar o desempenho.
1. O documento apresenta uma aula introdutória sobre programação em Python.
2. A aula inclui tópicos como "Hello World", variáveis, condicionais, laços, funções, classes e módulos.
3. O documento serve como um manual de referência rápida sobre os principais conceitos e recursos da linguagem Python.
Este documento apresenta uma palestra sobre a linguagem de programação Python. As principais ideias apresentadas são:
1) Python é uma linguagem de uso geral amplamente utilizada em diversas áreas como internet, computação gráfica, desktop, operações de empresas e computação científica.
2) Existem diversas implementações de Python como CPython, Jython, IronPython e PyPy. CPython é a implementação principal escrita em C.
3) Python tem evoluído gradualmente ao longo dos anos com novas versões lançadas a cada alguns anos que trazem melhor
O documento discute os termos Python, CPython e Cython, explicando que Pythonico se refere a seguir as melhores práticas de estilo de codificação em Python. Também descreve como o Cython pode ser usado para acelerar códigos Python ao converter para C/C++ mantendo a sintaxe e semântica de Python.
O documento apresenta a plataforma Maemo da Nokia para dispositivos móveis e o porte da linguagem Python para esta plataforma. O INdT no Recife lidera este projeto de porte da linguagem Python para permitir o desenvolvimento de aplicações para a plataforma Maemo de forma similar ao desenvolvimento Linux para desktops, utilizando as mesmas ferramentas e bibliotecas. O documento também discute os desafios e características deste porte da linguagem Python para a plataforma Maemo.
O documento apresenta um mini-curso sobre a linguagem C, com informações sobre o professor, objetivos do curso, sugestões de material de apoio e agenda.
O documento introduz os principais conceitos da linguagem de programação Python, incluindo o que é Python, quem usa, o interpretador interativo, regras de sintaxe, tipos de dados, funções, orientação a objetos, código fonte e bibliotecas inclusas.
Nessa apresentação, Diego Sueiro vai mostrar como Linux e o RTOS Zephyr podem compartilhar dados usando RPMsg (Remote Processor Messaging), fluxo de inicialização, e configurações necessárias para habilitar essa comunicação em SoC Multicores Híbridos.
Os fabricantes de SoC estão lançando arquiteturas HMP (Multiprocessadores Híbridos) em que um ou mais núcleos lidam com a aplicação do usuário final e outros núcleos implementam recursos específicos. Em vez de “lutar” com o Linux Kernel para atender às restrições de tempo real, você pode delegar o trabalho “sujo” para um microcontrolador em um ambiente isolado e controlado e é onde o RTOS Zephyr se destaca. É importante que os núcleos híbridos se comuniquem entre si para atender aos requisitos da aplicação. O RPMsg pode ser usado nesses tipos de arranjos expondo uma API independente das especificidades da comunicação entre núcleos.
Principais tópicos desta sessão:
Aplicações de tempo real com o HMP
Introdução ao Zephyr
Introdução ao OpenAMP
Introdução ao RPMsg e RPMsg-lite
RPMsg no Linux
Ativando o RPMsg-lite no Zephyr
Setup da comunicação entre o Linux e Zephyr
Demo
Trabalhos futuros
Link para o video:
https://experience.embarcados.com.br/webinars/linux-e-zephyr/
O documento discute programação de software livre em C, abordando tópicos como a longevidade da linguagem C, a suíte de compiladores GNU, como criar um projeto de exemplo e distribuí-lo, e as oportunidades de mercado para profissionais de C.
1) O documento apresenta um tutorial sobre aprender a programar usando a linguagem Python, explicando porque Python é uma boa opção para iniciantes e como abrir e usar o interpretador de Python.
2) É demonstrado como usar o interpretador Python de forma interativa para realizar cálculos matemáticos básicos e como lidar com números inteiros e de ponto flutuante.
3) O leitor é aconselhado a não ignorar mensagens de erro e aprender com elas.
1) O documento é um relatório escolar sobre linguagens de programação feito por três alunos para a disciplina de Programação Web.
2) O relatório discute conceitos básicos de programação, tipos de linguagens de programação, a história da linguagem C e suas características e objetivos.
3) Também aborda código fonte, código de máquina, compiladores e interpretadores.
Este documento apresenta como criar um ambiente de desenvolvimento para aplicações Django utilizando Docker e Docker Compose. Ele explica como instalar as ferramentas necessárias, criar um Dockerfile para definir a infraestrutura do projeto, configurar o docker-compose.yml para executar o projeto em containers e como executar comandos do Django no container.
(1) O documento descreve técnicas de integração por partes, incluindo a fórmula geral e exemplos de sua aplicação. (2) A integração por partes permite transformar uma integral desconhecida em outra mais simples. (3) Os exemplos ilustram como a técnica pode ser usada repetidamente para resolver integrais mais complexas.
Este documento fornece uma lista de exercícios de cálculo de Stewart sobre várias técnicas de integração, incluindo integração por partes, integrais trigonométricas, frações parciais e integrais impróprias, com referências às páginas e exercícios específicos no livro de Stewart para cada tópico.
El documento lista ejercicios de cálculo de varias aplicaciones de la integración, incluyendo áreas entre curvas, volúmenes de sólidos, trabajo y longitud de arco. Los ejercicios provienen del libro de texto Stewart Cálculo, Volumen 1 y cubren páginas 386, 397, 407 y 493.
1) O documento descreve como calcular a área entre curvas e o volume de sólidos de revolução usando integrais.
2) A área entre duas curvas f(x) e g(x) é calculada como a integral de |f(x)-g(x)| no intervalo considerado.
3) O volume de um sólido de revolução é calculado como a integral da área da seção transversal A(x) em relação ao eixo de rotação.
Este documento contiene una lista de ejercicios sobre integrales de varios capítulos del libro Cálculo de Stewart. La lista incluye ejercicios sobre sumas de Riemann, integrales definidas, integrales indefinidas y la regla de sustitución, con referencias a las páginas y ejercicios específicos del libro de texto.
1. O documento discute cálculo de áreas sob curvas e integral definida, apresentando fórmulas e exemplos para calcular áreas e somar retângulos de Riemann.
2. É introduzido o Teorema Fundamental do Cálculo, que relaciona derivadas e integrais definidas, permitindo calcular integrais através de primitivas.
3. Propriedades das integrais definidas são listadas, como adição, multiplicação por constante e integração por partes.
O documento discute as propriedades de relações em conjuntos, incluindo: (1) relações de equivalência, que são reflexivas, simétricas e transitivas; (2) relações de ordem, que são reflexivas, antissimétricas e transitivas; e (3) exemplos de relações que satisfazem essas propriedades, como igualdade e divisibilidade.
O documento discute relações binárias, definindo-as como uma terna ordenada composta por um grafo e dois conjuntos. Ele também define domínio e imagem de uma relação, relação recíproca, operações com relações e imagem de conjuntos por uma relação.
O documento discute grafos e suas propriedades. Em três frases ou menos:
1) Grafos são conjuntos de pares ordenados e exemplos incluem {(a,1), (3,(3,4))} e {(1,2), (2,3), (1,4)}. 2) As projeções de um grafo G são os conjuntos pr1G e pr2G de seus primeiros e segundos elementos. 3) A composição de grafos G e H é o grafo G ◦ H cujos elementos são pares (x,y) tal que existe z com (x,z) em H
O documento discute operações com conjuntos, incluindo:
1) A definição e propriedades da interseção de conjuntos;
2) A definição e propriedades de conjuntos disjuntos;
3) A definição e propriedades da união de conjuntos.
O documento discute conjuntos, incluindo:
1) Igualdade de conjuntos e suas propriedades como reflexividade e transitividade.
2) Relação de inclusão entre conjuntos e suas propriedades.
3) Noções de subconjuntos e conjunto de partes de um conjunto.
O documento discute os conceitos básicos de conjuntos, incluindo: (1) Definições de conjunto segundo Bourbaki e Cantor; (2) Exemplos de conjuntos; (3) Relação de pertinência; (4) Conjunto universo; (5) Conjunto unitário e conjunto vazio.
1. O documento apresenta uma análise completa de três funções, estudando seu domínio, imagem, pontos de interseção com os eixos, intervalos de monotonia, continuidade e comportamento assintótico.
2. A primeira função é f(x) = x3 - 3x + 2, que é crescente nos intervalos (-∞, -2) e (1, +∞) e decrescente nos intervalos (-2, 1) e (1, 0). Sua imagem é R.
3. A segunda função é f(x) = x2/(x2
O documento discute propriedades de funções, incluindo continuidade, limites, funções pares e ímpares, períodicidade, intervalos de monotonia e extremos. Apresenta exemplos para ilustrar cada conceito.
1) A função f(x) = 8x - x^2 é uma parábola voltada para baixo com vértice em (4,16). Seu domínio é R e imagem é (-∞,16]. É crescente em (-∞,4) e decrescente em (4,+∞).
2) A função f(x) = |3-x| é modular com vértice em (3,0). Seu domínio é R e imagem é [0,+∞). É decrescente em (-∞,3) e crescente em (3,+∞).
1) Explica como resolver equações polinomiais de 1o e 2o grau, e que equações de grau superior a 2 são mais complexas de resolver;
2) Diz que o Teorema Fundamental da Álgebra afirma que toda equação polinomial tem exatamente n raízes complexas, mas o número de raízes reais depende da forma da equação;
3) Explica que para graus maiores que 4 não há fórmulas gerais, mas podemos tentar reduzir o grau encontrando um fator que divida o polinômio.
1) O documento descreve três métodos de prova matemática: prova direta, prova de bicondicional e prova por redução ao absurdo.
2) Na prova direta, parte-se de uma hipótese P para deduzir uma conclusão Q. Na prova de bicondicional, provam-se as implicações P→Q e Q→P.
3) A prova por redução ao absurdo parte da negação de uma afirmação P para deduzir uma contradição e provar P.
A Maçonaria é uma fraternidade universal que busca o autoconhecimento e o aprimoramento moral por meio de símbolos e alegorias, sem envolver-se em política ou religião. Ela trabalha pelo desenvolvimento espiritual da humanidade de forma discreta e através de atividades filantrópicas e culturais.
O documento apresenta as propriedades básicas da álgebra, incluindo propriedades de adição, subtração, multiplicação, divisão, potenciação e radiciação. Também aborda tópicos como valor absoluto, expoentes racionais e racionalização de frações.
Em um mundo cada vez mais digital, a segurança da informação tornou-se essencial para proteger dados pessoais e empresariais contra ameaças cibernéticas. Nesta apresentação, abordaremos os principais conceitos e práticas de segurança digital, incluindo o reconhecimento de ameaças comuns, como malware e phishing, e a implementação de medidas de proteção e mitigação para vazamento de senhas.
As classes de modelagem podem ser comparadas a moldes ou
formas que definem as características e os comportamentos dos
objetos criados a partir delas. Vale traçar um paralelo com o projeto de
um automóvel. Os engenheiros definem as medidas, a quantidade de
portas, a potência do motor, a localização do estepe, dentre outras
descrições necessárias para a fabricação de um veículo
Este certificado confirma que Gabriel de Mattos Faustino concluiu com sucesso um curso de 42 horas de Gestão Estratégica de TI - ITIL na Escola Virtual entre 19 de fevereiro de 2014 a 20 de fevereiro de 2014.
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...Faga1939
Este artigo tem por objetivo apresentar como ocorreu a evolução do consumo e da produção de energia desde a pré-história até os tempos atuais, bem como propor o futuro da energia requerido para o mundo. Da pré-história até o século XVIII predominou o uso de fontes renováveis de energia como a madeira, o vento e a energia hidráulica. Do século XVIII até a era contemporânea, os combustíveis fósseis predominaram com o carvão e o petróleo, mas seu uso chegará ao fim provavelmente a partir do século XXI para evitar a mudança climática catastrófica global resultante de sua utilização ao emitir gases do efeito estufa responsáveis pelo aquecimento global. Com o fim da era dos combustíveis fósseis virá a era das fontes renováveis de energia quando prevalecerá a utilização da energia hidrelétrica, energia solar, energia eólica, energia das marés, energia das ondas, energia geotérmica, energia da biomassa e energia do hidrogênio. Não existem dúvidas de que as atividades humanas sobre a Terra provocam alterações no meio ambiente em que vivemos. Muitos destes impactos ambientais são provenientes da geração, manuseio e uso da energia com o uso de combustíveis fósseis. A principal razão para a existência desses impactos ambientais reside no fato de que o consumo mundial de energia primária proveniente de fontes não renováveis (petróleo, carvão, gás natural e nuclear) corresponde a aproximadamente 88% do total, cabendo apenas 12% às fontes renováveis. Independentemente das várias soluções que venham a ser adotadas para eliminar ou mitigar as causas do efeito estufa, a mais importante ação é, sem dúvidas, a adoção de medidas que contribuam para a eliminação ou redução do consumo de combustíveis fósseis na produção de energia, bem como para seu uso mais eficiente nos transportes, na indústria, na agropecuária e nas cidades (residências e comércio), haja vista que o uso e a produção de energia são responsáveis por 57% dos gases de estufa emitidos pela atividade humana. Neste sentido, é imprescindível a implantação de um sistema de energia sustentável no mundo. Em um sistema de energia sustentável, a matriz energética mundial só deveria contar com fontes de energia limpa e renováveis (hidroelétrica, solar, eólica, hidrogênio, geotérmica, das marés, das ondas e biomassa), não devendo contar, portanto, com o uso dos combustíveis fósseis (petróleo, carvão e gás natural).
2. 2
Copyright c 2005 Carlos A. P. Campani.
´
E garantida a permiss˜o para copiar, distribuir e/ou
a
modificar este documento sob os termos da Licen¸a de
c
Documenta¸ao Livre GNU (GNU Free Documentation
c˜
License), Vers˜o 1.2 ou qualquer vers˜o posterior
a a
publicada pela Free Software Foundation; sem Se¸oes
c˜
Invariantes, Textos de Capa Frontal, e sem Textos de
Quarta Capa. Uma c´pia da licen¸a ´ inclu´ na se¸ao
o c e ıda c˜
intitulada ”GNU Free Documentation License”.
veja: http://www.ic.unicamp.br/~norton/fdl.html.
3. ˆ
REFERENCIAS 3
Referˆncias
e
[1] Catunda, Marco Python: guia de consulta r´pida, Ed.
a
Novatec, 2001.
[2] Python Documentation Index.
http://www.python.org/doc/.
[3] Lundh, Fredrik An Introduction to Tkinter, 1999.
http://www.pythonware.com/library/tkinter/
an-introduction-to-tkinter.pdf
5. ˆ
REFERENCIAS 5
Material do Curso
(Lˆminas do curso)
a
http://www.ufpel.tche.br/~campani/laminas.pdf
(Lˆminas para Impress˜o)
a a
http://www.ufpel.tche.br/~campani/laminas4.ps.gz
(Programas exemplo)
http://www.ufpel.tche.br/~campani/FileDialog.tar.gz
http://www.ufpel.tche.br/~campani/swpackage.tar.gz
6. ˆ
REFERENCIAS 6
Programas
• Python 2.1;
• Tk 8;
• Python-tkinter 2.1;
• vi;
• emacs;
• gnuplot e m´dulo Gnuplot;
o
8. ˆ
REFERENCIAS 8
Obtendo os Programas
• Pacotes rpm ou tarball;
• Bin´rio (pr´-compilado) ou source (tem que compilar);
a e
• P´ginas oficiais dos programas;
a
• Distribui¸˜es Linux;
co
• http://rpmfind.net;
• http://sourceforge.net.
9. ˆ
REFERENCIAS 9
Instalando os Programas em Linux
Instalando pacotes rpm:
$ su
<senha de root>
% rpm -i <arquivo pacote>
% ^D
$
Compilando o fonte:
$ su
<senha de root>
% cd <diret´rio do fonte>
o
% ./configure
% ./make
% ./make install
10. 1 OBJETIVOS DO CURSO 10
1 Objetivos do Curso
• Introduzir a linguagem Python para alunos que j´
a
saibam programar;
• Mostrar, de forma introdut´ria, aspectos avan¸ados
o c
de Python, tais como scripts para web, acesso a
MySQL, suporte a audio e OpenGL;
• Introduzir o toolkit Tk e mostrar como desenvolver
rapidamente aplica¸˜es baseadas em janelas
co
usando-o.
11. 2 CARACTER´
ISTICAS DE PYTHON 11
2 Caracter´
ısticas de Python
• Criada por Guido van Rossum em 1991;
• Evolu¸ao do C
c˜
• Linguagem de script e linguagem de programa¸ao;
c˜
– Exemplos de linguagens de script: Tcl, Perl, etc.
– Objetivo: substituir C e Java;
• Interpretada e interativa;
• Multiplataforma: Unices, Windows e Mac (no Linux
´ pr´-instalado);
e e
• Possui suporte a POO;
12. 2 CARACTER´
ISTICAS DE PYTHON 12
• Estruturas de controle e de dados avan¸adas (mais
c
poderosas que C e Java);
– Lista encadeada e tabela hash como primitivas da
linguagem;
– Tratamento de erros de execu¸˜o;
ca
• Dispensa BEGIN e END (obriga a endenta¸ao e a
c˜
estrutura¸˜o do programa);
ca
• Tipagem dinˆmica (n˜o ´ necess´rio declarar
a a e a
vari´veis);
a
• Combinados, os ultimos trˆs itens significam que os
´ e
programas em Python s˜o muito menores e mais
a
“limpos” que os equivalentes em C e Java;
13. 2 CARACTER´
ISTICAS DE PYTHON 13
• Mais verifica¸˜es de erros de sintaxe/execu¸ao que C;
co c˜
• Modular (organiza o namespace);
from Tkinter import *
root = Tk()
ou
import Tkinter
root = Tkinter.Tk()
• Ideal para prototipa¸ao r´pida de aplica¸oes;
c˜ a c˜
• Gr´ficos em janelas usando-se m´dulo Tkinter;
a o
• Pode ser extendida usando-se C e C++
(escrevendo-se novos m´dulos);
o
14. 2 CARACTER´
ISTICAS DE PYTHON 14
• Profiling;
• Programa¸˜o cient´
ca ıfica (NumPy e Gnuplot);
• Computa¸˜o gr´fica (PyOpenGL);
ca a
• Acesso ao servidor MySQL (Python-MySQLdb);
• Linguagem de Cola (glue language);
Exemplo: vocˆ pode usar em FORTRAN aquele
e
pacote gr´fico que s´ funciona em C;
a o
• Scripts CGI (usando-se m´dulo CGI);
o
´
• Finalmente: E software livre!
15. 3 ´
TEORIA VERSUS PRATICA 15
3 Teoria Versus Pr´tica
a
• “Aprender a sintaxe de uma linguagem n˜o ´ tudo”;
a e
• Metodologia de desenvolvimento de software;
– M´todos sistem´ticos;
e a
– Redu¸ao de problemas;
c˜
– Herdar resultados;
– Semˆntica formal;
a
• Teoria e pr´tica andam juntas.
a
16. 4 USANDO O INTERPRETADOR 16
4 Usando o Interpretador
4.1 Usando o Interpretador - Modo Interativo
$ python
Python 2.1 (#1, jul 4 2001, 23:56:02)
[GCC 2.95.3 200110315 (release) (conectiva)] on linux-i386
Type "copyright", "credits" or "license" for more information.
>>>
17. 4 USANDO O INTERPRETADOR 17
Control-D abandona o interpretador.
>>> ^D
$
18. 4 USANDO O INTERPRETADOR 18
>>> 2+2
4
>>> 2+
File "<stdin>", line 1
2+
^
SyntaxError: invalid syntax
>>> # Este ´ um coment´rio
e a
... 2*2
4
>>> 7/3
2
>>> 7./3.
2.3333333333333335
Observe o prompt secund´rio ...
a
19. 4 USANDO O INTERPRETADOR 19
>>> 1/0
Traceback (most recent call last):
File "<stdin>", line 1, in ?
ZeroDivisionError: integer division or modulo by zero
>>> print "Esta ´ uma linha extremamente
e
... longa que foi dividida."
Esta ´ uma linha extremamente longa que foi dividida.
e
>>>
20. 4 USANDO O INTERPRETADOR 20
Aten¸˜o!
ca
• Atribui¸ao: =;
c˜
• Igualdade: ==.
(inspirado em C)
21. 4 USANDO O INTERPRETADOR 21
>>> a = 10
>>> a
10
>>> a += 1
>>> a
11
>>> b = c = 0
>>> a,b = b,a
>>> a
0
>>> b
11
>>> c
0
22. 4 USANDO O INTERPRETADOR 22
>>> x = 15
>>> x
15
>>> x = 3.1415
>>> x
3.1415000000000002
Lembre-se: Tipagem dinˆmica!
a
23. 4 USANDO O INTERPRETADOR 23
>>> print "Ol´, mundo!"
a
Ol´, mundo!
a
>>> x = 15
>>> print x+1,x-1,2*x,x/2
16 14 30 7
>>> print "x=%d"%x
x=15
>>> y = 1.5
>>> print "x=%dny=%4.2f"%(x,y)
x=15
y=1.50
24. 4 USANDO O INTERPRETADOR 24
>>> z = "x=%dny=%4.2f"%(x,y)
>>> print z
x=15
y=1.50
>>> print "x=";print x
x=
15
>>> print "x=",;print x
x= 15
25. 4 USANDO O INTERPRETADOR 25
>>> if 1: print "verdadeiro"
...
verdadeiro
>>> if 0: print "verdadeiro"
...
>>>
Observa¸˜es:
co
• Valores-verdade: 0 e 1;
• ... ´ o prompt secund´rio.
e a
26. 4 USANDO O INTERPRETADOR 26
>>> if x<10:
... print x,
... print "menor"
... else:
... print x,
... print "maior"
...
15 maior
>>>
Observa¸˜es:
co
• Observe o prompt secund´rio ao final da estrutura;
a
• N˜o misturar espa¸os e tabula¸oes em um mesmo
a c c˜
bloco (erro!).
28. 4 USANDO O INTERPRETADOR 28
Lista encadeada:
>>> x = [1,2,3]
>>> x
[1,2,3]
>>> x[0] = 10
>>> x
[10,2,3]
>>> x+[4,5]
[10,2,3,4,5]
>>> x
[10,2,3]
>>> x.append(1000)
[10,2,3,1000]
29. 4 USANDO O INTERPRETADOR 29
>>> x
[10,2,3,1000]
>>>
30. 4 USANDO O INTERPRETADOR 30
String:
>>> x = "Gr^mio FBPA"
e
>>> y = " - o maior de todos"
>>> print x+y
Gr^mio FBPA - o maior de todos
e
Fun¸˜o:
ca
>>> x = float
>>> x
<built-in function float>
>>> x(2)
2.0
31. 4 USANDO O INTERPRETADOR 31
Binding: amarra¸ao entre nomes e valores em um
c˜
namespace.
Sempre que ocorre uma atribui¸˜o, ocorre uma
ca
amarra¸ao entre vari´vel e valor.
c˜ a
>>> a = a+1
A ocorrˆncia de a a esquerda da atribui¸ao ´ uma
e c˜ e
referˆncia ao objeto (L-value). Observe que tudo em
e
Python s˜o objetos, inclusive n´meros. A ocorrˆncia de a
a u e
a direita da atribui¸˜o (R-value) deve ser de-referenciada.
ca
32. 4 USANDO O INTERPRETADOR 32
Valor
15
X
Namespace
“Tipo do valor e n˜o tipo da vari´vel (nome)”.
a a
33. 4 USANDO O INTERPRETADOR 33
>>> x = 3
>>> y = 3
>>> print x==y # sim, pois tem o mesmo valor
1
>>> print x is y # sim, pois n´meros iguais sempre s~o o mesmo objeto
u a
1
>>> x = [1,2]
>>> y = [1,2]
>>> print x==y # sim, pois s~o iguais
a
1
>>> print x is y # n~o, pois s~o objetos (estruturas) diferentes
a a
0
>>> x = y = [1,2]
>>> print x==y # sim, pois s~o iguais
a
1
>>> print x is y # sim, pois s~o o mesmo objeto (mesma estrutura)
a
1
34. 4 USANDO O INTERPRETADOR 34
>>> x[0] = 10
>>> print x
[10,2]
>>> print y # [10,2] , pois s~o o mesmo objeto
a
[10,2]
>>> x = y = 3
>>> x = 10
>>> print x
10
>>> print y # 3 (n~o muda pois ´ outro objeto - n~o estruturado)
a e a
3
35. 4 USANDO O INTERPRETADOR 35
4.2 Usando o Interpretador - Modo Programado
4.2.1 Exemplo: Programa Ol´, mundo
a
$ vi teste.py
<i>
#!/usr/bin/python
print "Ol´, mundo!"
a
<esc>
:wq
$ python teste.py
Ol´, mundo!
a
$ chmod a+x teste.py
$ ./teste.py
Ol´, mundo!
a
$
36. 4 USANDO O INTERPRETADOR 36
4.2.2 Editando os Programas
´
vi E encontrado em qualquer sistema Unix; reconhece programas
Python e fornece alguma ajuda atrav´s de cores nos comandos;
e
38. 4 USANDO O INTERPRETADOR 38
emacs Editor encontrado em qualquer instala¸˜o Linux; reconhece
ca
programas Python e permite executar o programa dentro do
pr´prio editor.
o
43. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 43
5.3 Strings
>>> print ’ol´’
a
ol´a
>>> print "’Machado de Assis’ ´ o nome de um grande escritor"
e
’Machado de Assis’ ´ o nome de um grande escritor
e
>>> print ’"´rico Ver´ssimo" ´ o nome de um grande escritor’
E ı e
"´rico Ver´ssimo" ´ o nome de um grande escritor
E ı e
>>> print "Eis uma aspa: "."
Eis uma aspa: ".
>>> frase = "Esta ´ a primeira linha.nE esta ´ a segunda!"
e e
>>> print frase
Esta ´ a primeira linha.
e
E esta ´ a segunda!
e
>>>
44. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 44
Caracteres de escape:
Escape Significado
" aspas
n nova linha
<XXX> ASCII caracter octal
x<XXX> ASCII caracter hexadecimal
u<XXXX> Unicode
45. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 45
Para n˜o considerar os caracteres de escape use “r” antes da string:
a
>>> print "PrimeironSegundo"
Primeiro
Segundo
>>> print r"PrimeironSegundo"
PrimeironSegundo
Suporte ao padr˜o Unicode:
a
>>> print u"Ol´, mundo!"
a
Ol´, mundo!
a
46. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 46
Algumas opera¸oes sobre strings:
c˜
>>> print "Ol´, "+"mundo" # concatena¸~o
a ca
Ol´, mundo
a
>>> print "Python"*2 # repeti¸~o
ca
PythonPython
>>> print "Python"[0] # indexa¸~o
ca
P
>>> print "Python"[-2] # indexa¸~o para tr´s
ca a
o
>>> print "Python"[1:4] # particionar
yth
47. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 47
5.4 Operadores
• Operadores aritm´ticos:
e
Operador Descri¸ao
c˜
+ adi¸ao
c˜
- subtra¸˜o
ca
* multiplica¸ao
c˜
/ divis˜o
a
% resto da divis˜o
a
** exponencia¸ao
c˜
x = x+y pode ser substituido por x += y. Isto
funciona para todos os operadores aritm´ticos.
e
48. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 48
• Operadores l´gicos:
o
Operador Descri¸ao
c˜
and e l´gico
o
or ou l´gico
o
not nega¸ao
c˜
S˜o considerados valores falsos em Python: None, 0,
a
0.0, () ou [] (seq¨ˆncia vazia) e {} (dicion´rio
ue a
vazio). Todo o resto ´ considerado verdadeiro.
e
49. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 49
• Compara¸˜es:
co
Operador Descri¸ao
c˜
> maior
< menor
== igual
>= maior ou igual
<= menor ou igual
<> ou != diferente
is mesmo objeto
in est´ contido
a
50. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 50
>>> if ’a’ in [’a’,’b’,’c’]:
... print "contido"
...
contido
51. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 51
• Operadores de bits:
Operador Descri¸ao
c˜
| ou
^ ou exclusivo
& e
<< desloca para a esquerda
>> desloca para a direita
~ nega¸ao
c˜
53. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 53
5.5 Sequˆncias e Dicion´rios
e a
• Seq¨ˆncias: strings, tuplas e listas;
ue
Exemplos:
– Tupla: (1,2,3);
Observa¸˜o: () ´ a tupla vazia e (1,) ´ uma
ca e e
tupla com um elemento.
– Lista: [1,2,3];
Observa¸˜o: [] ´ a lista vazia.
ca e
54. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 54
Opera¸˜es com seq¨ˆncias:
co ue
Operador Descri¸˜o
ca
x in s pertinˆncia
e
x not in s n˜o pertinˆncia
a e
s1 + s2 concatena¸ao
c˜
s*n s concatenado n vezes
s[i] indexa¸˜o
ca
s[i:j] particionar
len(s) tamanho da seq¨ˆncia
ue
min(s) e max(s) menor e maior valor
56. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 56
No particionamento os valores default s˜o o primeiro
a
elemento e o ultimo respectivamente, de forma que
´
a[:] ´ uma parti¸˜o idˆntica a lista original (foi feita
e ca e
apenas uma c´pia).
o
>>> a = b = [1,2,3]
>>> c = a[:]
>>> a[0] = 15
>>> a
[15,2,3]
>>> b
[15,2,3]
>>> c
[1,2,3]
57. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 57
Opera¸˜es com listas:
co
Operador Descri¸˜o
ca
s[i]=x e s1[i:j]=s2 substitui¸ao
c˜
del s[i:j] remove elementos
s.append(x) adiciona elemento
s1.extend(s2) adiciona lista
s.count(x) conta n´mero de ocorrˆncias
u e
s.index(x) menor ´
ındice de x
58. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 58
Opera¸˜es com listas (continua¸˜o)
co ca
s.insert(i,x) insere na posi¸˜o i
ca
s.pop(i) ou s.pop() retira elemento (default=−1)
s.remove(x) remove elemento x
s.reverse() reverte a lista
s.sort() ordena lista
59. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 59
Usando listas como pilhas (´ltimo a entrar ´ o
u e
primeiro a sair):
>>> pilha = [1,2,3]
>>> pilha.append(4)
>>> pilha
[1,2,3,4]
>>> pilha.pop()
4
>>> pilha.pop()
3
>>> pilha
[1,2]
60. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 60
Usando listas como filas (o primeiro a entrar ´ o
e
primeiro a sair):
>>> fila = [1,2,3]
>>> fila.append(4)
>>> fila
[1,2,3,4]
>>> fila.pop(0)
1
>>> fila.pop(0)
2
>>> fila
[3,4]
61. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 61
Implementando CAR e CDR:
>>> s=[1,2,3]
>>> s[0] # CAR
1
>>> s[1:] # CDR
[2,3]
62. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 62
• Dicion´rios: S˜o conjuntos de pares chave-valor;
a a
Exemplos:
>>> x={’Carlos’ : ’15-11-1962’,
’Fantomas’ : ’15-11-1960’}
>>> x[’Carlos’]
’15-11-1962’
63. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 63
Opera¸˜es com dicion´rios:
co a
len(d) tamanho do dicion´rio
a
d[k] valor da chave k
d[k]=x atribui¸ao
c˜
del d[k] remove par chave-valor
d.clear() apaga todos os elementos
d.copy() retorna c´pia do dicion´rio
o a
d.has_key(k) verdadeiro se a chave existe
d.items() retorna lista de todos os elementos
64. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 64
Opera¸˜es com dicion´rios (continua¸ao)
co a c˜
d.keys() lista de todas as chaves
d1.update(d2) atualiza todas as chaves
d.values() lista de todos os valores
66. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 66
5.6 co ´
Algumas Fun¸˜es Uteis
abs(n) Valor absoluto;
apply(fun¸˜o,args) Chama uma fun¸˜o com seus
ca ca
argumentos;
Exemplo:
>>> def soma(x,y):
... return x+y
...
>>> apply(soma,[3,4])
7
complex(r,i) Cria um n´mero complexo;
u
67. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 67
eval(e) Avalia uma express˜o;
a
Exemplo:
>>> eval("10+5")
15
float(x) Converte string ou inteiro em ponto flutuante;
int(x) Converte para inteiro;
len(s) Retorna o tamanho de um objeto;
68. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 68
list(s) Retorna uma lista contendo os elementos de uma
seq¨ˆncia;
ue
Exemplo:
>>> list("abc")
[’a’,’b’,’c’]
>>> list((1,2,3))
[1,2,3]
long(x) Converte para inteiro longo;
pow(x,y) Calcula xy ;
69. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 69
range Retorna uma lista contendo uma seq¨ˆncia de
ue
n´meros;
u
Exemplo:
>>> range(1,6)
[1,2,3,4,5]
>>> range(0,4)
[0,1,2,3]
>>> range(2,11,2)
[2,4,6,8,10]
>>> range(10,5,-1)
[10,9,8,7,6]
70. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 70
raw input(s) Leitura da entrada padr˜o (n˜o formata);
a a
Exemplo:
>>> x = raw_input("x=")
x=15
>>> print x
15
>>> y = raw_input()
2003
>>> print y
2003
71. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 71
str(x) Converte para string;
tuple(s) Converte uma seq¨ˆncia para uma tupla;
ue
Exemplo:
>>> tuple("abc")
(’a’,’b’,’c’)
72. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 72
5.7 Estruturas de Controle
5.7.1 if
if x>0: print "maior que zero"
73. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 73
if a>b:
print a
else:
print b
Observe endenta¸ao (com brancos ou tabula¸˜es, mas
c˜ co
sempre coerente).
74. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 74
Substitui o case/switch.
if x<0:
print "negativo"
elif x==0:
print "zero"
else:
print "positivo"
Permite quantos elif forem necess´rios.
a
75. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 75
5.7.2 while
Exemplo (fatorial):
n,fat = 5,1
while n>1:
fat = n*fat
n -= 1
print fat
Exemplo (Fibonacci):
a,b = 0,1
while b<15:
print b
a,b = b,a+b
76. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 76
5.7.3 for
>>> for i in [1,2,3,4,5]:
... print i
...
1
2
3
4
5
>>>
77. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 77
>>> for i in range(1,6):
... print i
...
1
2
3
4
5
>>>
78. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 78
>>> for i in [’Ticiano’,’Jo~o Vitor’,’Luana’]:
a
... print i
...
Ticiano
Jo~o Vitor
a
Luana
79. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 79
Muitas vezes ´ necess´rio modificar a lista que est´ sendo
e a a
usada no la¸o for, o que ´ perigoso pois pode fazer o la¸o
c e c
perder-se. Nestes casos usa-se uma c´pia obtida por
o
particionamento.
Exemplo (apagar todos os elementos da lista com
tamanho maior que 10):
>>> s = [’Carlos Campani’,’Marcia’,’Luana’]
>>> for i in s[:]:
... if len(i)>10:
... s.remove(i)
...
>>> print s
[’Marcia’,’Luana’]
80. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 80
Exemplo (sele¸ao direta):
c˜
for i in range(0,len(v)):
ind=v[i:].index(min(v[i:]))
v[i],v[ind+i]=v[ind+i],v[i]
81. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 81
Usando lista para construir uma matriz 3 × 3:
>>> m = []
>>> for ind in range(0,9):
... m.append(ind*2)
...
>>> m
[0, 2, 4, 6, 8, 10, 12, 14, 16]
>>> i,j = 2,3
>>> m[(i-1)*3+j-1] = 7 # matriz[2,3] = 7
>>> m
[0, 2, 4, 6, 8, 7, 12, 14, 16]
82. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 82
5.7.4 break
Interrompe o la¸o mais interior.
c
Exemplo:
achou = 0
for i in s:
if i == x:
achou = 1
break
83. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 83
5.7.5 continue
Reinicia o la¸o.
c
Exemplo:
for i in s[:]:
if len(i) <= 10:
continue
else:
s.remove(i)
84. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 84
5.7.6 else
O else de um la¸o ´ executado quando o la¸o termina
c e c
normalmente (n˜o pela ocorrˆncia de um break).
a e
5.7.7 pass
while 1: # espera por Control-C
pass
85. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 85
5.8 Tratamento de Excess˜es
o
try: trata erros de execu¸ao.
c˜
try:
bloco
except:
bloco
try:
bloco
except erro:
bloco
Erros: ZeroDivisionError, NameError, TypeError, etc.
89. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 89
def fat(x):
if x:
return x*fat(x-1)
else:
return 1
Observe a utilidade do valor-verdade falso poder ser 0.
90. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 90
def count(s): # retorna tamanho da seq¨encia
u^
if s:
return count(s[1:])+1
else:
return 0
Observe a utilidade do valor-verdade falso poder ser [],
() ou "": podemos usar esta fun¸ao com lista, tupla ou
c˜
string.
91. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 91
Em Python n˜o existem procedimentos, s´ fun¸oes. Se a
a o c˜
fun¸ao n˜o retorna nada n˜o ´ necess´rio void.
c˜ a a e a
def ola():
print "Ol´, mundo"
a
>>> ola()
Ol´, mundo
a
92. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 92
Para declarar uma vari´vel como global use a declara¸˜o
a ca
global.
Exemplo:
def teste():
global x
x = 15
93. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 93
Podemos definir valores default para os argumentos de
uma fun¸ao:
c˜
>>> def teste(x,y=10,z=’Python’):
... print x,y,z
...
>>> teste(15)
15 10 Python
>>> teste(15,15,’Monty Python’)
15 15 Monty Python
>>> teste(1,’A Vida de Brian’,’Monty Python’)
1 A Vida de Brian Monty Python
94. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 94
Valores default s˜o avaliados dentro do escopo de
a
defini¸ao e n˜o dinamicamente:
c˜ a
>>> i = 15
>>> def teste(a=i):
... print a
...
>>> i = 10
>>> teste()
15
95. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 95
Podemos definir fun¸˜es com um n´mero arbitr´rio de
co u a
argumentos (argumentos excedentes ser˜o transformados
a
em uma tupla):
def fprintf(f,formato,*args):
f.write(formato % args)
96. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 96
Passagem de Parˆmetros:
a
´
• E o casamento entre parˆmetros reais e parˆmetros
a a
formais;
• Tipos de Passagem de Parˆmetros:
a
– Tipo Entrada. Ex: PASCAL (Passagem por Valor
– padr˜o);
a
– Tipo Entrada-Sa´
ıda. Ex: PASCAL (Passagem por
Referˆncia – VAR);
e
– Tipo Sa´ (raro). Ex: Passagem por Resultado;
ıda
– Em Python todos os argumentos s˜o passados por
a
referˆncia a objeto (c´pia da referˆncia).
e o e
97. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 97
Para declarar fun¸˜es anˆnimas, Python usa nota¸˜o
co o ca
lambda:
>>> f = lambda x,y : x+y
>>> print f(10,15)
25
98. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 98
Para documentar as fun¸˜es use strings de documenta¸˜o.
co ca
def ola():
" Esta fun¸ao ´ um exemplo "
c~ e
pass
99. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 99
5.10 Programa¸˜o Funcional
ca
Listas+CAR+CDR+Fun¸oes Anˆnimas=Programa¸ao
c˜ o c˜
Funcional
100. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 100
5.11 Manipula¸˜o de Arquivos
ca
• Abrir arquivo com f = open(nome,modo) (modo
pode ser “r”, “w” ou “r+”; f ´ um descritor);
e
• Ler arquivo com f.read();
• Escrever no arquivo com f.write(string);
• Flush: f.flush();
• Fechar arquivo com f.close().
101. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 101
Exemplo:
>>> f = open("teste.txt","r")
>>> x = f.read()
>>> f.close()
102. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 102
5.12 Alguns M´dulos do Python
o
• Extendem as capacidades do interpretador;
• Organizam o namespace;
• Podemos definir novos m´dulos em C ou Python, ou
o
importar m´dulos feitos por outros.
o
103. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 103
sys Acesso `s fun¸˜es do sistema;
a co
Exemplo:
#!/usr/bin/python
import sys
print sys.argv
$ ./teste.py a b c
[’teste.py’,’a’,’b’,’c’]
104. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 104
pickle Convers˜o de objetos em stream bytes (permite
a
salvar em arquivo qualquer objeto Python);
>>> import pickle
>>> f = open("teste.pick","w")
>>> pickle.dump(("ola",[1,2,3]),f)
>>> f.close()
>>> f = open("teste.pick","r")
>>> print pickle.load(f)
(’ola’,[1,2,3])
>>> f.close()
>>>
106. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 106
re Trata express˜es regulares;
o
math Fun¸˜es matem´ticas;
co a
>>> import math
>>> print math.sin(.5)
0.479425538604
random Gera¸˜o de n´meros aleat´rios;
ca u o
Exemplo:
>>> import random
>>> print random.random()
0.466429115742
107. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 107
calendar Calend´rio perp´tuo;
a e
Exemplo:
>>> import calendar
>>> print calendar.month(2003,2)
February 2003
Mo Tu We Th Fr Sa Su
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28
108. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 108
os Relacionado ao sistema operacional;
Exemplo:
>>> import os
>>> os.system("ls -l")
total 3
drwxrwxr-x 2 carlos carlos 4096 Aug 25 20:39 Mail
drwxrwxr-x 2 carlos carlos 4096 Feb 17 11:56 docs
drwxrwxr-x 2 carlos carlos 4096 Feb 17 21:46 tmp
0
>>>
109. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 109
os.path Trata caminhos de diret´rios;
o
Exemplo:
>>> import os.path
>>> print os.path.abspath(".")
/home/carlos
Tkinter Acesso ao Tk;
signal Intercepta¸ao de eventos ass´
c˜ ıncronos;
sockets Interface de rede;
thread Cria¸˜o de threads;
ca
110. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 110
gzip Compress˜o e descompress˜o gzip;
a a
readline GNU readline;
zipfile Manuseio de arquivos zip.
111. 5 ¸˜ ´
PROGRAMACAO BASICA PYTHON 111
5.13 Pydoc
Completa documenta¸ao dos m´dulos do Python ao
c˜ o
estilo das man pages do Unix.
$ pydoc sys
112. 6 ¸˜
PROGRAMACAO ORIENTADA A OBJETOS 112
6 Programa¸˜o Orientada a
ca
Objetos
6.1 Conceitos B´sicos
a
• A POO surgiu na ´rea de simula¸ao de sistemas e
a c˜
interfaces gr´ficas;
a
• Simula e Smalltalk;
• Facilita a programa¸˜o ao fornecer um mecanismo de
ca
abstra¸˜o de dados que estimula o reuso de c´digo e
ca o
disciplina os programadores a usar de forma correta o
c´digo que ser´ reusado.
o a
113. 6 ¸˜
PROGRAMACAO ORIENTADA A OBJETOS 113
Objeto Uma unidade contendo dados e m´todos para
e
manipular estes dados;
Classe Um molde para cria¸˜o de objetos;
ca
Encapsulamento Os dados e m´todos que manipulam
e
estes dados est˜o definidos dentro de uma unidade de
a
c´digo que esconde os detalhes de implementa¸ao
o c˜
(abstra¸˜o), permitindo que o programador acesse o
ca
c´digo atrav´s de uma interface p´blica (ao contr´rio
o e u a
da implementa¸˜o que ´ privada);
ca e
Heran¸a Permite o reuso de c´digo atrav´s de um
c o e
mecanismo de classes e subclasses que s˜o herdadas
a
das primeiras, criando uma hierarquia;
114. 6 ¸˜
PROGRAMACAO ORIENTADA A OBJETOS 114
Mensagens As chamadas aos m´todos s˜o entendidas
e a
como envio de mensagens para os objetos (toda a
computa¸˜o de um programa ´ entendida como uma
ca e
seq¨ˆncia de mensagens enviadas de objeto para
ue
objeto);
Polimorfismo Cada operador, entendido como uma
mensagem enviada a seus operandos reage segundo o
contexto (o objeto que est´ sendo usado);
a
Instancia¸˜o Criar um objeto a partir de uma classe.
ca
115. 6 ¸˜
PROGRAMACAO ORIENTADA A OBJETOS 115
6.2 Programa¸˜o Orientada a Objetos em Python
ca
• Definindo classes em Python
Sem heran¸a:
c
class nome:
bloco
Heran¸a simples:
c
class nome(classe-pai):
bloco
Heran¸a m´ ltipla (quando existe mais de uma classe-pai):
c u
class nome(classe-pai-1,classe-pai-2,...):
bloco
• Definindo m´todos da classe: usa-se def.
e
• Em Python, podemos documentar as classes usando strings de
documenta¸˜o.
ca
116. 6 ¸˜
PROGRAMACAO ORIENTADA A OBJETOS 116
• Exemplo:
class atomo:
def __init__(self,numat,x,y,z):
self.numat = numat
self.pos = (x,y,z)
def simbolo(self):
return TabSimbAt[self.numat]
def __repr__(self):
return "NumAtom=%d X=%d Y=%d Z=%d"%(self.numat,
self.pos[0],self.pos[1],self.pos[2])
• Observa¸oes:
c˜
– self ´ o pr´prio objeto;
e o
– init ´ o contrutor da classe;
e
– repr ´ a rotina de impress˜o.
e a
118. 6 ¸˜
PROGRAMACAO ORIENTADA A OBJETOS 118
• Polimorfismo:
>>> class A:
... def get(self):
... print "Ol´, mundo"
a
...
>>> class B:
... def get(self):
... print "Python"
...
>>> a = A()
>>> b = B()
>>> a.get()
Ol´, mundo
a
>>> b.get()
Python
a e b s˜o objetos diferentes e a mensagem .get() reage de forma diferente
a
em cada um.
119. 6 ¸˜
PROGRAMACAO ORIENTADA A OBJETOS 119
• Observa¸ao: tudo que tiver
c˜ na frente ´ privado;
e
class esconde:
def __init__(self,x,y):
self.__x = x # x ´ privado
e
self.y = y # y ´ p´blico
e u
def impx(self):
print self.__x
>>> e = esconde(10,15)
>>> print e.y
15
>>> e.impx()
10
• M´todo privado:
e
class teste:
def __secreto(self): # m´todo privado
e
...
120. 6 ¸˜
PROGRAMACAO ORIENTADA A OBJETOS 120
• Definindo a classe molecula:
class molecula:
def __init__(self,nome="desconhecida"):
self.nome = nome
self.listadeatomos = []
def adicatomo(self,atomo):
self.listadeatomos.append(atomo)
def __repr__(self):
s = ""
for a in self.listadeatomos:
s = s+"%sn"%a
return "Nome=%snLista de atomos=n%s"%(self.nome,s)
• Instanciando H2 :
>>> hidro1 = atomo(1,0,0,0)
>>> hidro2 = atomo(1,1,0,0)
>>> h2 = molecula("Mol´cula de Hidrog^nio (H2)")
e e
>>> h2.adicatomo(hidro1)
>>> h2.adicatomo(hidro2)
121. 6 ¸˜
PROGRAMACAO ORIENTADA A OBJETOS 121
• Herdando uma classe:
class substancia(molecula):
def __init__(self,nome,propriedades):
molecula.__init__(self,nome)
self.propriedades = propriedades
def adicatomo(self,atomo):
molecula.adicatomo(self,atomo)
def __repr__(self):
return "Molecula %snPropriedades=%s"%(self.nome,
self.propriedades)
• Observa¸oes:
c˜
– class substancia(molecula): indica que substancia est´ sendo herdada
a
de molecula (molecula ´ a superclasse, substancia ´ a subclasse);
e e
– molecula. init (self,nome) significa a chamada do m´todo construtor
e
pai;
– J´
a repr foi totalmente reescrito.
122. 6 ¸˜
PROGRAMACAO ORIENTADA A OBJETOS 122
• Atributo de classe e de instˆncia:
a
class teste:
x = 10 # atributo global (de classe)
def __init__(self,n):
self.y = n # atributo de inst^ncia
a
...
123. 6 ¸˜
PROGRAMACAO ORIENTADA A OBJETOS 123
• Outro exemplo de heran¸a:
c
class Alimento:
def __init__(self,nome,quantidade):
self.nome=nome
self.quantidade=quantidade
def __repr__(self):
return "Nome=%snQuantidade=%s"%(self.nome,
self.quantidade)
class Leite(Alimento):
def __init__(self,nome,quantidade,lipideos):
Alimento.__init__(self,nome,quantidade)
self.lipideos=lipideos
class Sucrilhos(Alimento):
def __init__(self,nome,quantidade):
Alimento.__init__(self,nome,quantidade)
self.vitaminas=[]
def adicvitamina(self,vitamina,quantidade):
self.vitaminas.append((vitamina,quantidade))
124. 6 ¸˜
PROGRAMACAO ORIENTADA A OBJETOS 124
Alimento
N
s NNN
ssss NNN
ysssss NNN
N&
Leite Sucrilhos
125. 7 PYTHON AVANCADO
¸ 125
7 Python Avan¸ado
c
7.1 M´dulo Gnuplot - Programa¸˜o
o ca
Cient´
ıfica
• M´dulo para acessar o programa externo gnuplot;
o
• Home page: http://gnuplot-py.sourceforge.net.
130. 7 PYTHON AVANCADO
¸ 130
7.2 Numerical Python - Programa¸˜o
ca
Cient´
ıfica
• Inclui muitos recursos do Matlab, mas ao contr´rio
a
deste ´ software livre;
e
• Multiplataforma;
• Manipula¸˜o de matrizes e ´lgebra linear:
ca a
determinante, invers˜o de matriz, matriz transposta,
a
multiplica¸ao de matrizes, solu¸˜o de sistemas
c˜ ca
lineares, autovalores e autovetores, etc.
• Home page:
http://sourceforge.net/projects/numpy.
131. 7 PYTHON AVANCADO
¸ 131
Vetores, matrizes, shape e reshape:
>>> from Numeric import *
>>> from LinearAlgebra import *
>>> a = arrayrange(0,2*pi,0.1)
>>> print a
[0.,0.1,0.2, ... 6.2]
>>> sin(a)
[0., 0.09983342, ... -0.0830894]
>>> a = zero((3,3),Float)
>>> print a
[[0.,0.,0.],
[0.,0.,0.],
[0.,0.,0.]]
136. 7 PYTHON AVANCADO
¸ 136
Multiplica¸ao de matrizes:
c˜
>>> x = matrixmultiply(matrixmultiply(vet,dia),q1)
>>> print x
[[ -6.93618340e-17 1.00000000e-00]
[ 5.00000000e-01 5.00000000e-01]]
137. 7 PYTHON AVANCADO
¸ 137
7.3 Internacionaliza¸˜o
ca
• M´dulo gettext;
o
• Acesso ` API GNU-gettext;
a
• Permite que as mensagens do aplicativo sejam
escritas em diversas l´
ınguas, de forma que o usu´rio
a
possa escolher a l´
ıngua que deseja.
138. 7 PYTHON AVANCADO
¸ 138
7.4 Extendendo Python usando C e
C++
• Escrevendo m´dulos em C ou C++;
o
• Partes do programa C:
1. Defini¸ao das fun¸oes C;
c˜ c˜
2. Tabela de m´todos;
e
3. Fun¸˜o de inicializa¸˜o.
ca ca
• Todos os objetos Python tem py_ na frente;
• PyArg Parse traduz de Python para C;
• Py BuildValue traduz de C para Python.
148. 7 PYTHON AVANCADO
¸ 148
7.5 Comunica¸˜o com Programas em
ca
Outras Linguagens (C, FORTRAN,
LISP, PROLOG, etc.)
• Todo programa pode comunicar-se com Python pelo
dispositivo de entrada/sa´ padr˜o;
ıda a
• Usa-se popen ou popen2 para abrir um pipe com o
programa.
150. 7 PYTHON AVANCADO
¸ 150
>>> import os
>>> f = os.popen("./teste.o","w")
>>> f.write("15")
>>> f.flush()
>>> f.close()
151. 7 PYTHON AVANCADO
¸ 151
7.6 Profiling
Permite determinar que partes do programa s˜o
a
“gargalos” de tempo e devem ser convertidas para C,
aumentando o desempenho do programa de forma mais
eficiente.
152. 7 PYTHON AVANCADO
¸ 152
import random,profile
def escolhe():
global nums
nums = []
for i in range(1,51):
nums.append(int(100*random.random()+1))
def fat(n):
if n<2:
return 1.0
else:
return float(n*fat(n-1))
def main():
global nums
escolhe()
for i in range(0,50):
print nums[i],fat(nums[i])
profile.run(’main()’)
154. 7 PYTHON AVANCADO
¸ 154
7.7 Python e OpenGL
• OpenGL permite criar gr´ficos 3D (adiciona depth `s
a a
coordenadas de um ponto) e efetuar transforma¸oes
c˜
de imagem (rota¸ao, transla¸ao, etc.) - home pages:
c˜ c˜
http://www.opengl.org e
http://pyopengl.sourceforge.net;
• Placas gr´ficas aceleram as transforma¸˜es;
a co
• Criado pela Silicon Graphics (como padr˜o aberto);
a
Amado pelos produtores de jogos: Quake, Diablo,
etc.
• Implementa¸ao livre: Mesa3D ( home page:
c˜
http://www.mesa3d.org).
155. 7 PYTHON AVANCADO
¸ 155
Fam´ OpenGL:
ılia
GL Biblioteca b´sica (comandos primitivos);
a
GLU Utilit´rios e comandos mais complexos (exemplo:
a
desenhar cilindro);
GLX GL para X-Window;
GLUT Caixa de ferramentas com recursos mais
sofisticados (exemplo: desenhar esfera);
156. 7 PYTHON AVANCADO
¸ 156
7.7.1 Exemplo: Programa Esferas
from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *
166. 7 PYTHON AVANCADO
¸ 166
7.10 Python como Linguagem de Cola
(Glue Language)
• Python consegue comunicar-se com outras
linguagens, acessa gnuplot, OpenGL, MySQL etc.
• Isto permite imaginar Python como uma “cola” entre
estes recursos;
• Podemos usar Python para acessar aquele pacote
gr´fico maravilhoso, que s´ funciona com C, em um
a o
programa FORTRAN, ou ent˜o desenhar uma
a
interface gr´fica usando Tk para um programa
a
PROLOG (que originalmente n˜o possui suporte
a
para Tk);
167. 7 PYTHON AVANCADO
¸ 167
• Um m´dulo que permite Python comunicar-se com
o
outro programa ´ chamado de wrapper ;
e
• Podemos usar o swig (http://www.swig.org) para
fazer wrappers.
168. 7 PYTHON AVANCADO
¸ 168
7.11 Scripts CGI
• Primeiro instalar o servidor Apache corretamente;
• Colocar os scripts no diret´rio cgi-bin criado na
o
instala¸˜o do servidor;
ca
• Dar previl´gio de execu¸ao para o script;
e c˜
• Dois tipos de forms: POST e GET.
169. 7 PYTHON AVANCADO
¸ 169
7.11.1 Exemplo: Ol´, mundo
a
#!/usr/bin/python
import cgi
print "Content-Type: text/html"
print
print "<TITLE>CGI teste</TITLE>"
print "<H1>Teste</H1>"
print "Ol´, mundo!"
a
170. 7 PYTHON AVANCADO
¸ 170
7.11.2 Exemplo: Formul´rio
a
<HTML>
<HEAD>
<TITLE>Teste</TITLE>
</HEAD>
<BODY>
<H1>Enquete</H1>
<P>
Sua prefer^ncia de compra:<P>
e
<FORM action="http://localhost/cgi-bin/testecgi2.py" method="POST">
<SELECT Name="Prefere">
<OPTION Value="0">Selecione um</OPTION>
<OPTION Value="1">Carro</OPTION>
<OPTION Value="2">Casa</OPTION>
</SELECT>
<P>
Sal´rio:<P>
a
<INPUT type="text" name="Valor" size="20">
</P>
176. 7 PYTHON AVANCADO
¸ 176
7.13 ´
Processamento de Audio -
Ecasound
Processamento de ´udio em Python/Linux.
a
http://www.eca.cx/ecasound/
177. 8 ¸˜ ´
PROGRAMACAO GRAFICA USANDO TK 177
8 Programa¸˜o Gr´fica usando
ca a
Tk
8.1 Introdu¸˜o ao Tk
ca
• Conjunto de widgets projetado por John K.
Ousterhout em 1987;
• Home page: http://www.tcl.tk.
• Tk = Tool kit (como uma biblioteca);
• Widget (“coisinha”) ´ um objeto de interface de
e
usu´rio gr´fica;
a a
178. 8 ¸˜ ´
PROGRAMACAO GRAFICA USANDO TK 178
• Originalmente projetado para ser usado com Tcl
(Toolkit Control Language);
• Tcl ´ muito limitado como linguagem;
e
• Pode ser usada tamb´m com Perl e Python;
e
• M´dulo Tkinter: interface Python-Tk - orientado a
o
objetos;
179. 8 ¸˜ ´
PROGRAMACAO GRAFICA USANDO TK 179
Como funcionam as chamadas do Tkinter?
Seu programa P ython
T kinter (P ython)
tkinter (C)
T k widgets (C e T cl)
T k (C)
Xlib
Problema: a necessidade de acessar Tcl.
180. 8 ¸˜ ´
PROGRAMACAO GRAFICA USANDO TK 180
8.2 Usando o Tkinter
• Tkinter ´ um wrapper para acessar Tk a partir de
e
Python;
• Um wrapper ´ como uma camada que faz a
e
comunica¸ao de duas outras.
c˜
Tk
Tkinter
Python
181. 8 ¸˜ ´
PROGRAMACAO GRAFICA USANDO TK 181
8.2.1 Alguns Widgets do Tk
Label Exibe texto n˜o formatado;
a
Button Bot˜o (pode-se associar o clique do mouse com
a
um “callback”);
Frame Container retangular usado para colocar uma
hierarquia de widgets filhos (n˜o aparece na tela);
a
Text Texto formatado edit´vel;
a
Listbox Sele¸˜o de alternativas;
ca
182. 8 ¸˜ ´
PROGRAMACAO GRAFICA USANDO TK 182
Canvas Exibe objetos gr´ficos (´ um container; pode ser
a e
usado para criar widgets personalizados);
Checkbox Seleciona um valor booleano;
Entry Campo de preenchimento de texto;
Menu Permite criar os menus de um aplicativo;
Scrollbar Barra de rolagem.
183. 8 ¸˜ ´
PROGRAMACAO GRAFICA USANDO TK 183
8.2.2 Exemplo: Ol´, mundo
a
from Tkinter import *
root = Tk()
lb = Label(root,text=Ol´, mundo!)
a
lb.pack()
root.mainloop()
184. 8 ¸˜ ´
PROGRAMACAO GRAFICA USANDO TK 184
from Tkinter import *
root = Tk()
lb = Label(root,text=Ol´, mundo!)
a
lb.pack()
root.mainloop()
Descri¸˜o:
ca
root = Tk() root ´ o handler do widget ra´ (representa a aplica¸˜o); Tk() ´ o
e ız ca e
construtor da aplica¸˜o;
ca
Label observe que o construtor Label recebe o handler do root (widget
mestre); Label ´ o widget escravo;
e
text=texto Op¸ao indicando o texto a ser exibido dentro do widget;
c˜
lb Armazena o handler do widget;
.pack() M´todo para “empacotar” um widget (exibe na tela);
e
´
root.mainloop() E o loop do aplicativo (trata todos os eventos).
186. 8 ¸˜ ´
PROGRAMACAO GRAFICA USANDO TK 186
8.2.3 Exemplo: Ol´, mundo 2
a
from Tkinter import *
root = Tk()
Label(root,text=Ol´, mundo!).pack()
a
root.mainloop()
Observe que n˜o ´ necess´rio armazenar o handler.
a e a
187. 8 ¸˜ ´
PROGRAMACAO GRAFICA USANDO TK 187
8.2.4 Widget Label: Algumas Op¸˜es
co
O construtor Label, assim como todos os outros m´todos
e
construtores de widgets, recebe as op¸oes na forma
c˜
chave = valor
188. 8 ¸˜ ´
PROGRAMACAO GRAFICA USANDO TK 188
anchor Indica onde o texto ser´ posicionado dentro do
a
widget; Default ´ CENTER; Outros valores s˜o N, E,
e a
S, W, NE, NW, etc.
background (bg) Cor do fundo;
borderwidth (bd) Espessura da borda;
font Fonte usado no texto;
foreground (fg) Cor do texto exibido dentro do widget;
height Altura do widget em linhas de texto;
justify Alinhamento do texto: LEFT, CENTER (o
default), RIGHT;
189. 8 ¸˜ ´
PROGRAMACAO GRAFICA USANDO TK 189
padx Espa¸o extra a direita e a esquerda do widget (em
c
pixels);
pady Espa¸o extra acima e abaixo;
c
relief Aparˆncia do widget: FLAT (o default), RIDGE,
e
GROOVE, RAISED, e SUNKEN;
text O texto a ser exibido (nova linha com n);
width Largura do widget.
190. 8 ¸˜ ´
PROGRAMACAO GRAFICA USANDO TK 190
8.2.5 Empacotamento
“Empacotar” significa colocar um widget em uma
aplica¸ao (determinar sua posi¸˜o em rela¸˜o aos outros
c˜ ca ca
widgets).
191. 8 ¸˜ ´
PROGRAMACAO GRAFICA USANDO TK 191
1. Usando-se .pack() - Cria o layout empacotando
widgets dentro de widgets de forma hier´rquica
a
(widgets mestre e escravo), tratando-os como blocos
retangulares;
Frame
Frame
Frame
192. 8 ¸˜ ´
PROGRAMACAO GRAFICA USANDO TK 192
Algumas op¸oes:
c˜
anchor Posiciona ao empacotar: N, S, W, E, NE, etc.
fill Preenche espa¸o dispon´
c ıvel: X, Y ou BOTH;
side Posiciona os widgets ao empacotar: LEFT (da
esquerda para a direita na ordem em que forem
empacotados), RIGHT, TOP, BOTTOM.
193. 8 ¸˜ ´
PROGRAMACAO GRAFICA USANDO TK 193
2. Usando-se .grid() - Permite criar layouts baseado em
uma grelha bidimensional (como uma tabela);
0 1
0
1
194. 8 ¸˜ ´
PROGRAMACAO GRAFICA USANDO TK 194
Algumas op¸oes:
c˜
column Indica a coluna da grelha em que ser´
a
posicionado o widget (come¸a em 0);
c
columnspan Caso se queira que o widget ocupe mais
de uma coluna (junta c´lulas);
e
row Indica a linha da grelha (come¸a em 0);
c
rowspan Junta linhas;
sticky Determina como o widget vai ocupar uma
c´lula da grelha: N, S, W, E, N+S (ocupa todo o
e
espa¸o horizontal), E+W (ocupa todo o espa¸o
c c
vertical), N+E+S+W (preenche todo o espa¸o c
dispon´ıvel).
195. 8 ¸˜ ´
PROGRAMACAO GRAFICA USANDO TK 195
3. Usando-se .place() - Permite posicionar
explicitamente o widget;
196. 8 ¸˜ ´
PROGRAMACAO GRAFICA USANDO TK 196
Cuidado! Os empacotadores podem ser usados juntos em
uma aplica¸ao, mas n˜o em um mesmo frame.
c˜ a
197. 8 ¸˜ ´
PROGRAMACAO GRAFICA USANDO TK 197
8.2.6 Binding e Callback (Handler)
• “Binding” ´ um mecanismo geral para associar uma
e
a¸˜o particular do usu´rio (evento) com um
ca a
comportamento definido espec´ ıfico da aplica¸˜o;
ca
• “Callback” ´ a chamada do handler;
e
• “Handler” ´ a fun¸ao/m´todo que responde ao
e c˜ e
evento.
198. 8 ¸˜ ´
PROGRAMACAO GRAFICA USANDO TK 198
8.2.7 M´todos Universais
e
• S˜o aqueles que existem para todos os widgets;
a
• Exemplos:
.bind() Define bindings;
.clipboard append() Insere na clipboard do Tk;
.clipboard clear() Limpa a clipboard do Tk;
.configure() ou .config() Configura o widget
depois de criado;
.destroy() Destr´i o widget;
o
199. 8 ¸˜ ´
PROGRAMACAO GRAFICA USANDO TK 199
.event add() Cria eventos virtuais;
.grab set() Captura todos os eventos da aplica¸˜o;
ca
.mainloop() Espera por eventos;
.quit() Abandona o “mainloop”.
200. 8 ¸˜ ´
PROGRAMACAO GRAFICA USANDO TK 200
8.2.8 Exemplo: Ol´, mundo 3
a
from Tkinter import *
root = Tk()
root.title(Teste)
lb = Label(root,text=Ol´, mundo!,width=20)
a
lb.pack()
root.mainloop()
Observa¸˜o: width ´ dado em unidades de texto.
ca e
202. 8 ¸˜ ´
PROGRAMACAO GRAFICA USANDO TK 202
8.2.9 Dimens˜es e Sistema de Coordenadas
o
• Especificar as dimens˜es em: c (cent´
o ımetros), i
(polegadas), m (milimetros), p (pontos de impress˜o);
a
• Se n˜o especifica a dimens˜o, o valor ´ tomado como
a a e
pixels;
• O sistema de coordenadas ´ relativo ao canto
e
superior esquerdo da janela, “x” refere-se a distˆncias
a
na horizontal e “y” refere-se a distˆncias na vertical.
a
203. 8 ¸˜ ´
PROGRAMACAO GRAFICA USANDO TK 203
8.2.10 Exemplo: Ol´, mundo 4
a
from Tkinter import *
root = Tk()
root.title(Teste)
b = Button(root,bg=blue,fg=yellow,text=Ol´, mundo!,
a
width=20,command=root.quit)
b.config(activebackground=yellow) # poderia ser feito na cria¸~o
ca
b.config(activeforeground=blue)
b.pack()
root.mainloop()
Observa¸˜es:
co
• widget “Button” permite criar bot˜es clic´veis no aplicativo;
o a
• “bg” ´ a cor de fundo e “fg” ´ a cor do texto;
e e
• “command” define uma resposta ao evento “clicar no bot˜o”;
a
• “.config” ´ o m´todo para configurar widgets.
e e
205. 8 ¸˜ ´
PROGRAMACAO GRAFICA USANDO TK 205
8.2.11 Widget Button
Principais op¸oes:
c˜
activebackground Cor de fundo quando o mouse est´
a
sobre o widget;
activeforeground Cor do texto quando o mouse est´
a
sobre o widget;
anchor Idˆntico a Label;
e
bd Espessura da borda;
command Resposta ao clique;
cursor Permite definir o cursor quando o mouse est´
a
sobre o widget;
206. 8 ¸˜ ´
PROGRAMACAO GRAFICA USANDO TK 206
justify Idˆntico ao widget Label;
e
padx idem;
pady idem;
relief idem;
text Texto que vai aparecer no bot˜o;
a
underline Indica a posi¸ao do caracter que ser´
c˜ a
sublinhado no texto do widget e servir´ de atalho do
a
bot˜o (come¸a com 0);
a c
width Largura do bot˜o.
a
207. 8 ¸˜ ´
PROGRAMACAO GRAFICA USANDO TK 207
8.2.12 Exemplo: Ol´, mundo 5
a
from Tkinter import *
def callback():
print (Ol´, mundo!)
a
root = Tk()
root.title(Teste)
frame = Frame(root)
frame.pack()
b = Button(frame,text=Fala vivente,command=callback)
b2 = Button(frame,text=Tchau...,command=root.quit)
b.pack(side=LEFT)
b2.pack(side=LEFT)
root.mainloop()
• widget “Frame” ´ um “container” (n˜o aparece na tela);
e a
• “command=callback” define um callback para o bot˜o;
a
• “.pack(side=LEFT)” - packing com posi¸˜o.
ca
209. 8 ¸˜ ´
PROGRAMACAO GRAFICA USANDO TK 209
8.2.13 Widget Frame
Algumas op¸oes:
c˜
background (bg) Cor de fundo do frame;
borderwidth Espessura da borda (default ´ 0);
e
height Altura do frame;
relief Idˆntico ao descrito em Label e Button;
e
width Largura do frame;
210. 8 ¸˜ ´
PROGRAMACAO GRAFICA USANDO TK 210
8.2.14 Exemplo: Ol´, mundo 6
a
from Tkinter import *
def callback(evento): # note o argumento evento do callback
print (Ol´, mundo! x=%d y=%d%(evento.x,evento.y))
a
root = Tk()
root.title(Teste)
frame = Frame(root)
frame.pack()
b = Button(frame,text=Clique duplo aqui)
b.bind(Double-Button-1,callback) # binding de eventos
b2 = Button(frame,text=Tchau...,command=root.quit)
b.pack(side=TOP) # observe que side=TOP
b2.pack(side=TOP,fill=X) # fill=X para ocupar todo o espa¸o
c
root.mainloop()
212. 8 ¸˜ ´
PROGRAMACAO GRAFICA USANDO TK 212
8.2.15 Mais Sobre Binding
• Alguns tipos de eventos:
Button O usu´rio pressionou um bot˜o com o
a a
mouse (exemplo: Button-1 ´ o bot˜o esquerdo
e a
do mouse);
Configure O usu´rio mudou o tamanho do widget
a
(por exemplo, arrastando a borda da janela);
Enter O mouse entrou na ´rea do widget;
a
Leave O mouse saiu da ´rea do widget;
a
Motion O usu´rio est´ arrastando o widget;
a a