14/03/2017 Python – Wikipédia, a enciclopédia livre

Python
Origem: Wikipédia, a enciclopédia livre.

Python é uma linguagem de programação de alto nível[4],
interpretada, de script, imperativa, orientada a objetos, funcional, Python
de tipagem dinâmica e forte. Foi lançada por Guido van Rossum
em 1991.[1] Atualmente possui um modelo de desenvolvimento
comunitário, aberto e gerenciado pela organização sem fins
lucrativos Python Software Foundation. Apesar de várias partes
da linguagem possuírem padrões e especificações formais, a Paradigma Multiparadigma:
linguagem como um todo não é formalmente especificada. O Orientação a objetos
padrão de facto é a implementação CPython. Programação imperativa
Programação funcional
A linguagem foi projetada com a filosofia de enfatizar a Surgido em 1991[1]
importância do esforço do programador sobre o esforço Última 3.6.0 (23 de dezembro de 2016 [2])
computacional. Prioriza a legibilidade do código sobre a versão
velocidade ou expressividade. Combina uma sintaxe concisa e Criado por Guido van Rossum[1]
clara com os recursos poderosos de sua biblioteca padrão e por
módulos e frameworks desenvolvidos por terceiros. Estilo de Dinâmica, forte
tipagem:
Python é uma linguagem de propósito geral de alto nível, multi Dialetos: CPython, IronPython, Jython,
PyPy
paradigma, suporta o paradigma orientado a objetos, imperativo,
funcional e procedural. Possui tipagem dinâmica e uma de suas Influenciada ABC,[3] ALGOL 68, C[3],
por Haskell, Icon, Java, Lisp,
principais características é permitir a fácil leitura do código e
exigir poucas linhas de código se comparado ao mesmo programa Modula-3[3], Perl, Smalltalk
em outras linguagens. Devido as suas características, ela é Influenciou Boo, D, Falcon, Fantom,
principalmente utilizada para processamento de textos, dados Groovy, JavaScript, Nimrod, Py,
Ruby, Squirrel
científicos e criação de CGIs para páginas dinâmicas para a web.
Página www.python.org (https://www.p
O nome Python teve a sua origem no grupo humorístico britânico oficial ython.org/)

Monty Python,[5] criador do programa Monty Python's Flying
Circus, embora muitas pessoas façam associação com o réptil do mesmo nome (em português, píton ou pitão).

Índice
1 História
2 Filosofia
2.1 Construções
2.2 Tipos de dado
2.3 Palavras reservadas
2.4 Operadores
2.5 Interpretador interativo
2.6 Análise léxica
2.6.1 Indentação
2.7 Compilador de bytecode
2.8 Orientação a objetos
2.9 Programação funcional
2.10 Tratamento de exceções
2.11 Biblioteca padrão
2.12 Interoperabilidade

https://pt.wikipedia.org/wiki/Python 1/14

funções anonimas e função map de Haskell.python. Python foi feita com base na linguagem ABC. Guido lançou a iniciativa Computer Programming for Everybody (CP4E.4 a linguagem ganhou parâmetros nomeados (a capacidade de passar parâmetro pelo nome e não pela posição na lista de parâmetros) e suporte nativo a números complexos. São Francisco. Em 2000.9. Um dos focos primordiais de Python era aumentar a produtividade do programador. funções e os tipos de dado nativos list.2. "Programação de Computadores para Todos"). ele continuou o trabalho no CNRI em Reston. A última versão enquanto Guido estava na CWI foi o Python 1. compreensão de listas.[6]Em 1994 foi formado o principal fórum de discussão do Python. com a adição da opção else clause. Os iteradores são baseados na Icon.lang. A CNRI pediu que a versão 1. Estados Unidos. para marcar o fim de desenvolvimento da linguagem naquele local. Também estava presente nessa versão um sistema de módulos emprestado do Modula-3. de onde lançou diversas versões. que visava tornar a programação mais acessível.[8] Atualmente o CP4E encontra-se inativo. como um sucessor da ABC capaz de tratar exceções e prover interface com o sistema operacional Amoeba[6] através de scripts.sources. assim como uma forma de encapsulamento. O modelo de exceções também lembrava muito o do Modula-3. map.org/wiki/Python 2/14 . a enciclopédia livre 2.1 Interfaces gráficas 8 Ambientes de desenvolvimento integrado 9 Aplicações 10 Referências 11 Bibliografia 12 Ligações externas História O Python foi concebido no final de 1989[4][5] por Guido van Rossum no Instituto de Pesquisa Nacional para Matemática e Ciência da Computação (CWI). possui parte da Califórnia sintaxe derivada do C. A versão 1. o time de desenvolvimento da linguagem se mudou para a BeOpen a fim de formar o time PythonLabs. O único lançamento na BeOpen foi o Python 2.0) no grupo de discussão alt. ainda que com o custo do desempenho em tempo de execução. nos Países Baixos. tratamentos de exceção e módulos da Modula-3. dict. literalmente.0 foi lançada em janeiro de 1994.[1] Nessa versão já estavam presentes classes com herança. e assim por diante. Em 1991. Novas funcionalidades incluíam ferramentas para programação funcional como lambda.6 fosse lançada.wikipedia. e após o lançamento o grupo de https://pt. Em 1995. Guido publicou o código (nomeado versão 0.0.13 Comentários 3 Plataformas disponíveis 4 Implementações 5 Desenvolvimento 6 Licença 7 Módulos e frameworks 7. Mas ela não possuía funcionalidades importantes para a interação com o sistema operacional.[7] Ainda na CNRI. um marco para o crescimento da base de usuários da linguagem. filter e reduce. Também da CWI. str. tratamento de exceções. um projeto financiado pela DARPA. expressões regulares de Perl. Na versão 1. uma necessidade do grupo.14/03/2017 Python – Wikipédia. comp. a linguagem ABC era mais produtiva que C.[5] Guido van Rossum.

6. Todo código.6. Uma grande inovação da versão 2.2 foi a unificação dos tipos Python (escritos em C) e classes (escritas em Python) em somente uma hierarquia. que passa a ser uma função. Está disponível como linguagem de script em aplicações como OpenOffice (Python UNO Bridge). a segunda em 7 de dezembro do mesmo ano. a mudança para Unicode de todas as cadeias de caracteres. Python 2. Tanto BeOpen quanto CNRI e FSF negociaram uma mudança na licença livre do Python que o tornaria compatível com a GPL.[19] chamada Python 3. introduzido na versão 2.0 também introduziu um sistema coletor de lixo capaz de identificar e tratar ciclos de referências.[10] O lançamento incluiu a mudança na especificação para suportar escopo aninhado.wikipedia.1 e 2. a enciclopédia livre desenvolvedores da PythonLabs agrupou-se na Digital Creations. Python influenciou várias linguagens.[12] Também foi adicionado generator. compatível com a GPL. A terceira versão da linguagem foi lançada em dezembro de 2008.[5] A primeira versão alfa foi lançada em 31 de agosto de 2007.[21] Também. Com noticiado desde antes de seu lançamento. que se baseia nos princípios de desenvolvimento rápido de Python.6. Mudanças da versão incluem a alteração da palavra reservada print.[16] adicionadas na versão 2.[18] Atualmente a linguagem é usada em diversas áreas. A Free Software Foundation alegou que isso era incompatível com a GNU GPL. uma relevante funcionalidade de linguagens funcionais como SETL e Haskell.1 era parecido com as versões 1. foram incluídas bibliotecas para multiprocessamento.org/wiki/Python 3/14 . tornando mais fácil a utilização de uma versão alternativa da rotina.6 incluiu uma licença CNRI substancialmente mais longa que a licença CWI que estavam usando nas versões anteriores.0.0 implementou list comprehension.14/03/2017 Python – Wikipédia. inspirado em Icon.[10] Python 2.0. que usa a indentação como definição de bloco e Go. como servidores de aplicação e computação gráfica. assim como outras linguagens com escopo estático.1 é propriedade da Python Software Foundation (PSF).x para corrigir falhas que foram descobertas neste padrão. Isto tornou o modelo de objetos do Python consistentemente orientado a objeto. Entre outras modificações.4.0 ou Python 3000.3. https://pt. algumas delas foram Boo e Cobra. exceto pela preferência do Haskell por caracteres de pontuação e da preferência do python por palavras reservadas alfabéticas. um modelo tal qual da Apache Software Foundation. Blender e pode ser utilizada em procedimentos armazenados no sistema gerenciador de banco de dados PostgreSQL (PL/Python).[20] houve quebra de compatibilidade com a família 2. uma organização sem fins lucrativos fundada em 2001. Em Python 2. já visando a transição para a versão 3.[9] Já o 1. exceto por pequenas correções de falhas e uma licença nova. Entre outras mudanças. essa licença incluía uma cláusula atestando que a licença era governada pelas leis da Virgínia. foi criado o Raspberry Pi.[11] Esta funcionalidade estava desativada por padrão. isso já está disponível ao adicionar o código from __future__ import print_function. e somente foi requerida na versão 2.1 é idêntico ao 1. documentação e especificação desde o lançamento da versão alfa da 2. Uma das principais linguagens escolhidas é Python.0 e a sintaxe de decoradores que usa @. A sintaxe da linguagem para essa construção é bastante similar a de Haskell. Python 1.[17] Em 1 de outubro de 2008 foi lançada a versão 2. JSON e E/S.6. Essa versão 2. e para limpar os excessos das versões anteriores.6. Sua licença foi renomeada para Python Software Foundation License.2. Em 2012.0 da linguagem.[13] O incremento da biblioteca padrão e as escolhas sintáticas foram fortemente influenciadas por Java em alguns casos: o pacote logging[14] introduzido na versão 2. cujo nome foi baseado na linguagem Python. além de uma nova forma de formatação de cadeias de caracteres.[15] o analisador sintático SAX.

Os métodos devem referenciar explicitamente a referência para o objeto incluindo o parâmetro self como o primeiro argumento do método. Uma cadeia de caracteres imutável 'Wikipedia'. pois os valores e objetos têm tipos bem definidos e não sofrem coerções como em C ou Perl. através de classes. else. é transparentemente convertido para long caso não 42 int caiba em um int. True] tuple Tupla imutável (4.método(instância. Instâncias são construídas invocando a classe (FooClass()). FreeBSD. descrevendo sumariamente a filosofia do Python. NetBSD. u'Wikipedia' unicode list Lista heterogênea mutável [4. Em versões entre 2.1415927 complex Número complexo 3+2j bool Booleano True ou False Python também permite a definição dos tipos de dados próprios.[23] Antes da versão 3. o que permite metaprogramação e reflexão. ambos tipos de classes podiam ser usadas.0. estrutura de repetição (for. 'string'.0.método(argumento) é um atalho para Classe. 2147483648L float Ponto flutuante 3. a enciclopédia livre Atualmente. frozenset True]) {'key1': 1. 'string'.0. A linguagem se tornou a padrão no curso de ciências da computação do MIT em 2009 Filosofia Parte da cultura da linguagem gira ao redor de The Zen of Python. construção de escopo (with). Python possuía dois tipos de classes: "old-style" e "new-style". Pode-se vê-lo através de um easter egg do Python pelo comando: >>> import this Construções Construções de Python incluem: estrutura de seleção (if.14/03/2017 Python – Wikipédia. 'string'. capturando cada elemento em uma variável local dada.0. argumento). que itera por um container.wikipedia. https://pt.0. 'string'. AmigaOS 4. True]) set.0.[22] escrito pelo programador em Python de longa data Tim Peters. e todas são new-style. construção de classes (class). Métodos são definidos como funções anexadas à classe. construção de sub-rotinas (def). Classes old-style foram eliminadas no Python 3. e a sintaxe instância. Tipos de dado A tipagem de Python é forte. As classes new- styles nada mais são que tipos definidos pelo usuário. um poema que faz parte do documento "PEP 20 (The Zen of Python)". Conjunto não ordenado . OpenBSD e OS X. não contém elementos duplicados frozenset([4. True) set([4. e as classes são instância da classe type.0. Python é um dos componentes padrão de vários sistemas operacionais. a diferença acaba sendo de onde objeto da classe é herdado. entre eles estão a maioria das distribuições do Linux.2 e 3. como por exemplo para adquirir um recurso. while). elif).org/wiki/Python 4/14 .0. São disponibilizados diversos tipos de dados nativos: Tipo de Descrição Exemplo da sintaxe dado str. A sintaxe de ambos estilos é a mesma. direta ou indiretamente (todas classes new-style herdam de object e são instancias de type). 'key2': dict conjunto associativo False} Número de precisão fixa.

>=. Os operadores booleanos and e or também seguem a avaliação mínima.0. por exemplo: https://pt. porque há a possibilidade de testar o código de um programa e receber o resultado em tempo real. c não é avaliado. Comparações em cadeia como a < b < c possuem o mesmo significado básico que na matemática: os termos são comparadas na ordem. as linhas físicas são trechos de código divididos pelo caractere ENTER. se a < b é falso. A comparação binária retorna uma das duas constantes acima. como números. [] e {} como falso. listas e mapeamentos. entre outros são usados em todos os tipos de dados. Na versão 2.5. Em todas as versões da linguagem os operadores lógicos tratam "".14/03/2017 Python – Wikipédia. até Python 2. <.2 define as seguintes 31 palavras reservadas:[24] 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 Os operadores básicos de comparação como ==. cadeias de texto. Usando a expressão anterior. Linhas lógicas não podem ultrapassar linhas físicas com exceção de junção de linhas. a enciclopédia livre Palavras reservadas O Python 2.wikipedia. 0.2. Interpretador interativo O interpretador interativo é uma característica diferencial da linguagem. y == 0 or x/y > 100 nunca lançará a exceção de divisão por zero. enquanto o restante é tratado como verdadeiro de modo geral. None.1 as constantes True e False foram adicionadas (subclasses de 1 e 0 respectivamente). antes de iniciar a compilação ou incluí-las nos programas. Por exemplo: >>> 1+1 2 >>> >>> a = 1+1 >>> print a 2 >>> print(a) 2 >>> Análise léxica No segundo capítulo do Manual de Referência da Linguagem Python é citado que a análise léxica é uma análise do interpretador em si. É garantido que o processamento da expressão lógica irá terminar tão cedo o veredito é claro. Todo programa é dividido em linhas lógicas que são Exemplo de script separadas pelo token NEWLINE ou NOVA LINHA. 0. Quanto aos operadores lógicos.2 não havia o tipo de dado booleano. o princípio da avaliação mínima.org/wiki/Python 5/14 . os programas são lidos por um analisador sintático que divide o código em tokens. Por exemplo.

Para a separação de blocos de código. 'maio' . Todas as IDE que suportam a linguagem fazem indentação automaticamente. Fortran. o nível de indentação é comparado com o valor do topo da pilha. Abaixo um exemplo de permutação. Se o número da linha for igual ao topo da pilha. 'agosto' . 'março' . Iniciando a pilha com valor 0 (zero) e colocando valores maiores que os anteriores na pilha. Usando um editor de texto comum é muito fácil existir erros de indentação. a pilha não é alterada. 'abril' . retirado do capítulo 2. frequentemente usando palavras e não pontuações como em outras linguagens. 'junho' . 'julho' . em Python a indentação é obrigatória. Se o valor for maior a pilha recebe o nível de indentação da linha e o nome INDENT (empilhamento) se o nível de indentação for menor. 'outubro' .14/03/2017 Python – Wikipédia. a linguagem usa espaços em branco e indentação ao invés de delimitadores visuais como chaves (C. Para cada começo de linha. a enciclopédia livre if resultado > 2 and \ 1 <= 5 and \ 2 < 5: print ('Resultado: %f' % d) ou MESES_DO_ANO = ['janeiro' . Exemplo: Indentação correta Indentação incorreta def valor1 (): def valor1 (): while True: while True: try: try: c = int(raw_input ('Primeiro Valor: ' )) c = int(raw_input ('Primeiro Valor: ' )) return c return c except ValueError : except ValueError : print 'Inválido!' print 'Inválido!' https://pt.1 sobre Estrutura de linhas na Análise léxica do Manual de Referência da linguagem (Language Reference Manual): def perm(l): NOVA LINHA INDENT if len(l) <= 1: NOVA LINHA INDENT return[1] NOVA LINHA DEDENT r = [ ] NOVA LINHA for i in range(len(l)): NOVA LINHA INDENT s = l[:i] + l[i+1:] NOVA LINHA p = perm(s) NOVA LINHA DEDENT for x in p: NOVA LINHA INDENT r. 'novembro' .append(l[i:i+1]+x) NOVA LINHA DEDENT return r Indentação Python foi desenvolvido para ser uma linguagem de fácil leitura. 'setembro' . 'fevereiro' .wikipedia. Diferente de linguagens com delimitadores visuais de blocos. 'dezembro' ] Para a delimitação de blocos de códigos os delimitadores são colocados em uma pilha e diferenciados por sua indentação.org/wiki/Python 6/14 . Pascal). que termina da diminuição da indentação. Java) ou palavras (BASIC. O aumento da indentação indica o início de um novo bloco. com um visual agradável. então é desempilhado até chegar a um nível de indentação recebendo o nome DEDENT (desempilhamento) e se não encontrar nenhum valor é gerado um erro de indentação. o recomendado é configurar o editor conforme a análise léxica do Python ou utilizar uma IDE.

polimorfismo. este último no caso de bytecode otimizado. print e as cadeias de caracteres entre aspas simples e a indentação. No núcleo do interpretador existe o analisador léxico.pyc ou . senão apresentará a exceção: "Seu programa está com erro no bloco de indentação". except. 2.pyo.. e se não houver problemas o programa executará normalmente. argumento2. Orientação a objetos Python suporta a maioria das técnicas da programação orientada a objeto. e o código funcionará enquanto haja métodos e atributos adequados.. e o código seguinte é a composição dos atributos. ou seja.3 foi introduzido um novo método de resolução de ambiguidades para heranças múltiplas. Os módulos do núcleo da linguagem. mas ela também pode compilar seus programas para que a próxima vez que o executar não precise compilar novamente o programa. Qualquer objeto pode ser usado para qualquer tipo. O conceito de objeto na linguagem é bastante abrangente: classes. argumento1.). Para descompilar um código de byte é utilizado o módulo dis da biblioteca padrão da linguagem e existem módulos de terceiros que tornam o bytecode mais confuso. como já dito. reduzindo o tempo de carga na execução. permitindo a especialização de tipos. o Python trabalha com dois grupos de arquivos: 1. é mais legível aos seres humanos que o código de byte do C.[26] Uma classe é definida com class nome:. mostrando resultado para o usuário. o Compilador que aloca memória (tempo de execução) e depois do Avaliador de código que modifica o estado atual do programa (tempo de execução). tornando a descompilação ineficaz. Assim os métodos são chamados objeto. argumento2.método(argumento1. . a enciclopédia livre O código está correto para os dois exemplos. Utilizando o interpretador interativo não é necessário a criação do arquivo de Python compilado. criados pelo usuário. os comandos são executados interativamente.. o interpretador realiza a análise léxica e sintática. Interessante notar que o bytecode da linguagem também é de alto nível. Já a partir da versão 2. try. o analisador sintático que utiliza Estruturas de Objetos (tempo de execução). sua biblioteca padrão e os módulos independentes. compila o código de alto nível se necessário e o executa na máquina virtual da linguagem. def. return.wikipedia.org/wiki/Python 7/14 . e a convenção é que se chame este argumento self. Porém quando um programa ou um módulo é evocado.14/03/2017 Python – Wikipédia. e herança (inclusive herança múltipla). como método(self.. Na versão 2. números e módulos são todos considerados objetos.) e são definidos iguais a uma função. O bytecode é armazenado em arquivos com extensão . Há um suporte limitado para variáveis privadas. Todos os métodos da classe recebem uma referência a uma instância da própria classe como seu primeiro argumento. Compilador de bytecode A linguagem é de altíssimo nível. Os atributos da classe podem ser acessados em qualquer lugar da classe. O analisador reconhecerá as palavras reservadas while. funções.2 de Python foi introduzido um novo estilo de classes em que objetos e tipos foram unificados. e os atributos de instância (ou variável de instância) devem ser declarados dentro dos métodos utilizando a referência à instância atual (self) (ver código contextualizado em anexo). https://pt. Normalmente. Veja que o parâmetro self conterá uma referência para a instância da classe definida em objeto quando for efetuada esta chamada. mas o analisador léxico verificará se a indentação está coerente. . Também há suporte para metaclasses. por exemplo.

Por exemplo. Segue abaixo exemplos de código que testam atributos ("pedem permissão") e que capturam exceções ("pedem perdão"): Teste de atributo Captura de exceção https://pt. no caso em que o interpretador modifica o nome do atributo (ver código contextualizado em anexo). O algoritmo quicksort também pode ser expressado usando a mesma técnica (ver códigos contextualizados para ambos os casos em anexo). Já geradores foram introduzidos na versão 2. e representam o mecanismo de Python para a avaliação preguiçosa de funções (ver códigos contextualizados para ambos os casos em anexo). o chamado encapsulamento.14/03/2017 Python – Wikipédia. Caso o nome da função se repita em outra assinatura.2 (ver códigos contextualizados para ambos os casos em anexo). Exceções são usadas frequentemente como uma estrutura de seleção. uma forma de construir listas. pois as elas são consideradas atributos da classe. quando um arquivo é criado com a extensão . a enciclopédia livre Em Python não existe proteção dos membros duma classe ou instância pelo interpretador. O suporte a funções anônimas está na construção lambda (cálculo Lambda). É inclusive possível capturar uma exceção causada por um erro de sintaxe.2 + 3). Um diretório com vários módulos é chamado de pacote e deve conter um modulo chamado __init__.: 3. Algumas operações entre diferentes tipos são realizadas através de coerção (ex. mas não há um policiamento do interpretador contra acesso a estes atributos. não é possível criar duas funções com o mesmo nome. pode-se usar a técnica para calcular as cinco primeiras potências de dois. ele automaticamente define um módulo. a convenção é simplesmente tentar usar o recurso e capturar a exceção caso o acesso seja rejeitado (recurso inexistente. substituindo blocos if-else. É possível encapsular abstrações em módulos e pacotes.. especialmente em situações que envolvem threads. Tratamento de exceções Python suporta e faz uso constante de tratamento de exceções como uma forma de testar condições de erro e outros eventos inesperados no programa. então definimos esta função como uma biblioteca e todas as outras funções que precisarem desta a chamam sem a necessidade de reescrevê-la (ver código contextualizado em anexo). recurso já em uso. o interpretador considera esta ultima como override e sobrescreve a função anterior.wikipedia. os objetos criados são sempre módulos. caso o código não defina qual dos módulos será importado. ao invés de testar a disponibilidade de acesso a um recurso. Python permite polimorfismo.). Convenciona-se que atributos com o nome começando com um _ são de uso privado da classe.. funções são objetos de primeira classe que podem ser criados e armazenados dinamicamente. Python não possui overloading. . pois os lambdas contêm somente expressões e não blocos de código. O estilo da linguagem apóia o uso de exceções sempre que uma condição de erro pode aparecer. do inglês.2 e finalizados na versão 2. Programação funcional Uma das construções funcionais de Python é compreensão de listas. Estas diferenciações ocorrem apenas no sistema de arquivos. Em Python. "é mais fácil pedir perdão que permissão". É fato que funções semelhantes em várias partes do software sejam utilizadas várias vezes. Uma convenção de codificação é o EAFP. Python também suporta clausuras léxicas desde a versão 2.org/wiki/Python 8/14 .3. para defini-lo como principal. que condiz com a reutilização de código. Por exemplo. Não há disponibilidade de funções anônimas de fato. Isso significa que em termos de desempenho é preferível capturar exceções do que testar atributos antes de os usar. Uma exceção são nomes começando com __. o padrão é o __init__. permissão de acesso insuficiente.py.

'eggs' ): try: ham = spam. Comentários começam com # e são terminados pela quebra da linha. Cadeias de caracteres em Python são delimitadas por " ou ' para única linha e por """ ou ''' para múltiplas linhas. e o código que testa o atributo é mais rápido. A documentação da linguagem inclui exemplos de como usar a Python C-API para escrever funções em C chamáveis diretamente de código Python .mas atualmente esse sequer é o modo mais indicado de interoperação. contando com diversos formatos e protocolos como MIME e HTTP.[27] Por exemplo. o código que captura exceções é mais rápido. Algumas partes da biblioteca são cobertas por especificações (por exemplo.eggs else: except AttributeError : handle_error () handle_error () Ambos os códigos produzem o mesmo efeito. é convenção usar o métodos de múltiplas linhas em ambos os casos. problema que não acontece no caso da captura de exceções. Python pode ser poderosa para conectar componentes diversos de software.[28] fornecendo ferramentas para diversas tarefas. A primeira é o uso de comentários para indicar o que certo código faz. A segunda alternativa é o uso de cadeias de caractere. Plataformas disponíveis https://pt. A biblioteca Boost do C++ inclui uma biblioteca para permitir a interoperabilidade entre as duas linguagens. Quando spam possui o atributo eggs.or g/en/latest/). a captura da exceção representa uma perda considerável de desempenho. Também há módulos para criar interfaces gráficas. e pacotes científicos fazem uso de bibliotecas de alta performance numérica escritos em Fortran e mantidos há décadas. a implementação WSGI da wsgiref segue o PEP 333[29]). Documentação através de cadeias de caracteres também pode ser acessada a partir do interpretador através da função help().org/wiki/Python 9/14 . Não há suporte para comentários que se estendem por mais de uma linha. Na maioria dos casos o paradigma da captura de exceções é mais rápido. Biblioteca padrão Python possui uma grande biblioteca padrão.14/03/2017 Python – Wikipédia. e também pode evitar problemas de concorrência. mas há diferenças de desempenho. Caso contrário. num ambiente multitarefa. A biblioteca padrão conta com facilidades para escrever aplicações para a Internet. a cadeias de caracteres usadas como documentação são objetos Python e fazem parte do código interpretado. Comentários Python fornece duas alternativas para documentar o código. havendo alternativas tais como Cython. mas a maioria dos módulos não segue. geralmente citada como um dos maiores trunfos da linguagem. combinada com a habilidade de usar linguagens de nível mais baixo como C e C++. o espaço de tempo entre o teste do atributo e seu uso de fato pode invalidar o atributo.wikipedia. Entretanto.eggs ham = spam. cada linha consecutiva de comentário deve indicar #. a enciclopédia livre if hasattr (spam. Diferente de comentários. Por conta da grande variedade de ferramentas fornecida pela biblioteca padrão. Isso significa que um programa pode acessar sua própria documentação e manipular a informação. Swig ou cffi (https://cffi. conectar em bancos de dados relacionais e manipular expressões regulares. Interoperabilidade Um outro ponto forte da linguagem é sua capacidade de interoperar com várias outras linguagens.readthedocs. Há ferramentas que extraem automaticamente essa documentação para a geração da documentação de API a partir do código. literais de texto inseridos no código sem atribuição. principalmente código nativo.

incluindo Microsoft Windows e sistemas Unix-like modernos. sendo suportada em quase todas as plataformas que a implementação original. O desenvolvimento acontece no auto-hospedado svn. Diversas implementações. chamado PyS60. Os PEPs são documentos de projeto padronizados que fornecem informações gerais relacionadas ao Python. mas também alguns módulos adicionais para a integração com o sistema operacional Symbian. FreeBSD.org. Questões específicas são discutidas no gerenciador de erros Roundup mantido em python. O código fonte é traduzido pelo interpretador para o formato bytecode. Em 2005 a Nokia lançou um interpretador Python para os telefones celulares S60. Windows.[30] sendo distribuída com uma grande biblioteca padrão escrita em um misto de Python e C. Uma implementação para Palm pode ser encontrada no Pippy. MacOS X. em português Proposta de Melhoria do Python. Implementações A implementação original e mais conhecida do Python é o CPython. Solaris. Essa versão inclui vários módulos das implementações tradicionais. como CPython.python. desde Unix (Linux. Desenvolvimento O desenvolvimento de Python é conduzido amplamente através do processo Python Enhancement Proposal ("PEP").14/03/2017 Python – Wikipédia. Existem também implementações para plataformas já existentes: Jython para a Plataforma Java e IronPython para . etc. basta que exista um compilador C disponível e gerar o Python a partir do fonte. como a série 60. incluindo propostas.). Stackless Python é uma variação do CPython que implementa microthreads (permitindo multitarefa sem o uso de threads). python-dev. descrições.org Licença Python possui uma licença livre aprovada pela OSI e compatível com a GPL. N8xx(PyMaemo) da Nokia e palmtops. Para algum sistema operacional não suportado. Ela prevê (entre outras coisas) que binários da linguagem sejam distribuídos sem a necessidade de fornecer o código fonte junto. Entre estes módulos especializados destacam-se: https://pt. Já o PyPy. que é o fórum principal para discussão sobre o desenvolvimento da linguagem.NET.[31] Módulos e frameworks Ao longo do tempo têm sido desenvolvidos pela comunidade de programadores muitas bibliotecas de funções especializadas (módulos) que permitem expandir as capacidades base da linguagem. porém menos restritiva. o Benevolent Dictator for Life (líder arquiteto da linguagem) do projeto Python. que é multiplataforma e pode ser executado e distribuído sem fonte original. . Esta implementação é suportada em diversas plataformas.NET. escrita em C e compatível com o padrão C89. A execução compilada do código oferece um ganho substancial em velocidade.wikipedia. a enciclopédia livre A linguagem e seu interpretador estão disponíveis para as mais diversas plataformas. Desenvolvedores do CPython também se comunicam através de uma lista de discussão. recebendo o resultado automaticamente. pode funcionar como um interpretador de comandos em que o usuário executa as instruções sequencialmente. PEPs pendentes são revisados e comentados por Van Rossum. é a linguagem Python totalmente escrita em Python. justificativas de projeto (design rationales) e explicações para características da linguagem. versões antigas de MacOS até consoles de jogos eletrônicos ou mesmo alguns celulares. com o custo da perda da interatividade.org/wiki/Python 10/14 .

Numarray Módulo para manipulação de vetores e computação científica . processamento de imagem Matplotlib / Pylab Python Imaging biblioteca para manipulação de imagens digitais . desenvolvimento web Visual Python Framework 3D de alto nível. computação distribuída Remote Objects ZODB Sistema de persistência e banco de dados orientado a objetos . computação científica Interfaces gráficas Exemplos de bibliotecas de GUI disponíveis para Python incluem: Descrição Etk interface para a biblioteca EFL PyGTK interface para a biblioteca GTK PyQT interface para a biblioteca Qt Tkinter Módulo padrão para GUI no Python wxPython interface para a biblioteca wxWidgets Wax Construído para simplificar o uso do wxPython Kivy (http://kivy.org/wiki/Python 11/14 . Matplotlib - biblioteca para manipulação de gráficos 2D. desenvolvimento web Pylons Framework para desenvolvimento de aplicações web. computação incluindo gráficos SDL. Inclui módulos desenvolvimento de software .Sistema de gerenciamento de conteúdo . a enciclopédia livre Descrição Campos de atuação Django Framework para desenvolvimento ágil de aplicações web. processamento de imagem Library PyOpenGL - Python OpenGL suporte multiplataforma ao OpenGL . Twisted para servidor web . banco de dados Plone SGC .14/03/2017 Python – Wikipédia. desenvolvimento web CherryPy Framework para aplicações web. desenvolvimento web Web2py Framework para aplicações web. gráfica Framework para o desenvolvimento de aplicações de rede. computação gráfica Binding desenvolvimento de jogos Conjunto de módulos para o desenvolvimento de jogos eletrônicos . SSH e diversos outros protocolos . Pygame eletrônicos . desenvolvimento web Framework baseado em várias outras tecnologias existentes no mundo TurboGears desenvolvimento web que gira em torno da linguagem Python.wikipedia.org/#home) Biblioteca para a construção de aplicativos multiplataforma Ambientes de desenvolvimento integrado Existem vários ambientes de desenvolvimento integrado (IDE) disponíveis para Python: https://pt. de aplicação .Python Framework para o desenvolvimento de sistemas distribuídos . computação gráfica Mapeador objeto-relacional : traduz estruturas relacionais para objetos SQLObject banco de dados Python e manipula o banco de dados de forma transparente. desenvolvimento web PYRO .

[36] Programas de edição de imagem também a usam para scripts.5.8.1.0 / 2008 Independente Tkinter PSFL 1. 23 de https://pt. a enciclopédia livre Última IDE Desenvolvedor Plataforma Toolkit Licença versão IEP (Interactive Editor for Python - iep-project 3.2 Independente Qt GPL Geany Team 1. A linguagem tem sido embarcada como linguagem de script em diversos softwares.8. o sítio YouTube e o cliente original do BitTorrent. OS X Pydee) erlib) 2014 3. como o GIMP. Fonte do Python (em 2. PyQt4 MIT Linux. 3.0. Consultado em 5 1.[33] O sistema de gerenciamento de reservas da Air Canada também usa Python em alguns de seus componentes.google.or g/downloads/release/python-360/)(em inglês). sistema de gerenciamento de conteúdo desenvolvido em Python e Zope e a Industrial Light & Magic.com/group/spyd December 3.wikipedia.2 / Windows. Yahoo! (para o sítio de grupos de usuários) e NASA. Outros exemplos incluem o Plone.2 multiplataforma wxPython BSD 1. TrueSpace e Blender. «Python Release Python 3.3.org/wiki/Python 12/14 .2-1 / 27 de Windows.[38] que produz filmes da série Star Wars usando extensivamente Python para a computação gráfica nos processos de produção dos filmes.4c / 14 de Stani's Python Editor Stani fevereiro de Independente wxPython GPL 2008 Spyder (https://github. «HISTORY» (http://svn.14/03/2017 Python – Wikipédia.0 / 10 de VS2008 Microsoft IronPython Studio Clarius Labs dezembro de Windows Shell Public 2007 Runtime License 4.1 Independente wxPython GPL Eric Python IDE Detlev Offenbach 4.com/s Spyder developer community (htt 2. Python Software Foundation.23 Independente GTK2 GPL IDLE Guido van Rossum et al. configuração e gerenciamento de pacotes.6.4 multiplataforma java license Boa Constructor Team 0.2 / outubro PyScripter mmm-experts Windows MIT de 2006 0. o compartilhador de arquivos Mnet. O Red Hat Linux usa Python para instalação.1.[35] Autodesk Softimage. estando disponível em diversas distribuições Linux.[37] Para diversos sistema operacionais a linguagem já é um componente padrão. Grandes organizações que usam a linguagem incluem Google[32] (parte dos crawlers).1 / junho de Plataforma Komodo ActiveState multiplataforma Propretário 2007 Mozilla PyDev (Eclipse) Fabio Zadrozny 1. pyder-ide/spyder) (formerly p://groups.6. Wing IDE Wingware novembro de PyGTK Propretário Linux.3.python. como em programas de edição tridimensional como Maya.7 multiplataforma BSD Python) Qt Apache 2 Pycharm JetBrains 4.python.0»(https://www. Referências inglês).[34] A linguagem também tem bastante uso na indústria da segurança da informação.7.13 multiplataforma SWT EPL Licença PythonCard Alex Tweedly 0. OS X 2007 Aplicações Alguns dos maiores projetos que utilizam Python são o servidor de aplicação Zope.org/view/*checkout*/p de junho de 2008 ython/trunk/Misc/HISTORY).

M.org/faq/general#why-was-python-created-in. «8 PEP 282: The logging Package»(http://docs.org/about/quote Consultado em 11 de junho de 2008 s/) (em inglês).html#keywords).org/psf/license/) 17.org/dev/peps/pep-0333/)(em inglês). Guido van Rossum (5 de julho de 2001).«PEP 7 -- 16.wikipedia.python. «Statically Nested Scopes»(http://ww 27.python.14/03/2017 Python – Wikipédia.3/whatsnew/sect-rellink setembro de 2007 (http://web.python. 21 8.org/release/2. «4 PEP 255: Simple Generators»(http://docs. Python FAQ.The Zen of Python»(http://www.0»(http://w 15.org.6.org/release/2.au/article/255835/a-z_programming_lan 22.org/dev/peps/pep-0227/)(em inglês). «Python License» (http://www.0. Phillip J. Python Python 2.amk. Python Software Foundation. Consultado em 3 de dezembro de 2008 Software Foundation.python.6» (http://docs. d/releases/3. Referência da Biblioteca Resolution Order» (http://www.archive.0»(http://docs. «History of the software»(http://docs. Consultado em 12 de junho de 20. Python Software 2007 Foundation.python.ca/pyth 24.html).python.html). Guido van Rossum (Maio de 1996). Python Software Foundation.python. «Keywords» (http://docs. «What's New In Python 3. Consultado em 12 de setembro Everybody» (http://www. Python Foundation. n.python.A Logging System»(http://www. Consultado em 12. «Make print a function»(http://www.org/reference/lexical_ on/writing/12-14) (em inglês). «Why was Python created in the first place?»(http://do 23.html)(em 14.ca/python/2.artima.or guages_python/?fp=4194304&fpid=1&pf=1)(em g/dev/peps/pep-0020/)(em inglês).or inglês).h de 2008 tml) (em inglês).org/doc/essays/cp4e.aspx)(em pythonP.org/whatsnew/2.4/whatsnew/node6. Consultado em 15 de janeiro de inglês). g/tutorial/classes.2. «PEP 20 . Michele Simionato. Python Software Foundation.or 28.com/tech junho de 2008 nology/pub/articles/piotrowski-pythoncore.org/dev/p tp://www. A.itnews.breaking-the-python-code.com.«Computer Programming for de fevereiro de 2008. Consultado em 17 de agosto Desenvolvimento.html#random-remarks).0 to 2008 be backwards incompatible»(http://www. Consultado em 22 de março de 2007 25.org/dev/peps/pep-3105/)(em inglês). Python Software em 22 de março de 2007 Foundation 7.0 Release»(http://www.«The Python 2.«What's New Consultado em 11 de junho de 2008 in Python 2. Python Software 29.org/relea 26. Consultado em 11 de junho de 2008 11. web.or cs.com/intv/ u/News/69326. Consultado em 22 de março de 2007 2011 10. a enciclopédia livre dezembro de 2016. 32.ht em 11 de junho de 2008 ml) (em inglês). Python the-first-place) (em inglês). far)» (http://mail.org/wiki/Python 13/14 . Manual de Referência do abril de 2007 Python (em inglês).python. Python Software Foundation.5/lib/node951. Cópia arquivada em 29 de p://docs. Guido van Rossum.python. «PEP 318 .python.python. «PEP 282 .com. Consultado Documentation (em inglês).amk. «The Making of Python»(http://www. A. Rapid Web Development Environment for Python Python Software Foundation.3 Method se/2.3/whatsnew/node5.org/dev/peps/pep-0318/)(em inglês). Python Software Foundation. «Classes — Random Remarks»(http://docs. «Python 3. Consultado em 11 de Python Software Foundation.Núcleo de inglês).python. Python Software org/doc/essays/foreword/)(em inglês).M. «2 PEPs 252 and 253: Type and Class Changes»(htt 6 de maio de 2012. Sarah Stokely (1 de fevereiro de 2008).html)(em inglês). Oracle. Artima Developer. Consultado em 11 de junho de 2008 junho de 2008 30.python. Consultado em 15 de janeiro de de 2008 2010 6. «EAFP vs LBYL (was Re: A little disappointed so w.python.org/downloa "Programming Python" (1st ed.«Python 3. «LJ #37: Python 1.html) 13.pyt 5.org/download/r Python (em inglês).oracle. Consultado em 22 de março de eleases/2. Przemyslaw Piotrowski (Julho de 2006). Consultado em 11 de junho de 2008 Consultado em 22 de março de 2007 21.org/re 9.«The A-Z of hon. Python .ht https://pt. Consultado em 11 de junho de 2008 Python Web Server Gateway Interface v1.html)(em inglês).compu em 3 de outubro de 2008 terworld.2. Python Software Foundation. Jeremy Hylton.Decorators for Functions and Methods»(ht Style Guide for C Code»(http://www.html)(em inglês). Consultado em 4 de janeiro de ml) (em inglês). inglês).python.a 4. Consultado em 11 de junho de 2008 g/dev/peps/pep-0282/)(em inglês). Naomi Hamilton (5 de agosto de 2008).python.archive. 18.4 Update»(http://www. Python Software Python Software Foundation.3/whatsnew/node9.python.org/release/2. Consultado em 29 de analysis.3/mro/) (em inglês). «5 PEP 318: Decorators for Functions and Methods» (em inglês).0/whatsnew/3. Kuchling (1 de outubro de 2008). Consultado (http://docs.0» (http://www. Consultado em 11 de junho de 2008 junho de 2008 31.python.)»(http://www.html) (em inglês). «Quotes about Python»(http://python. Georg Brandl. iTnews.python.«PEP 333 -- Foundation. Eby (7 de dezembro de 2003). 2017 Consultado em 3 de outubro de 2008 3. 9122422/http://mail.html) (em inglês).org/pipermail/python-list/2 Consultado em 11 de junho de 2008 003-May/205182. Consultado em 11 de Foundation.python.org/pipermail/python-list/200 Consultado em 22 de março de 2007 3-May/205182.0/) (em inglês).«What's New in lease/3.«Foreword for 19.org/web/2007092 s.«Build a g/release/2. Consultado Programming Languages: Python»(http://www. Kuchling and Moshe Zadka. eps/pep-0007/) (em inglês).pytho ww.0/)(em Software Foundation.python. Python Software Foundation. Computerworld. Consultado em 11 de Server Pages and Oracle»(http://www.

Shafer (17 de janeiro de 2003). Learning Python (http://shop. Python 36.html) .autod 38.linuxjournal.pt/) Python (http://www.wikipedia.org/docs/py -Development/Python-Slithers-into-Systems/)(em thon/index.php?title=Python&oldid=48138863" Categorias: Linguagens de programação orientadas a objetos Linguagens de programação baseadas em classes Linguagens de script Linguagens interpretadas Compiladores e interpretadores livres Python Software livre Linguagens de programação criadas em 1991 Esta página foi modificada pela última vez à(s) 20h40min de 28 de fevereiro de 2017. Nova Iorque: Apress.do) (em inglês). 706 páginas.eweek. James Henstridge (16 de maio de 2006).0 Não Adaptada (CC BY-SA 3. Este texto é disponibilizado nos termos da licença Creative Commons . a enciclopédia livre 33. ISBN 978-1-4493-3072-9 Lutz. de 2008 Bibliografia Pilgrim. Linux Journal. Robin Rowe (1 de julho de 2002).do) (em inglês). Sebastopol (Califórnia): O'Reilly.0).wikipedia.com/article/6011) mon/html/wwhelp.gimp. Streamlines Space Shuttle Mission Design»(http://ww Consultado em 18 de julho de 2008 w.org/index. 360 páginas.oreilly. eWEEK. Para mais detalhes.«Python Documentação do Maya(em inglês). ISBN 978-1-4493-5573-9 Lutz.«Industrial Light & esk.blender. ISBN 978-1-5905-9356-1 Pilgrim. Dive into Python (http://diveintopython. 300 páginas. https://pt. Introdução à Programação com Python.net) (em inglês). pode estar sujeito a condições adicionais. Mark (2013).org/python3/) (em inglês). 3 ed. (2012).python.com/product/9780596158118. Mark (2004). Taft (5 de março de 2005).com/product/06369200270 72. Allen B. consulte as condições de uso. Blender.python. Sebastopol (Califórnia): O'Reilly.com/us/maya/docs/Maya85/wwhelp/wwhimpl/com Magic» (http://www. Programming Python (http://shop. Consultado em 18 de julho file=Introduction_to_Maya_Python_API. 5 ed. ISBN 978-1-4493-4037-7 Ligações externas Website oficial (https://www.com/product/0636920025696.dmoz. Dive into Python 3 (http://www.htm?context=DeveloperResources& (em inglês).oreilly.diveinto.oreilly. Nilo Ney Coutinho (2010). Sebastopol (Califórnia): O'Reilly.org.Atribuição .Compartilha Igual 3. Python Cookbook (http://shop. 4 ed. Consultado em 11 de junho de tensions:Py/Scripts)(em inglês). Daniel G. 413 páginas.org/w/index. Autodesk.14/03/2017 Python – Wikipédia. Consultado em 11 de junho de 2008 inglês).org/about/success/usa/)(em inglês). Nova Iorque: Apress. Documentação do GIMP(em inglês). ISBN 978-0-596-15810-1 David Beazley e Brian K. Jones (2013). «Python Scripts» (http://wiki.«Python Slithers 37. «Introduction to Maya Python API»(http://www. 224 páginas.org/) (em inglês) Wiki da comunidade brasileira de usuários (http://www.org/Computers/Programming/Languages/Python/) no Open Directory Project Obtida de "https://pt. ISBN 978-85-7522-250-8 Downey. GIMP.html). 2 ed. 1600 páginas. Mark (2010). ISBN 978-1-4302-2415-0 Menezes.do) (em inglês). Consultado em 18 de julho de 2008 35. 2 ed.org/wiki/Python 14/14 . São Paulo: Novatec.«GIMP into Systems» (http://www. Sebastopol (Califórnia): O'Reilly.do) (em inglês).python. Mark (2009).php/Ex Software Foundation.com/c/a/Application Python Documentation»(http://www. 1632 páginas. Darryl K. Ideal para quem nunca teve contato com programação.oreilly. Consultado 2008 em 18 de julho de 2008 34. Think Python (http://shop.br/) Site da comunidade portuguesa de usuários (http://python.com/product/0636920028154.