Natã Venancio de [email protected]
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 Modula3 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 (RestonEstados 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”, 'petcomputacao'→ 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=sfKcZ5pKLE
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”
Top Related