Introdução à linguagem Python. Slides extras

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

Allisson Barros 12/ Daniel Luz 13/ Leandro Bergmann 14/ Luiz Fernando Vieira 13/ Uriel Silva 12/

Aprendendo Python na Prática. Dante Moreira Zaupa Mestrando em Computação Aplicada Bolsista de Pesquisa

Algoritmos e Estrutura de Dados. Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira

Linguagens de programação

Uma aplicação distribuída

AULA Uma linguagem de programação orientada a objetos

Organização de programas em Python. Vanessa Braganholo

Minicurso de Python Aula 1. Raphael Lupchinski Marcelo Millani

2. O AMBIENTE DE PROGRAMAÇÃO EM C

Parte IX. Luiz Eduardo Borges

Fundamentos de programação em Python. Introdução a Linguagem Python. Dino Magri

CURSO DE PROGRAMAÇÃO EM JAVA

Python. Introdução à Programação SI1 - BSI

Tudo o que Você Sempre Quis Saber Sobre Linguagens de Programação* (*Mas Tinha Medo de Perguntar) Diego Padilha Rubert FACOM

Aula Prática 1: Introdução ao Ambiente de Programação Dev-C++

Tutorial de Computação Programação em Python para MEC1100 v

Introdução à Linguagem

Disciplina: Introdução aos Sistemas Operacionais Professor: Fernando Santorsula

Fundamentos de Programação II. Introdução à linguagem de programação C++

Universidade Federal do Pará Centro de Tecnologia da Informação e Comunicação Grupo de Trabalho SET. Tutorial PyQT4

2 Orientação a objetos na prática

Java. Marcio de Carvalho Victorino

Introdução ao IDE Netbeans (Programação Java)

Scilab. Introdução ao Scilab. Como obter ajuda

Curso de Linux Básico

e à Linguagem de Programação Python

Receita de bolo para instalar MinGW-GCC e Netbeans em Windows

Editor Eclipse para Programas F

Java - Introdução. Professor: Vilson Heck Junior. vilson.junior@ifsc.edu.br

Guião de Introdução ao Eclipse IDE Índice

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

Python: Comandos Básicos. Claudio Esperança

A Linguagem Python: Uma visão geral. Prof. Alberto Costa Neto Programação em Python

AMBIENTE DE PROGRAMAÇÃO PYTHON

Python: Módulos. Claudio Esperança

Objetivos do mini curso. Conhecer a linguagem. Noção de programação utilizando Python. Aprender o báscio.

Tutorial Eclipse (IDE)

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

QUITETURA AVANÇADA DE SISTEMAS

Instalação do IBM SPSS Modeler Server Adapter

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Luiz Eduardo Borges. Novatec

Programação online em Java

Álvaro Justen a.k.a. Turicas

Desenvolvendo Websites com PHP

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA

Programação de Computadores - I. Profª Beatriz Profº Israel

A Linguagem Algorítmica Estrutura de Repetição. Ex. 2

DF-e MANAGER 2.6 Pré-requisito de Instalação Novembro de 2015

Python Aplicado às Redes de Comunicação

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DE ALAGOAS CURSO TÉCNICO EM INFORMÁTICA DISCIPLINA:

1 Detecção e correcção de erros Erros sintáticos Erros de execução Erros semânticos Erros semânticos...

LINGUAGEM DE PROGRAMAÇÃO WEB

UFRPE Prof. Gustavo Callou

Algoritmos e programação

Java 2 Standard Edition. Configuraçã. ção o do ambiente. JEdit + Ant. argonavis.com.br. Helder da Rocha (helder@acm.org)

Instalação do IBM SPSS Modeler Server Adapter

Manual de Instalação PIMSConnector em Windows

Programação de Computadores II TCC Turma A-1

Aula 02. Introdução ao Linux

Seminário - C# DSO II. Desenvolvimento de Sistemas Orientados a Objetos 2. Equipe: Diorges, Leonardo, Luís Fernando, Ronaldo

Nome N Série: Ferramentas

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Aula 01. Introdução ao Linux

Estrutura de Dados. Ricardo José Cabeça de Souza Parte 1

Lógica de Programação

Introdução. Capítulo Breve sinopse

ÍNDICE 1.CONHECENDO OS APLICATIVOS NECESSÁRIOS PARA O FUNCIONAMENTO DO SISTEMA URANO INTEGRA...

Mobile Command. Diego Armando Gusava. Orientador: Mauro Marcelo Mattos

Linguagens de Programação. Linguagens de Script. Carlos Bazilio

Fábio Rodrigues Jorge.

Desenvolvimento Web TCC Turma A-1

I N F O R M Á T I C A. Sistemas Operacionais Prof. Dr. Rogério Vargas Campus Itaqui-RS

Linguagem de Programação Visual

1º passo: Instalando a rvm.

PostgreSQL & PostGIS: Instalação do Banco de Dados Espacial no Windows 7

Instalação da Ferramenta Eclipse no Windows Prof. Bruno Emerson Gurgel Gomes Instituto Federal de Educação, Ciência e Tecnologia do RN

Introdução à Programação

PHP AULA1. Prof. Msc. Hélio Esperidião

Manual de Instalação PIMSConnector em Linux

Dispositivos móveis e o mercado Android Open Handset Alliance Informações sobre Android Arquitetura

NetBeans. Conhecendo um pouco da IDE

Introdução. Sumários. Objectivos da cadeira. História das linguagens de programação. Classificação das Linguagens de programação

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

Interface gráfica para compiladores gratuitos baseados em linha de comando disponíveis na internet

Orientação a Objetos com Java

Scripts Shell. João Medeiros 1 / 20

Sistemas Operacionais de Rede Linux - Gerenciamento de Arquivos

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Pratica JFlex. Prática criando o primeiro analisador léxico

Python. Uma visão geral sobre a linguagem. Guilherme Artém Henrique Castro José Mauro

Programação científica C++

O Processo de Programação

Transcrição:

Introdução à linguagem Python Slides extras 1

Linguagem de uso geral Internet: YouTube, Globo.com, Bitly, Mozilla... Computação gráfica: Disney, ILM, AutoDesk... Desktop: Dropbox, BitTorrent, OpenOffice... Operações: Google, Rackspace, Ubuntu, RedHat... Enterprise: IBM, Oracle, ERP5, OpenERP... Games, computação científica, segurança, etc... 2

3

4

Sobre Python Linguagem dinâmica compilador é parte do ambiente de runtime Tudo são objetos Ex.: inteiros, funções, classes, exceções etc. Multi-plataforma Interpretador, APIs, bytecode, GUIs etc. 5

Implementações CPython: a principal, escrita em C incluída na maioria das distros GNU Linux e no Mac OS X; vários pacotes para Windows Jython: escrita em Java parte de IBM WebSphere e Oracle WebLogic IronPython: escrita em C#,.net CLR desenvolvida pela Microsoft 6

Implementações (2) PyPy: Python em Python Implementação em linguagem de alto-nível facilitando a inovação Desempenho 5x melhor que CPython Incompatível com as extensões em C 7

8

9

Implementações (3) 3.2 2.7 2.5 nosso foco CPython Jython Iron Python PyPy = desenvolvimento ativo 10

Python: evolução Versões do CPython em jan/2012 3.0, 2.5 e anteriores: fossilizadas 2.6 e 3.1: manutenção ativa 2.7 e 3.2: versões atuais 2.7: versão final da série 2.x 3.3: prevista para ago/2012 11

CPython 2.7: instaladores GNU Linux: pré-instalado em quase toda distro usar gerenciador de pacotes ou compilar (é fácil) Windows Python.org: instaladores MSI para 32 e 64 bits ActiveState ActivePython: 32 e 64 bits Mac OS: 32 bits (x86 e PPC), 64 bits (x86) 12

Módulo 1: temas finais Manipulação de argumentos da linha de comando Leitura e gravação de arquivos: binários e texto com encoding Introdução a testes automatizados com doctest Consoles interativos IDEs e editores populares com Python 13

Argumentos da linha de comando Uma lista de strings disponíveis através de sys.argv sys.argv[0] é o nome do próprio script Para resultados profissionais, use o módulo argparse, incluído no Python 2.7 disponível no PyPI para Python 2.3 PyPI = Python Package Index http://pypi.python.org/pypi/argparse/ 14

somar_args.py import argparse def media(numeros): return sum(numeros, 0.0) / len(numeros) parser = argparse.argumentparser(description='somar números.') parser.add_argument('numeros', metavar='n', type=float, nargs='+', help='números a somar') parser.add_argument('-m', dest='operacao', action='store_const', const=media, default=sum, help='calcular a média (default: somar)') args = parser.parse_args() print args.operacao(args.numeros) modulo1.git/somar_args.py 15

import argparse def somar_args.py media(numeros): return sum(numeros, 0.0) / len(numeros) parser = argparse.argumentparser(description='somar números.') parser.add_argument('numeros', metavar='n', type=float, nargs='+', help='números a somar') parser.add_argument('-m', dest='operacao', action='store_const', const=media, default=sum, help='calcular a média (default: somar)') args = parser.parse_args() print args.operacao(args.numeros) $./somar_args.py usage: somar_args.py [-h] [-m] N [N...] somar_args.py: error: too few arguments$ $./somar_args.py -h usage: somar_args.py [-h] [-m] N [N...] Somar números. positional arguments: N números a somar optional arguments: -h, --help show this help message and exit -m calcular a média (default: somar) 16

Leitura e gravação de arquivos Função embutida open() Capítulo 7 do tutorial open() devolve uma instância de file() file.read() devolve uma string de bytes o decoding é problema seu 17

Leitura linha a linha #coding: utf-8 import sys nome_arq = sys.argv[1] arq = open(nome_arq) print '='*60 for lin in arq: print lin.rstrip() arq.close() #coding: utf-8 import sys nome_arq = sys.argv[1] with open(nome_arq) as arq: print '='*60 for lin in arq: print lin.rstrip() modulo1.git/demo_arq.py 18

Leitura e gravação de textos com encoding Função codecs.open() módulo codecs aceita um argumento para definir o encoding file.read() devolve uma string de unicode o decoding deixa de ser problema seu! 19

Escrevendo com codecs.open #/usr/bin/env python # coding: utf-8 import sys import codecs uni = u'avião' encodings = ['cp1252', 'utf-8'] for encoding in encodings: nome_arq = 'aviao-%s.dat' % encoding with codecs.open(nome_arq,'wb', encoding) as saida: saida.write(uni) modulo1.git/escrever_aviao.py 20

Exemplo de doctest # coding: utf-8 """ Calcula a média de uma sequência de números """ >>> media([10]) 10.0 >>> media([10, 20]) 15.0 >>> media([1, 2]) 1.5 def media(seq): return float(sum(seq))/len(seq) 21

Para executar doctests Pela linha de comando: $ python -m doctest meu_script.py Usando um test-runner (unittest, nose, etc.) veremos isto no módulo 2 No próprio script (self-test): if name ==' main ': import doctest print doctest.testmod(optionflags=doctest.report_only_first_failure doctest.report_ndiff doctest.normalize_whitespace) 22

doctest: diretivas + úteis NORMALIZE_WHITESPACE útil para uso em todos os testes SKIP pular um teste específico ELLIPSIS ignorar parte de um output muito extenso ou irrelevante 23

Consoles interativos python integrado em IDEs ipython bpython IDLE online http://shell.appspot.com/ http://pythonwebconsole.thomnichols.org/ http://www.pythonanywhere.com/ 24

IDEs, algumas opções PyDev (Eclipse) PyCharm (JetBrains) $$$ Komodo Edit Komodo IDE $$$ TextMate $ - OSX SublimeText $ WingIDE $$$ 25

Em vez de IDE: The Unix environment Linux ou OSX ou qualquer Unix: janelas de editor, console e navegador ou sua aplicação alternar entre janelas com alt-tab: simples, poderoso e eficaz Emacs: python-mode.el vi: http://www.vex.net/~x/python_and_vim.html Geany: um Gedit mais esperto para lidar com vários arquivos 26

Configure o editor para... Indentar com 4 caracteres de espaço ao usar a tecla TAB ou comandos de indentação multi-linha Salvar tabs como 4 espaços, nunca como tabs Limpar brancos no final das linhas ao salvar Indentação inteligente: preservar indentação da linha acima indentar automaticamente após: if, elif, else, for, while, try, except, finally, def, class, with 27