b'\n_START_ARTICLE_\nPython\n_START_SECTION_\nHist\xc3\xb3ria\n_START_PARAGRAPH_\nO Python foi concebido no final de 1989 por Guido van Rossum no Instituto de Pesquisa Nacional para Matem\xc3\xa1tica e Ci\xc3\xaancia da Computa\xc3\xa7\xc3\xa3o (CWI), nos Pa\xc3\xadses Baixos, como um sucessor da ABC capaz de tratar exce\xc3\xa7\xc3\xb5es e prover interface com o sistema operacional Amoeba atrav\xc3\xa9s de scripts. Tamb\xc3\xa9m da CWI, a linguagem ABC era mais produtiva que C, ainda que com o custo do desempenho em tempo de execu\xc3\xa7\xc3\xa3o. Mas ela n\xc3\xa3o possu\xc3\xada funcionalidades importantes para a intera\xc3\xa7\xc3\xa3o com o sistema operacional, uma necessidade do grupo. Um dos focos primordiais de Python era aumentar a produtividade do programador._NEWLINE_Python foi feita com base na linguagem ABC, possui parte da sintaxe derivada do C, compreens\xc3\xa3o de listas, fun\xc3\xa7\xc3\xb5es anonimas e fun\xc3\xa7\xc3\xa3o map de Haskell. Os iteradores s\xc3\xa3o baseados na Icon, tratamentos de exce\xc3\xa7\xc3\xa3o e m\xc3\xb3dulos da Modula-3, express\xc3\xb5es regulares de Perl._NEWLINE_Em 1991, Guido publicou o c\xc3\xb3digo (nomeado vers\xc3\xa3o 0.9.0) no grupo de discuss\xc3\xa3o alt.sources. Nessa vers\xc3\xa3o j\xc3\xa1 estavam presentes classes com heran\xc3\xa7a, tratamento de exce\xc3\xa7\xc3\xb5es, fun\xc3\xa7\xc3\xb5es e os tipos de dado nativos list, dict, str, e assim por diante. Tamb\xc3\xa9m estava presente nessa vers\xc3\xa3o um sistema de m\xc3\xb3dulos emprestado do Modula-3. O modelo de exce\xc3\xa7\xc3\xb5es tamb\xc3\xa9m lembrava muito o do Modula-3, com a adi\xc3\xa7\xc3\xa3o da op\xc3\xa7\xc3\xa3o else clause.Em 1994 foi formado o principal f\xc3\xb3rum de discuss\xc3\xa3o do Python, comp.lang.python, um marco para o crescimento da base de usu\xc3\xa1rios da linguagem._NEWLINE_A vers\xc3\xa3o 1.0 foi lan\xc3\xa7ada em janeiro de 1994. Novas funcionalidades inclu\xc3\xadam ferramentas para programa\xc3\xa7\xc3\xa3o funcional como lambda, map, filter e reduce. A \xc3\xbaltima vers\xc3\xa3o 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\xc3\xa7ou diversas vers\xc3\xb5es. Na vers\xc3\xa3o 1.4 a linguagem ganhou par\xc3\xa2metros nomeados (a capacidade de passar par\xc3\xa2metro pelo nome e n\xc3\xa3o pela posi\xc3\xa7\xc3\xa3o na lista de par\xc3\xa2metros) e suporte nativo a n\xc3\xbameros complexos, assim como uma forma de encapsulamento._NEWLINE_Ainda na CNRI, Guido lan\xc3\xa7ou a iniciativa Computer Programming for Everybody (CP4E; literalmente, "Programa\xc3\xa7\xc3\xa3o de Computadores para Todos"), que visava tornar a programa\xc3\xa7\xc3\xa3o mais acess\xc3\xadvel, um projeto financiado pela DARPA. Atualmente o CP4E encontra-se inativo._NEWLINE_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\xc3\xa3o 1.6 fosse lan\xc3\xa7ada para marcar o fim de desenvolvimento da linguagem naquele local. O \xc3\xbanico lan\xc3\xa7amento na BeOpen foi o Python 2.0, e ap\xc3\xb3s o lan\xc3\xa7amento o grupo de desenvolvedores da PythonLabs agrupou-se na Digital Creations._NEWLINE_Python 2.0 implementou list comprehension, uma relevante funcionalidade de linguagens funcionais como SETL e Haskell. A sintaxe da linguagem para essa constru\xc3\xa7\xc3\xa3o \xc3\xa9 bastante similar a de Haskell, exceto pela prefer\xc3\xaancia do Haskell por caracteres de pontua\xc3\xa7\xc3\xa3o e da prefer\xc3\xaancia do python por palavras reservadas alfab\xc3\xa9ticas. Essa vers\xc3\xa3o 2.0 tamb\xc3\xa9m introduziu um sistema coletor de lixo capaz de identificar e tratar ciclos de refer\xc3\xaancias._NEWLINE_J\xc3\xa1 o 1.6 incluiu uma licen\xc3\xa7a CNRI substancialmente mais longa que a licen\xc3\xa7a CWI que estavam usando nas vers\xc3\xb5es anteriores. Entre outras mudan\xc3\xa7as, essa licen\xc3\xa7a inclu\xc3\xada uma cl\xc3\xa1usula atestando que a licen\xc3\xa7a era governada pelas leis da Virg\xc3\xadnia. A Free Software Foundation alegou que isso era incompat\xc3\xadvel com a GNU GPL. Tanto BeOpen quanto CNRI e FSF negociaram uma mudan\xc3\xa7a na licen\xc3\xa7a livre do Python que o tornaria compat\xc3\xadvel com a GPL. Python 1.6.1 \xc3\xa9 id\xc3\xaantico ao 1.6.0, exceto por pequenas corre\xc3\xa7\xc3\xb5es de falhas e uma licen\xc3\xa7a nova, compat\xc3\xadvel com a GPL._NEWLINE_Python 2.1 era parecido com as vers\xc3\xb5es 1.6.1 e 2.0. Sua licen\xc3\xa7a foi renomeada para Python Software Foundation License. Todo c\xc3\xb3digo, documenta\xc3\xa7\xc3\xa3o e especifica\xc3\xa7\xc3\xa3o desde o lan\xc3\xa7amento da vers\xc3\xa3o alfa da 2.1 \xc3\xa9 propriedade da Python Software Foundation (PSF), uma organiza\xc3\xa7\xc3\xa3o sem fins lucrativos fundada em 2001, um modelo tal qual da Apache Software Foundation. O lan\xc3\xa7amento incluiu a mudan\xc3\xa7a na especifica\xc3\xa7\xc3\xa3o para suportar escopo aninhado, assim como outras linguagens com escopo est\xc3\xa1tico. Esta funcionalidade estava desativada por padr\xc3\xa3o, e somente foi requerida na vers\xc3\xa3o 2.2._NEWLINE_Uma grande inova\xc3\xa7\xc3\xa3o da vers\xc3\xa3o 2.2 foi a unifica\xc3\xa7\xc3\xa3o 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. Tamb\xc3\xa9m foi adicionado generator, inspirado em Icon._NEWLINE_O incremento da biblioteca padr\xc3\xa3o e as escolhas sint\xc3\xa1ticas foram fortemente influenciadas por Java em alguns casos: o pacote logging introduzido na vers\xc3\xa3o 2.3, o analisador sint\xc3\xa1tico SAX, introduzido na vers\xc3\xa3o 2.0 e a sintaxe de decoradores que usa @, adicionadas na vers\xc3\xa3o 2.4._NEWLINE_Em 1 de outubro de 2008 foi lan\xc3\xa7ada a vers\xc3\xa3o 2.6, j\xc3\xa1 visando a transi\xc3\xa7\xc3\xa3o para a vers\xc3\xa3o 3.0 da linguagem. Entre outras modifica\xc3\xa7\xc3\xb5es, foram inclu\xc3\xaddas bibliotecas para multiprocessamento, JSON e E/S, al\xc3\xa9m de uma nova forma de formata\xc3\xa7\xc3\xa3o de cadeias de caracteres._NEWLINE_Atualmente a linguagem \xc3\xa9 usada em diversas \xc3\xa1reas, como servidores de aplica\xc3\xa7\xc3\xa3o e computa\xc3\xa7\xc3\xa3o gr\xc3\xa1fica. Est\xc3\xa1 dispon\xc3\xadvel como linguagem de script em aplica\xc3\xa7\xc3\xb5es como OpenOffice (Python UNO Bridge), Blender e pode ser utilizada em procedimentos armazenados no sistema gerenciador de banco de dados PostgreSQL (PL/Python)._NEWLINE_A terceira vers\xc3\xa3o da linguagem foi lan\xc3\xa7ada em dezembro de 2008, chamada Python 3.0 ou Python 3000. Com noticiado desde antes de seu lan\xc3\xa7amento, houve quebra de compatibilidade com a fam\xc3\xadlia 2.x para corrigir falhas que foram descobertas neste padr\xc3\xa3o, e para limpar os excessos das vers\xc3\xb5es anteriores. A primeira vers\xc3\xa3o alfa foi lan\xc3\xa7ada em 31 de agosto de 2007, a segunda em 7 de dezembro do mesmo ano._NEWLINE_Mudan\xc3\xa7as da vers\xc3\xa3o incluem a altera\xc3\xa7\xc3\xa3o da palavra reservada print, que passa a ser uma fun\xc3\xa7\xc3\xa3o, tornando mais f\xc3\xa1cil a utiliza\xc3\xa7\xc3\xa3o de uma vers\xc3\xa3o alternativa da rotina. Em Python 2.6, isso j\xc3\xa1 est\xc3\xa1 dispon\xc3\xadvel ao adicionar o c\xc3\xb3digo from __future__ import print_function. Tamb\xc3\xa9m, a mudan\xc3\xa7a para Unicode de todas as cadeias de caracteres._NEWLINE_Em 2012, foi criado o Raspberry Pi, cujo nome foi baseado na linguagem Python. Uma das principais linguagens escolhidas \xc3\xa9 Python. Python influenciou v\xc3\xa1rias linguagens, algumas delas foram Boo e Cobra, que usa a indenta\xc3\xa7\xc3\xa3o como defini\xc3\xa7\xc3\xa3o de bloco e Go, que se baseia nos princ\xc3\xadpios de desenvolvimento r\xc3\xa1pido de Python._NEWLINE_Atualmente, Python \xc3\xa9 um dos componentes padr\xc3\xa3o de v\xc3\xa1rios sistemas operacionais, entre eles est\xc3\xa3o a maioria das distribui\xc3\xa7\xc3\xb5es do Linux, AmigaOS 4, FreeBSD, NetBSD, OpenBSD e OS X. A linguagem se tornou a padr\xc3\xa3o no curso de ci\xc3\xaancias da computa\xc3\xa7\xc3\xa3o do MIT em 2009\n_START_SECTION_\nFilosofia\n_START_PARAGRAPH_\nParte 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)", escrito pelo programador em Python de longa data Tim Peters, descrevendo sumariamente a filosofia do Python. Pode-se v\xc3\xaa-lo atrav\xc3\xa9s de um easter egg do Python pelo comando:_NEWLINE_>>> import this\n_START_SECTION_\nConstru\xc3\xa7\xc3\xb5es\n_START_PARAGRAPH_\nConstru\xc3\xa7\xc3\xb5es de Python incluem: estrutura de sele\xc3\xa7\xc3\xa3o (if, else, elif); estrutura de repeti\xc3\xa7\xc3\xa3o (for, while), que itera por um container, capturando cada elemento em uma vari\xc3\xa1vel local dada; constru\xc3\xa7\xc3\xa3o de classes (class); constru\xc3\xa7\xc3\xa3o de sub-rotinas (def); constru\xc3\xa7\xc3\xa3o de escopo (with), como por exemplo para adquirir um recurso.\n_START_SECTION_\nPalavras reservadas\n_START_PARAGRAPH_\nO Python 3 define as seguintes palavras reservadas:_NEWLINE_False     None    True    and    asassert    break    class    continuedef    del    elif     else    exceptfinally    for    from    global    ifimport    in    is    lambda    notnonlocal    or    pass    raise    tryreturn    while    with    yield\n_START_SECTION_\nOperadores\n_START_PARAGRAPH_\nOs operadores b\xc3\xa1sicos de compara\xc3\xa7\xc3\xa3o como ==, <, >=, entre outros s\xc3\xa3o usados em todos os tipos de dados, como n\xc3\xbameros, cadeias de texto, listas e mapeamentos. Compara\xc3\xa7\xc3\xb5es em cadeia como a < b < c possuem o mesmo significado b\xc3\xa1sico que na matem\xc3\xa1tica: os termos s\xc3\xa3o comparadas na ordem. \xc3\x89 garantido que o processamento da express\xc3\xa3o l\xc3\xb3gica ir\xc3\xa1 terminar t\xc3\xa3o cedo o veredito seja claro, o princ\xc3\xadpio da avalia\xc3\xa7\xc3\xa3o m\xc3\xadnima. Usando a express\xc3\xa3o anterior, se a < b \xc3\xa9 falso, c n\xc3\xa3o \xc3\xa9 avaliado._NEWLINE_Quanto aos operadores l\xc3\xb3gicos, at\xc3\xa9 Python 2.2 n\xc3\xa3o havia o tipo de dado booleano. Em todas as vers\xc3\xb5es da linguagem os operadores l\xc3\xb3gicos tratam "", 0, None, 0.0, [] e {} como falso, enquanto o restante \xc3\xa9 tratado como verdadeiro de modo geral. Na vers\xc3\xa3o 2.2.1 as constantes True e False foram adicionadas (subclasses de 1 e 0 respectivamente). A compara\xc3\xa7\xc3\xa3o bin\xc3\xa1ria retorna uma das duas constantes acima._NEWLINE_Os operadores booleanos and e or tamb\xc3\xa9m seguem a avalia\xc3\xa7\xc3\xa3o m\xc3\xadnima. Por exemplo, y == 0 or x/y > 100 nunca lan\xc3\xa7ar\xc3\xa1 a exce\xc3\xa7\xc3\xa3o de divis\xc3\xa3o por zero.\n_START_SECTION_\nInterpretador interativo\n_START_PARAGRAPH_\nO interpretador interativo \xc3\xa9 uma caracter\xc3\xadstica diferencial da linguagem, porque h\xc3\xa1 a possibilidade de testar o c\xc3\xb3digo de um programa e receber o resultado em tempo real, antes de iniciar a compila\xc3\xa7\xc3\xa3o ou inclu\xc3\xad-las nos programas. Por exemplo:_NEWLINE_>>> 1+12>>>>>> a = 1+1>>> print a2>>> print(a)2>>>\n_START_SECTION_\nAn\xc3\xa1lise l\xc3\xa9xica\n_START_PARAGRAPH_\nNo segundo cap\xc3\xadtulo do Manual de Refer\xc3\xaancia da Linguagem Python \xc3\xa9 citado que a an\xc3\xa1lise l\xc3\xa9xica \xc3\xa9 uma an\xc3\xa1lise do interpretador em si, os programas s\xc3\xa3o lidos por um analisador sint\xc3\xa1tico que divide o c\xc3\xb3digo em tokens._NEWLINE_Todo programa \xc3\xa9 dividido em linhas l\xc3\xb3gicas que s\xc3\xa3o separadas pelo token NEWLINE ou NOVA LINHA, as linhas f\xc3\xadsicas s\xc3\xa3o trechos de c\xc3\xb3digo divididos pelo caractere ENTER. Linhas l\xc3\xb3gicas n\xc3\xa3o podem ultrapassar linhas f\xc3\xadsicas com exce\xc3\xa7\xc3\xa3o de jun\xc3\xa7\xc3\xa3o de linhas, por exemplo:_NEWLINE_if resultado > 2 and \\_NEWLINE_    1 <= 5  and \\_NEWLINE_    2 < 5:_NEWLINE_        print (\'Resultado: %f\' % d)_NEWLINE_ou_NEWLINE_MESES_DO_ANO = [\'janeiro\', \'fevereiro\', \'mar\xc3\xa7o\',_NEWLINE_                \'abril\',   \'maio\',      \'junho\',_NEWLINE_                \'julho\',   \'agosto\',    \'setembro\',_NEWLINE_                \'outubro\', \'novembro\',  \'dezembro\']_NEWLINE_Para a delimita\xc3\xa7\xc3\xa3o de blocos de c\xc3\xb3digos, os delimitadores s\xc3\xa3o colocados em uma pilha e diferenciados por sua indenta\xc3\xa7\xc3\xa3o, iniciando a pilha com valor 0 (zero) e colocando valores maiores que os anteriores na pilha. Para cada come\xc3\xa7o de linha, o n\xc3\xadvel de indenta\xc3\xa7\xc3\xa3o \xc3\xa9 comparado com o valor do topo da pilha. Se o n\xc3\xbamero da linha for igual ao topo da pilha, a pilha n\xc3\xa3o \xc3\xa9 alterada. Se o valor for maior, a pilha recebe o n\xc3\xadvel de indenta\xc3\xa7\xc3\xa3o da linha e o nome INDENT (empilhamento). Se o n\xc3\xadvel de indenta\xc3\xa7\xc3\xa3o for menor, ent\xc3\xa3o \xc3\xa9 desempilhado at\xc3\xa9 chegar a um n\xc3\xadvel de indenta\xc3\xa7\xc3\xa3o recebendo o nome DEDENT (desempilhamento). Se n\xc3\xa3o encontrar nenhum valor, \xc3\xa9 gerado um erro de indenta\xc3\xa7\xc3\xa3o._NEWLINE_Abaixo um exemplo de permuta\xc3\xa7\xc3\xa3o, retirado do cap\xc3\xadtulo 2.1 sobre Estrutura de linhas na An\xc3\xa1lise l\xc3\xa9xica do Manual de Refer\xc3\xaancia da linguagem (Language Reference Manual):_NEWLINE_         def perm(l):                   NOVA LINHA_NEWLINE_INDENT        if len(l) <= 1:           NOVA LINHA_NEWLINE_INDENT           return[1]              NOVA LINHA_NEWLINE_DEDENT        r = [ ]                   NOVA LINHA_NEWLINE_              for i in range(len(l)):   NOVA LINHA_NEWLINE_INDENT            s = l[:i] + l[i+1:]   NOVA LINHA_NEWLINE_                  p = perm(s)           NOVA LINHA_NEWLINE_DEDENT        for x in p:               NOVA LINHA_NEWLINE_INDENT            r.append(l[i:i+1]+x)  NOVA LINHA_NEWLINE_DEDENT        return r\n_START_SECTION_\nOrienta\xc3\xa7\xc3\xa3o a objetos\n_START_PARAGRAPH_\nPython suporta a maioria das t\xc3\xa9cnicas da programa\xc3\xa7\xc3\xa3o orientada a objeto. Qualquer objeto pode ser usado para qualquer tipo, e o c\xc3\xb3digo funcionar\xc3\xa1 enquanto haja m\xc3\xa9todos e atributos adequados. O conceito de objeto na linguagem \xc3\xa9 bastante abrangente: classes, fun\xc3\xa7\xc3\xb5es, n\xc3\xbameros e m\xc3\xb3dulos s\xc3\xa3o todos considerados objetos. Tamb\xc3\xa9m h\xc3\xa1 suporte para metaclasses, polimorfismo, e heran\xc3\xa7a (inclusive heran\xc3\xa7a m\xc3\xbaltipla). H\xc3\xa1 um suporte limitado para vari\xc3\xa1veis privadas._NEWLINE_Na vers\xc3\xa3o 2.2 de Python foi introduzido um novo estilo de classes em que objetos e tipos foram unificados, permitindo a especializa\xc3\xa7\xc3\xa3o de tipos. J\xc3\xa1 a partir da vers\xc3\xa3o 2.3 foi introduzido um novo m\xc3\xa9todo de resolu\xc3\xa7\xc3\xa3o de ambiguidades para heran\xc3\xa7as m\xc3\xbaltiplas._NEWLINE_Uma classe \xc3\xa9 definida com class nome:, e o c\xc3\xb3digo seguinte \xc3\xa9 a composi\xc3\xa7\xc3\xa3o dos atributos. Todos os m\xc3\xa9todos da classe recebem uma refer\xc3\xaancia a uma inst\xc3\xa2ncia da pr\xc3\xb3pria classe como seu primeiro argumento, e a conven\xc3\xa7\xc3\xa3o \xc3\xa9 que se chame este argumento self. Assim os m\xc3\xa9todos s\xc3\xa3o chamados objeto.m\xc3\xa9todo(argumento1, argumento2, ...) e s\xc3\xa3o definidos iguais a uma fun\xc3\xa7\xc3\xa3o, como m\xc3\xa9todo(self, argumento1, argumento2, ...). Veja que o par\xc3\xa2metro self conter\xc3\xa1 uma refer\xc3\xaancia para a inst\xc3\xa2ncia da classe definida em objeto quando for efetuada esta chamada. Os atributos da classe podem ser acessados em qualquer lugar da classe, e os atributos de inst\xc3\xa2ncia (ou vari\xc3\xa1vel de inst\xc3\xa2ncia) devem ser declarados dentro dos m\xc3\xa9todos utilizando a refer\xc3\xaancia \xc3\xa0 inst\xc3\xa2ncia atual (self) (ver c\xc3\xb3digo contextualizado em anexo)._NEWLINE_Em Python n\xc3\xa3o existe prote\xc3\xa7\xc3\xa3o dos membros duma classe ou inst\xc3\xa2ncia pelo interpretador, o chamado encapsulamento. Convenciona-se que atributos com o nome come\xc3\xa7ando com um _ s\xc3\xa3o de uso privado da classe, mas n\xc3\xa3o h\xc3\xa1 um policiamento do interpretador contra acesso a estes atributos. Uma exce\xc3\xa7\xc3\xa3o s\xc3\xa3o nomes come\xc3\xa7ando com __, no caso em que o interpretador modifica o nome do atributo (ver c\xc3\xb3digo contextualizado em anexo)._NEWLINE_Python permite polimorfismo, que condiz com a reutiliza\xc3\xa7\xc3\xa3o de c\xc3\xb3digo. \xc3\x89 fato que fun\xc3\xa7\xc3\xb5es semelhantes em v\xc3\xa1rias partes do software sejam utilizadas v\xc3\xa1rias vezes, ent\xc3\xa3o definimos esta fun\xc3\xa7\xc3\xa3o como uma biblioteca e todas as outras fun\xc3\xa7\xc3\xb5es que precisarem desta a chamam sem a necessidade de reescrev\xc3\xaa-la (ver c\xc3\xb3digo contextualizado em anexo)._NEWLINE_Python n\xc3\xa3o possui overloading; n\xc3\xa3o \xc3\xa9 poss\xc3\xadvel criar duas fun\xc3\xa7\xc3\xb5es com o mesmo nome, pois elas s\xc3\xa3o consideradas atributos da classe. Caso o nome da fun\xc3\xa7\xc3\xa3o se repita em outra assinatura, o interpretador considera esta \xc3\xbaltima como override e sobrescreve a fun\xc3\xa7\xc3\xa3o anterior. Algumas opera\xc3\xa7\xc3\xb5es entre diferentes tipos s\xc3\xa3o realizadas atrav\xc3\xa9s de coer\xc3\xa7\xc3\xa3o (ex.: 3.2 + 3)._NEWLINE_\xc3\x89 poss\xc3\xadvel encapsular abstra\xc3\xa7\xc3\xb5es em m\xc3\xb3dulos e pacotes. Quando um arquivo \xc3\xa9 criado com a extens\xc3\xa3o .py, ele automaticamente define um m\xc3\xb3dulo. Um diret\xc3\xb3rio com v\xc3\xa1rios m\xc3\xb3dulos \xc3\xa9 chamado de pacote e deve conter um modulo chamado __init__, para defini-lo como principal. Estas diferencia\xc3\xa7\xc3\xb5es ocorrem apenas no sistema de arquivos. Os objetos criados s\xc3\xa3o sempre m\xc3\xb3dulos. Caso o c\xc3\xb3digo n\xc3\xa3o defina qual dos m\xc3\xb3dulos ser\xc3\xa1 importado, o padr\xc3\xa3o \xc3\xa9 o __init__.\n_START_SECTION_\nPrograma\xc3\xa7\xc3\xa3o funcional\n_START_PARAGRAPH_\nUma das constru\xc3\xa7\xc3\xb5es funcionais de Python \xc3\xa9 compreens\xc3\xa3o de listas, uma forma de construir listas. Por exemplo, pode-se usar a t\xc3\xa9cnica para calcular as cinco primeiras pot\xc3\xaancias de dois. O algoritmo quicksort tamb\xc3\xa9m pode ser expressado usando a mesma t\xc3\xa9cnica (ver c\xc3\xb3digos contextualizados para ambos os casos em anexo)._NEWLINE_Em Python, fun\xc3\xa7\xc3\xb5es s\xc3\xa3o objetos de primeira classe que podem ser criados e armazenados dinamicamente. O suporte a fun\xc3\xa7\xc3\xb5es an\xc3\xb4nimas est\xc3\xa1 na constru\xc3\xa7\xc3\xa3o lambda (c\xc3\xa1lculo Lambda). N\xc3\xa3o h\xc3\xa1 disponibilidade de fun\xc3\xa7\xc3\xb5es an\xc3\xb4nimas de fato, pois os lambdas cont\xc3\xaam somente express\xc3\xb5es e n\xc3\xa3o blocos de c\xc3\xb3digo._NEWLINE_Python tamb\xc3\xa9m suporta clausuras l\xc3\xa9xicas desde a vers\xc3\xa3o 2.2 (ver c\xc3\xb3digos contextualizados para ambos os casos em anexo). J\xc3\xa1 geradores foram introduzidos na vers\xc3\xa3o 2.2 e finalizados na vers\xc3\xa3o 2.3, e representam o mecanismo de Python para a avalia\xc3\xa7\xc3\xa3o pregui\xc3\xa7osa de fun\xc3\xa7\xc3\xb5es (ver c\xc3\xb3digos contextualizados para ambos os casos em anexo).\n_START_SECTION_\nBiblioteca padr\xc3\xa3o\n_START_PARAGRAPH_\nPython possui uma grande biblioteca padr\xc3\xa3o, geralmente citada como um dos maiores trunfos da linguagem, fornecendo ferramentas para diversas tarefas. Por conta da grande variedade de ferramentas fornecida pela biblioteca padr\xc3\xa3o, combinada com a habilidade de usar linguagens de n\xc3\xadvel mais baixo como C e C++, Python pode ser poderosa para conectar componentes diversos de software._NEWLINE_A biblioteca padr\xc3\xa3o conta com facilidades para escrever aplica\xc3\xa7\xc3\xb5es para a Internet, contando com diversos formatos e protocolos como MIME e HTTP. Tamb\xc3\xa9m h\xc3\xa1 m\xc3\xb3dulos para criar interfaces gr\xc3\xa1ficas, conectar em bancos de dados relacionais e manipular express\xc3\xb5es regulares._NEWLINE_Algumas partes da biblioteca s\xc3\xa3o cobertas por especifica\xc3\xa7\xc3\xb5es (por exemplo, a implementa\xc3\xa7\xc3\xa3o WSGI da wsgiref segue o PEP 333), mas a maioria dos m\xc3\xb3dulos n\xc3\xa3o segue.\n_START_SECTION_\nInteroperabilidade\n_START_PARAGRAPH_\nUm outro ponto forte da linguagem \xc3\xa9 sua capacidade de interoperar com v\xc3\xa1rias outras linguagens, principalmente c\xc3\xb3digo nativo. A documenta\xc3\xa7\xc3\xa3o da linguagem inclui exemplos de como usar a Python C-API para escrever fun\xc3\xa7\xc3\xb5es em C que podem ser chamadas diretamente de c\xc3\xb3digo Python - mas atualmente esse sequer \xc3\xa9 o modo mais indicado de interopera\xc3\xa7\xc3\xa3o, havendo alternativas tais como Cython, Swig ou cffi. A biblioteca Boost do C++ inclui uma biblioteca para permitir a interoperabilidade entre as duas linguagens, e pacotes cient\xc3\xadficos fazem uso de bibliotecas de alta performance num\xc3\xa9rica escritos em Fortran e mantidos h\xc3\xa1 d\xc3\xa9cadas.\n_START_SECTION_\nComent\xc3\xa1rios\n_START_PARAGRAPH_\nPython fornece duas alternativas para documentar o c\xc3\xb3digo. A primeira \xc3\xa9 o uso de coment\xc3\xa1rios para indicar o que certo c\xc3\xb3digo faz. Coment\xc3\xa1rios come\xc3\xa7am com # e s\xc3\xa3o terminados pela quebra da linha. N\xc3\xa3o h\xc3\xa1 suporte para coment\xc3\xa1rios que se estendem por mais de uma linha; cada linha consecutiva de coment\xc3\xa1rio deve indicar #. A segunda alternativa \xc3\xa9 o uso de cadeias de caractere, literais de texto inseridos no c\xc3\xb3digo sem atribui\xc3\xa7\xc3\xa3o. Cadeias de caracteres em Python s\xc3\xa3o delimitadas por " ou \' para \xc3\xbanica linha e por """ ou \'\'\' para m\xc3\xbaltiplas linhas. Entretanto, \xc3\xa9 conven\xc3\xa7\xc3\xa3o usar o m\xc3\xa9todos de m\xc3\xbaltiplas linhas em ambos os casos._NEWLINE_Diferente de coment\xc3\xa1rios, a cadeias de caracteres usadas como documenta\xc3\xa7\xc3\xa3o s\xc3\xa3o objetos Python e fazem parte do c\xc3\xb3digo interpretado. Isso significa que um programa pode acessar sua pr\xc3\xb3pria documenta\xc3\xa7\xc3\xa3o e manipular a informa\xc3\xa7\xc3\xa3o. H\xc3\xa1 ferramentas que extraem automaticamente essa documenta\xc3\xa7\xc3\xa3o para a gera\xc3\xa7\xc3\xa3o da documenta\xc3\xa7\xc3\xa3o de API a partir do c\xc3\xb3digo. Documenta\xc3\xa7\xc3\xa3o atrav\xc3\xa9s de cadeias de caracteres tamb\xc3\xa9m pode ser acessada a partir do interpretador atrav\xc3\xa9s da fun\xc3\xa7\xc3\xa3o help().\n_START_SECTION_\nPlataformas dispon\xc3\xadveis\n_START_PARAGRAPH_\nA linguagem e seu interpretador est\xc3\xa3o dispon\xc3\xadveis para as mais diversas plataformas, desde Unix (Linux, FreeBSD, Solaris, MacOS X, etc.), Windows, .NET, vers\xc3\xb5es antigas de MacOS at\xc3\xa9 consoles de jogos eletr\xc3\xb4nicos ou mesmo alguns celulares, como a s\xc3\xa9rie 60, N8xx(PyMaemo) da Nokia e palmtops._NEWLINE_Para algum sistema operacional n\xc3\xa3o suportado, basta que exista um compilador C dispon\xc3\xadvel e gerar o Python a partir do fonte. O c\xc3\xb3digo fonte \xc3\xa9 traduzido pelo interpretador para o formato bytecode, que \xc3\xa9 multiplataforma e pode ser executado e distribu\xc3\xaddo sem fonte original.\n_START_SECTION_\nImplementa\xc3\xa7\xc3\xb5es\n_START_PARAGRAPH_\nA implementa\xc3\xa7\xc3\xa3o original e mais conhecida do Python \xc3\xa9 o CPython, escrita em C e compat\xc3\xadvel com o padr\xc3\xa3o C89, sendo distribu\xc3\xadda com uma grande biblioteca padr\xc3\xa3o escrita em um misto de Python e C. Esta implementa\xc3\xa7\xc3\xa3o \xc3\xa9 suportada em diversas plataformas, incluindo Microsoft Windows e sistemas Unix-like modernos._NEWLINE_Stackless Python \xc3\xa9 uma varia\xc3\xa7\xc3\xa3o do CPython que implementa microthreads (permitindo multitarefa sem o uso de threads), sendo suportada em quase todas as plataformas que a implementa\xc3\xa7\xc3\xa3o original._NEWLINE_Existem tamb\xc3\xa9m implementa\xc3\xa7\xc3\xb5es para plataformas j\xc3\xa1 existentes: Jython para a Plataforma Java e IronPython para .NET._NEWLINE_Em 2005 a Nokia lan\xc3\xa7ou um interpretador Python para os telefones celulares S60, chamado PyS60. Essa vers\xc3\xa3o inclui v\xc3\xa1rios m\xc3\xb3dulos das implementa\xc3\xa7\xc3\xb5es tradicionais, mas tamb\xc3\xa9m alguns m\xc3\xb3dulos adicionais para a integra\xc3\xa7\xc3\xa3o com o sistema operacional Symbian. Uma implementa\xc3\xa7\xc3\xa3o para Palm pode ser encontrada no Pippy. J\xc3\xa1 o PyPy, \xc3\xa9 a linguagem Python totalmente escrita em Python._NEWLINE_Diversas implementa\xc3\xa7\xc3\xb5es, como CPython, pode funcionar como um interpretador de comandos em que o usu\xc3\xa1rio executa as instru\xc3\xa7\xc3\xb5es sequencialmente, recebendo o resultado automaticamente. A execu\xc3\xa7\xc3\xa3o compilada do c\xc3\xb3digo oferece um ganho substancial em velocidade, com o custo da perda da interatividade.\n_START_SECTION_\nDesenvolvimento\n_START_PARAGRAPH_\nO desenvolvimento de Python \xc3\xa9 conduzido amplamente atrav\xc3\xa9s do processo Python Enhancement Proposal ("PEP"), em portugu\xc3\xaas Proposta de Melhoria do Python. Os PEPs s\xc3\xa3o documentos de projeto padronizados que fornecem informa\xc3\xa7\xc3\xb5es gerais relacionadas ao Python, incluindo propostas, descri\xc3\xa7\xc3\xb5es, justificativas de projeto (design rationales) e explica\xc3\xa7\xc3\xb5es para caracter\xc3\xadsticas da linguagem. PEPs pendentes s\xc3\xa3o revisados e comentados por Van Rossum, o Benevolent Dictator for Life (l\xc3\xadder arquiteto da linguagem) do projeto Python. Desenvolvedores do CPython tamb\xc3\xa9m se comunicam atrav\xc3\xa9s de uma lista de discuss\xc3\xa3o, python-dev, que \xc3\xa9 o f\xc3\xb3rum principal para discuss\xc3\xa3o sobre o desenvolvimento da linguagem. Quest\xc3\xb5es espec\xc3\xadficas s\xc3\xa3o discutidas no gerenciador de erros Roundup mantido em python.org. O desenvolvimento acontece no auto-hospedado svn.python.org\n_START_SECTION_\nLicen\xc3\xa7a\n_START_PARAGRAPH_\nPython possui uma licen\xc3\xa7a livre aprovada pela OSI e compat\xc3\xadvel com a GPL, por\xc3\xa9m menos restritiva. Ela prev\xc3\xaa (entre outras coisas) que bin\xc3\xa1rios da linguagem sejam distribu\xc3\xaddos sem a necessidade de fornecer o c\xc3\xb3digo fonte junto.\n_START_SECTION_\nAplica\xc3\xa7\xc3\xb5es\n_START_PARAGRAPH_\nAlguns dos maiores projetos que utilizam Python s\xc3\xa3o o servidor de aplica\xc3\xa7\xc3\xa3o Zope, o compartilhador de arquivos Mnet, o s\xc3\xadtio YouTube e o cliente original do BitTorrent. Grandes organiza\xc3\xa7\xc3\xb5es que usam a linguagem incluem Google (parte dos crawlers), Yahoo! (para o s\xc3\xadtio de grupos de usu\xc3\xa1rios) e NASA. O sistema de gerenciamento de reservas da Air Canada tamb\xc3\xa9m usa Python em alguns de seus componentes. A linguagem tamb\xc3\xa9m tem bastante uso na ind\xc3\xbastria da seguran\xc3\xa7a da informa\xc3\xa7\xc3\xa3o._NEWLINE_A linguagem tem sido embarcada como linguagem de script em diversos softwares, como em programas de edi\xc3\xa7\xc3\xa3o tridimensional como Maya, Autodesk Softimage, TrueSpace e Blender. Programas de edi\xc3\xa7\xc3\xa3o de imagem tamb\xc3\xa9m a usam para scripts, como o GIMP. Para diversos sistema operacionais a linguagem j\xc3\xa1 \xc3\xa9 um componente padr\xc3\xa3o, estando dispon\xc3\xadvel em diversas distribui\xc3\xa7\xc3\xb5es Linux. O Red Hat Linux usa Python para instala\xc3\xa7\xc3\xa3o, configura\xc3\xa7\xc3\xa3o e gerenciamento de pacotes._NEWLINE_Outros exemplos incluem o Plone, sistema de gerenciamento de conte\xc3\xbado desenvolvido em Python e Zope e a Industrial Light & Magic, que produz filmes da s\xc3\xa9rie Star Wars usando extensivamente Python para a computa\xc3\xa7\xc3\xa3o gr\xc3\xa1fica nos processos de produ\xc3\xa7\xc3\xa3o dos filmes.'