Você está na página 1de 5

Python

Origem: Wikip�dia, a enciclop�dia livre.


Saltar para a navega��oSaltar para a pesquisa
Disambig grey.svg Nota: Para outros significados, veja Python (desambigua��o).
Python
Logo do Python
Paradigma Multiparadigma:
Orienta��o a objetos
Programa��o imperativa
Programa��o funcional
Surgido em 1991 (27�28 anos)[1]
�ltima vers�o 3.7.2 (24 de dezembro de 2018; h� 5 meses[2])
Criado por Guido van Rossum[1]
Estilo de tipagem: Din�mica, forte
Influenciada por ABC,[3] ALGOL 68, C[3], Haskell, Icon, Java, Lisp, Modula-3[3],
Perl, Smalltalk
Influenciou Boo, D, Falcon, Fantom, Groovy, JavaScript, Nimrod, Py, Ruby, Squirrel,
Swift
Principais implementa��es CPython, IronPython, Jython, PyPy
Extens�o do arquivo: .py, .pyc, .pyd, .pyo, .pyw, .pyz
P�gina oficial www.python.org
Python � uma linguagem de programa��o de alto n�vel,[4] interpretada, de script,
imperativa, orientada a objetos, funcional, 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 linguagem como um todo n�o �
formalmente especificada. O padr�o de facto � a implementa��o CPython.

A linguagem foi projetada com a filosofia de enfatizar a import�ncia do esfor�o do


programador sobre o esfor�o computacional. Prioriza a legibilidade do c�digo sobre
a velocidade ou expressividade. Combina uma sintaxe concisa e clara com os recursos
poderosos de sua biblioteca padr�o e por m�dulos e frameworks desenvolvidos por
terceiros.

Python � uma linguagem de prop�sito geral de alto n�vel, multiparadigma, suporta o


paradigma orientado a objetos, imperativo, funcional e procedural. Possui tipagem
din�mica e uma de suas principais caracter�sticas � permitir a f�cil leitura do
c�digo e exigir poucas linhas de c�digo se comparado ao mesmo programa em outras
linguagens. Devido �s suas caracter�sticas, ela � principalmente utilizada para
processamento de textos, dados cient�ficos e cria��o de CGIs para p�ginas din�micas
para a web. Foi considerada pelo p�blico a 3� linguagem "mais amada", de acordo com
uma pesquisa conduzida pelo site Stack Overflow em 2018,[5] e est� entre as 5
linguagens mais populares, de acordo com uma pesquisa conduzida pela RedMonk.[6]

O nome Python teve a sua origem no grupo humor�stico brit�nico Monty Python,[7]
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
2.13 Coment�rios
3 Plataformas dispon�veis
4 Implementa��es
5 Desenvolvimento
6 Licen�a
7 M�dulos e frameworks
7.1 Interfaces gr�ficas
8 Ambientes de desenvolvimento integrado
9 Aplica��es
10 Ver tamb�m
11 Refer�ncias
12 Bibliografia
13 Liga��es externas
Hist�ria

Guido van Rossum, S�o Francisco, Calif�rnia


O Python foi concebido no final de 1989[4][7] por Guido van Rossum no Instituto de
Pesquisa Nacional para Matem�tica e Ci�ncia da Computa��o (CWI), nos Pa�ses Baixos,
como um sucessor da ABC capaz de tratar exce��es e prover interface com o sistema
operacional Amoeba[8] atrav�s de scripts. Tamb�m da CWI, a linguagem ABC era mais
produtiva que C, ainda que com o custo do desempenho em tempo de execu��o. Mas ela
n�o possu�a funcionalidades importantes para a intera��o com o sistema operacional,
uma necessidade do grupo. Um dos focos primordiais de Python era aumentar a
produtividade do programador.[7]

Python foi feita com base na linguagem ABC, possui parte da sintaxe derivada do C,
compreens�o de listas, fun��es anonimas e fun��o map de Haskell. Os iteradores s�o
baseados na Icon, tratamentos de exce��o e m�dulos da Modula-3, express�es
regulares de Perl.

Em 1991, Guido publicou o c�digo (nomeado vers�o 0.9.0) no grupo de discuss�o


alt.sources.[1] Nessa vers�o j� estavam presentes classes com heran�a, tratamento
de exce��es, fun��es e os tipos de dado nativos list, dict, str, e assim por
diante. Tamb�m estava presente nessa vers�o um sistema de m�dulos emprestado do
Modula-3. O modelo de exce��es tamb�m lembrava muito o do Modula-3, com a adi��o da
op��o else clause.[8]Em 1994 foi formado o principal f�rum de discuss�o do Python,
comp.lang.python, um marco para o crescimento da base de usu�rios da linguagem.

A vers�o 1.0 foi lan�ada em janeiro de 1994. Novas funcionalidades inclu�am


ferramentas para programa��o funcional como lambda, map, filter e reduce. A �ltima
vers�o enquanto Guido estava na CWI foi o Python 1.2. Em 1995, ele continuou o
trabalho no CNRI em Reston, Estados Unidos, de onde lan�ou diversas vers�es. Na
vers�o 1.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, assim como uma forma de encapsulamento.[9]

Ainda na CNRI, Guido lan�ou a iniciativa Computer Programming for Everybody (CP4E;
literalmente, "Programa��o de Computadores para Todos"), que visava tornar a
programa��o mais acess�vel, um projeto financiado pela DARPA.[10] Atualmente o CP4E
encontra-se inativo.

Em 2000, o time de desenvolvimento da linguagem se mudou para a BeOpen a fim de


formar o time PythonLabs. A CNRI pediu que a vers�o 1.6 fosse lan�ada para marcar o
fim de desenvolvimento da linguagem naquele local. O �nico lan�amento na BeOpen foi
o Python 2.0, e ap�s o lan�amento o grupo de desenvolvedores da PythonLabs agrupou-
se na Digital Creations.

Python 2.0 implementou list comprehension, uma relevante funcionalidade de


linguagens funcionais como SETL e Haskell. A sintaxe da linguagem para essa
constru��o � bastante similar a de Haskell, exceto pela prefer�ncia do Haskell por
caracteres de pontua��o e da prefer�ncia do python por palavras reservadas
alfab�ticas. Essa vers�o 2.0 tamb�m introduziu um sistema coletor de lixo capaz de
identificar e tratar ciclos de refer�ncias.[11]

J� o 1.6 incluiu uma licen�a CNRI substancialmente mais longa que a licen�a CWI que
estavam usando nas vers�es anteriores. Entre outras mudan�as, essa licen�a inclu�a
uma cl�usula atestando que a licen�a era governada pelas leis da Virg�nia. A Free
Software Foundation alegou que isso era incompat�vel com a GNU GPL. Tanto BeOpen
quanto CNRI e FSF negociaram uma mudan�a na licen�a livre do Python que o tornaria
compat�vel com a GPL. Python 1.6.1 � id�ntico ao 1.6.0, exceto por pequenas
corre��es de falhas e uma licen�a nova, compat�vel com a GPL.[12]

Python 2.1 era parecido com as vers�es 1.6.1 e 2.0. Sua licen�a foi renomeada para
Python Software Foundation License. Todo c�digo, documenta��o e especifica��o desde
o lan�amento da vers�o alfa da 2.1 � propriedade da Python Software Foundation
(PSF), uma organiza��o sem fins lucrativos fundada em 2001, um modelo tal qual da
Apache Software Foundation.[12] O lan�amento incluiu a mudan�a na especifica��o
para suportar escopo aninhado, assim como outras linguagens com escopo est�tico.
[13] Esta funcionalidade estava desativada por padr�o, e somente foi requerida na
vers�o 2.2.

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. Isto tornou o modelo de
objetos do Python consistentemente orientado a objeto.[14] Tamb�m foi adicionado
generator, inspirado em Icon.[15]

O incremento da biblioteca padr�o e as escolhas sint�ticas foram fortemente


influenciadas por Java em alguns casos: o pacote logging[16] introduzido na vers�o
2.3,[17] o analisador sint�tico SAX, introduzido na vers�o 2.0 e a sintaxe de
decoradores que usa @,[18] adicionadas na vers�o 2.4.[19]

Em 1 de outubro de 2008 foi lan�ada a vers�o 2.6, j� visando a transi��o para a


vers�o 3.0 da linguagem. Entre outras modifica��es, foram inclu�das bibliotecas
para multiprocessamento, JSON e E/S, al�m de uma nova forma de formata��o de
cadeias de caracteres.[20]

Atualmente a linguagem � usada em diversas �reas, como servidores de aplica��o e


computa��o gr�fica. Est� dispon�vel como linguagem de script em aplica��es como
OpenOffice (Python UNO Bridge), Blender e pode ser utilizada em procedimentos
armazenados no sistema gerenciador de banco de dados PostgreSQL (PL/Python).

A terceira vers�o da linguagem foi lan�ada em dezembro de 2008,[21] chamada Python


3.0 ou Python 3000. Com noticiado desde antes de seu lan�amento,[22] houve quebra
de compatibilidade com a fam�lia 2.x para corrigir falhas que foram descobertas
neste padr�o, e para limpar os excessos das vers�es anteriores.[7] A primeira
vers�o alfa foi lan�ada em 31 de agosto de 2007, a segunda em 7 de dezembro do
mesmo ano.

Mudan�as da vers�o incluem a altera��o da palavra reservada print, que passa a ser
uma fun��o, tornando mais f�cil a utiliza��o de uma vers�o alternativa da rotina.
Em Python 2.6, isso j� est� dispon�vel ao adicionar o c�digo from __future__ import
print_function.[23] Tamb�m, a mudan�a para Unicode de todas as cadeias de
caracteres.[24]

Em 2012, foi criado o Raspberry Pi, cujo nome foi baseado na linguagem Python. Uma
das principais linguagens escolhidas � Python. Python influenciou v�rias
linguagens, algumas delas foram Boo e Cobra, que usa a indenta��o como defini��o de
bloco e Go, que se baseia nos princ�pios de desenvolvimento r�pido de Python.

Atualmente, Python � um dos componentes padr�o de v�rios sistemas operacionais,


entre eles est�o a maioria das distribui��es do Linux, AmigaOS 4, FreeBSD, NetBSD,
OpenBSD e OS X. A linguagem se tornou a padr�o no curso de ci�ncias da computa��o
do MIT em 2009

Filosofia
Python 3. The standard type hierarchy.png
Parte da cultura da linguagem gira ao redor de The Zen of Python, um poema que faz
parte do documento "PEP 20 (The Zen of Python)",[25] escrito pelo programador em
Python de longa data Tim Peters, descrevendo sumariamente a filosofia do Python.
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, else, elif); estrutura de
repeti��o (for, while), que itera por um container, capturando cada elemento em uma
vari�vel local dada; constru��o de classes (class); constru��o de sub-rotinas
(def); constru��o de escopo (with), como por exemplo para adquirir um recurso.

Tipos de dado
A tipagem de Python � forte, pois os valores e objetos t�m tipos bem definidos e
n�o sofrem corre��es como em C ou Perl. S�o disponibilizados diversos tipos de
dados nativos:

Tipo de dado Descri��o Exemplo da sintaxe


str, unicode Uma cadeia de caracteres imut�vel 'Wikipedia', u'Wikipedia'
list Lista heterog�nea mut�vel [4.0, 'string', True]
tuple Tupla imut�vel (4.0, 'string', True)
set, frozenset Conjunto n�o ordenado, n�o cont�m elementos duplicados
set([4.0, 'string', True])
frozenset([4.0, 'string', True])
dict conjunto associativo {'key1': 1.0, 'key2': False}
int N�mero de precis�o fixa, � transparentemente convertido para long caso n�o
caiba em um int. 42
2147483648L
float Ponto flutuante 3.1415927
complex N�mero complexo 3+2j
bool Booleano True ou False
!= Diferente Diferente
Python tamb�m permite a defini��o dos tipos de dados pr�prios, atrav�s de classes.
Inst�ncias s�o constru�das invocando a classe (FooClass()), e as classes s�o
inst�ncia da classe type, o que permite metaprograma��o e reflex�o. M�todos s�o
definidos como fun��es anexadas � classe, e a sintaxe inst�ncia.m�todo(argumento) �
um atalho para Classe.m�todo(inst�ncia, argumento). Os m�todos devem referenciar
explicitamente a refer�ncia para o objeto incluindo o par�metro self como o
primeiro argumento do m�todo.[26]

Antes da vers�o 3.0, Python possu�a dois tipos de classes: "old-style" e "new-
style". Classes old-style foram eliminadas no Python 3.0, e todas s�o new-style. Em
vers�es entre 2.2 e 3.0, ambos tipos de classes podiam ser usadas. A sintaxe de
ambos estilos � a mesma, a diferen�a acaba sendo de onde objeto da classe �
herdado, direta ou indiretamente (todas classes new-style herdam de object e s�o
instancias de type). As classes new-styles nada mais s�o que tipos definidos pelo
usu�rio.

Palavras reservadas
O Python 2.5.2 define as seguintes 31 palavras reservadas:[27]

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 ==, <, >=, entre outros s�o usados em
todos os tipos de dados, como n�meros, cadeias de texto, listas e mapeamentos.
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. � garantido que o processamento da
express�o l�gica ir� terminar t�o cedo o veredito seja claro, o princ�pio da
avalia��o m�nima. Usando a express�o anterior, se a < b � falso, c n�o � avaliado.

Quanto aos operadores l�gicos, at� Python 2.2 n�o havia o tipo de dado booleano. Em
todas as vers�es da linguagem os operadores l�gicos tratam "", 0, None, 0.0, [] e
{} como falso, enquanto o restante � tratado como verdadeiro de modo geral. Na
vers�o 2.2.1 as constantes True e False foram adicionadas (subclasses de 1 e 0
respectivamente). A compara��o bin�ria retorna uma das duas constantes acima.

Os operadores booleanos and e or tamb�m seguem a avalia��o m�nima. Por exemplo, y


== 0 or x/y > 100 nunca lan�ar� a exce��o de divis�o por zero.

Interpretador interativo
O interpretador interativo � uma caracter�stica diferencial da linguagem, porque h�
a possibilidade de testar o c�digo de um programa e receber o resultado em tempo
real, 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
>>>