Linguagem Python

Post on 18-Dec-2014

1.189 views 3 download

description

 

Transcript of Linguagem Python

    Natã Venancio de Melonatanvm@dsc.ufcg.edu.br

   

Agenda:

Histórico Características Plataformas Disponíveis Implementações Licença Módulos e Frameworks Ambientes de desenvolvimento Integrado

   

Agenda:

Aplicações Aprenda Python Python não é uma maravilha Eventos Python no nosso curso Ranking Guido Van Rossum

   

Histórico

Guido Van Rossum – 1989 Instituto de Pesquisa Nacional para Matemática e Ciência da Computação (CWI)

Sucessor da linguagem ABC Aumentar Produtividade do Programador Lançamento: 1991

Versão 0.90: Módulos de Modula­3 Classes, heranças, tratamento de exceções, funções 

Tipos de dados nativos (list, dict, str)

   

Histórico 1994

Fórum de discussão comp.lang.python Versão 1.0:

Adicionado de ferramentas para computação funcional (lambda, map, filter e reduce)

1995: Corporação para Iniciativas Nacionais de Pesquisa ­ CNRI (Reston­Estados Unidos)

Versão 1.2 Versão 1.4:

Linguagem ganha a capacidade de passar parâmetro pelo nome

   

Histórico

Ganha forma de encapsulamento Suporte Nativo a número complexos

Versão 1.6 Versão 1.61:

Licença CNRI Compatível com GPL

2000: BeOpen Versão 2.0:

Listcomprehension, sistema coletor de lixo

Analisador Sintático SAX

   

Histórico

2001: PythonLabs    Digital Creations→ Python Software Foundation Versão 2.1 Versão 2.2:

Unificação do tipos de Python (escritos em C) e classes (escritas em Python) em somente uma hierarquia

Modelo de Objetos Python consistentemente orientado a       objeto

   

Histórico Versão 2.3:

Pacote logging Versão 2.4 Versão 2.6:

Transição Bibliotecas para multiprocessamento, JSON, E/S

Nova forma de formatação de cadeias de caracteres

Python 3000: O print passa a ser uma função Mudança de todas as cadeias de caractere para UNICODE

   

Características

Construções Estrutura de Seleção

 if, elif, else Estrutura de Repetição

 for, while Estrutura de classes

class Contrução de Subrotina

def Construção de escopo

with

   

Características

Tipos de dados Valores e Objetos possuem tipos bem definidos

str    “Python”, 'pet­computacao'→ list   ['ufcg', 10, True]→ dict   {“oi”:”hello”, “gordo”:”big”}→ int    13,  5555555555555555L→ float   12.987765432→ complex   3+4j→ bool   True, False→ set, frozenset   set([1,”diogo”, “diogo”, →13, 13])

   

Características

Permite definição de tipo de dados próprios

Métodos são definidos como funções anexados à classe

Exemplo de criação de classe:

class Bag:    def __init__(self):        self.data = []    def add(self, x):        self.data.append(x)    def addtwice(self, x):        self.add(x)        self.add(x)

   

Características

Palavras reservadas and, del, from, not, while, as, elif, global, or, with, assert, else, if, pass, yield, break, except, import, print, class, exec, in, raise, continue, finally, is, return, def, for, lambda, try 

Operadores Básicos:

==, >, <, <=, >=  Lógicos:

and, or, not

   

Características

Tipagem Dinâmica Interpretador Interativo Análise Léxica Analisador Sintático Indentação e Espaços em branco Compilador de Bytecode

Pode ser compilada .pyc e .pyo Módulo dis da Bilioteca Grupos de Arquivos

   

Características

Orientação a Objetos Classes, funções, números e módulos são considerados objetos

Polimorfismo, herança Não há encapsulamento

Atributo de uso privado da classe: _atributo

Classe._atributo = outro_atributo Atributo privado: __atributo

Classe._A__atributo = outro_atributo

   

Características

Tratamento de Exceções

try:coordenador  =  Curso.getCoordenador()

except AttributeError:print “BUG”

   

Características

Ferramentas de diversas tarefas Aplicações

Internet Interfaces Gráficas Conectar em Banco de dados relacionais

   

Plataformas Disponíveis

Diversas Plataformas Unix, Windows Compilador C   gerar Python a partir do →código fonte

   

Implementações

CPython e Stackless Python PyS60 Jython, IronPython

   

Licença

Livre, aprovada pela OSI Compatível com GPL

   

Módulos e Frameworks

Biliotecas de Funções Especializadas Desenvolvimento Web

Django, Pylons, TurboGears, CherryPy Processamento de Imagem

Python Imaging Library, Matplotlib Computação Gráfica e Desenvolvimento de Jogos

Visual Python, PyOpenGL, Pygame Computação Distribuída

PYRO

   

Módulos e Frameworks

Computação Científica Numarray 

Desenvolvimento de Software Twisted

Banco de dados ZODB

   

Interfaces Gráfica

Tkinter : Módulo padrão para GUI no Python PyGT : Interface para a biblioteca GTK PyQT : Interface para a biblioteca QT WxPython : Interface para a biblioteca wxWidgets

Wax : Modo simples do wxPython

   

Ambientes de desenvolvimento integrado

Boa Constructor   wxPython→ Eric Python IDE   Qt→ Geany   GTK2→ IDLE   Tkinter→ IronPython Studio   VS2008→ Komodo   Mozilla → PyDev (Eclipse) PythonCard  PyScripter  Wing IDE

   

Aplicações

Projetos que utilizam PythonProjetos que utilizam Python Servidor ZOPEServidor ZOPE MnetMnet YouTubeYouTube

Organizações que utilizam a linguagemOrganizações que utilizam a linguagem GoogleGoogle YahooYahoo NASANASA Air CanadaAir Canada

   

Aplicações

Alguns Softwares Maya Softimage XSI TrueSpace Blender GIMP

   

Aprenda Python

http://associacao.pythonbrasil.org/ http://www.python.org.br/wiki http://www.python.org/ http://infomoz.net/modules/ http://www.s60.com/life http://opensource.nokia.com/projects/pythonfors60/ http://www.pygame.org/news.html http://www.youtube.com/watch?v=s­fKcZ5pKLE

   

Python não é uma MaravilhaPython não é uma Maravilha

Orientação a Objetos Não há encapsulamento Incofiável quanto à atributos privados Parâmetros não define tipo Um mesmo método pode retornar vários tipos de objetos 

   

Eventos PyconBrasil

http://pyconbrasil.com.br/ http://video.google.com/videosearch?q=pyconbrasil3#

EuroPython http://www.europython.eu/

EuroSciPy http://www.euroscipy.org/

Outros http://wiki.python.org/moin/PythonEvents

   

Python no nosso curso

2008.1  Projetos

   

Ranking

   

   

Guido Van Rossum

   

Referências

http://www.python.org.br http://www.dmat.furg.br/~python/ http://wapedia.mobi/pt/Python http://www.tiobe.com

   

Comentários

   

print “FIM”