Setembro de 2019

Volume 34 – Número 9

[O programador]

Uma Introdução ao Python

Por Ted Neward | Setembro de 2019

Ted NewardNos últimos anos, o Python passou a fazer parte da "corrente dominante" em termos de uso popular, classificado por algumas pesquisas e sondagens como a nova linguagem mais popular. Embora seja duvidoso que o Python chegue a dominar o mundo, como dizem por aí, ele parece ter um domínio relativamente forte sobre o mundo de ciência de dados e inteligência artificial/aprendizado de máquina e, por esse motivo, o Python é uma linguagem interessante para estudar.

Com a combinação da sintaxe relativamente simples e do modelo de programação dele, bem como os módulos extensíveis que o conectam ao SO subjacente, o Python justifica uma mudança oportuna e útil para um novo tópico nesta coluna. Nos próximos tópicos, explorarei a sintaxe, a semântica e algumas das bibliotecas mais interessantes do ecossistema Python e, depois... Quem sabe?

Comecemos pelo princípio

No entanto, antes de me aprofundar nessa exploração, é preciso deixar uma coisa clara: Como é o caso de quase todas as colunas que escrevo, jamais vou sugerir que o Python deva substituir seu código C# (ou Visual Basic) existente hoje. O Python é uma ferramenta útil para ter na manga, assim como muitas outras coisas o são e, se você se deparar com uma situação em que parece apropriado usá-lo, faça isso. Mas não há nada que eu possa imaginar que você possa fazer com o Python que também não possa ser feito em C#, basta usá-los de forma diferente.

Além disso, gostaria de esclarecer um equívoco bastante comum: Apesar da insistência da comunidade do Python em usar trocadilhos com cobras ou répteis para os vários pacotes e bibliotecas deles, a linguagem não foi, na verdade, nomeada com inspiração na maior serpente que habita várias selvas em todo o mundo. Na verdade, o apelo do Python deriva de outro Python famoso: Monty. Isso vem do Circo Voador de Monty Python, a clássica trupe humorística inglesa de algumas décadas atrás. Usar citações e exemplos de um dos filmes ou episódios em qualquer código de exemplo é o máximo na cultura do Python e bons Pythonistas nunca perderão a oportunidade de fazer uma brincadeira ou outra quando a chance surgir. O site inclusive insiste que seja assim.

Não diga que não foi avisado.

Introdução

A introdução ao Python é muito mais fácil do que pode parecer à primeira vista, por dois motivos básicos. Primeiro, uma versão do Python está disponível para instalação pronta para uso com o Instalador do Visual Studio. Essa é uma versão empacotada do Python e das ferramentas de gerenciamento de ambiente chamada Anaconda, e falarei sobre o que isso significa e no que implica em um segundo. O segundo motivo é que agora, graças ao WSL (Subsistema do Windows para Linux), o Python é apenas um comando simples de linha de comando de shell Bash, usando o gerenciador de pacotes de sua escolha. Por exemplo, se você tiver instalado o Ubuntu no ambiente WSL, o Python será facilmente obtido abrindo um prompt de shell Bash do Ubuntu e digitando "sudo apt-get install python3". Além disso, a partir de maio, se você estiver executando o Windows 10, o Python estará disponível na Windows Store. Confira bit.ly/2JMxC3A para obter detalhes.

É claro que várias outras opções também estão disponíveis se nenhuma das anteriores agradar você. O site do Python tem um instalador baseado no Windows disponível para aqueles que preferem que a instalação do Python venha diretamente da origem. Ou, para aqueles que realmente desejam obter a origem e nada diferente disso, o Python é (assim como a maioria das linguagens hoje em dia) um projeto de software livre hospedado no GitHub e pode ser criado do zero. Embora qualquer uma delas possa ter sido a abordagem preferida há uma década, o sucesso relativamente recente do agrupamento de gerenciadores de pacotes como uma parte essencial da linguagem (começando com Ruby e gems, migrando para o Node e o npm, sem mencionar Java e Maven, .NET, NuGet e muito mais) significa que uma instalação moderna do Python precisa ser acompanhada por uma ferramenta de gerenciamento de pacotes, que no universo principal do Python é chamada de "pip". Como o interesse no Python continuou crescendo, outros sistemas de implantação surgiram, incluindo o Anaconda supracitado e seu utilitário "Conda". Não há necessidade real a enfatizar ao decidir entre eles, pois ambos levam você ao mesmo lugar. Geralmente, se usar a instalação do Anaconda que vem com o Visual Studio, usará o Conda. Se escolher o instalador no site do Python, usará o pip.

O outro fator a ser considerado é que o Python vem em dois conjuntos, cada um com duas variantes principais. A primeira dessas divisões é que o Python está disponível nas versões de 64 bits e 32 bits. As diferenças nesse caso são muito óbvias. A segunda é que o Python está oficialmente fazendo uma transição bastante complicada, que é a mudança do Python 2 para o Python 3. Por motivos que não são nem um pouco importantes para nós, Guido von Rossum, criador do Python, decidiu que ele tinha algumas alterações significativas que precisava fazer na linguagem e aumentou oficialmente o número de versão quando as implementou. Era esperado que todos fizessem a transição rapidamente, mas... Isso não aconteceu. Ou melhor, ainda está acontecendo. Usarei o Python 3 pela duração desta série, já que todos os novos projetos do Python devem começar com o Python 3, mas você poderá encontrar um pacote ou biblioteca estranho que ainda exija o Python 2.

Após o Python ser instalado, é hora de testá-lo. Se você tiver optado por instalar o Anaconda, abra o item de menu Iniciar instalado com o texto "Prompt do Anaconda". (O Visual Studio 2019, na realidade, instala isso como "Prompt do Python".) Isso abre um prompt de comando que tem o ambiente definido para o Python Anaconda e parecerá um pouco estranho, pois ele terá algo como "(base)" na frente do prompt normal baseado em diretório ("C:\Users\Ted>" em meu computador). Isso ocorre porque o Anaconda está gerenciando "ambientes" diferentes para você, falarei mais sobre isso em uma coluna posterior. Por enquanto, basta digitar "python" para abrir o REPL (loop de leitura-avaliação-impressão) do Python, o ambiente interativo, que lhe fornecerá um prompt ">>>" depois de imprimir uma faixa de versão.

Neste momento, é hora de honrar os deuses da ciência da computação, oferecendo a saudação costumeira:

print("Hello, Python world")

Se você digitar isso no REPL, ele imprimirá imediatamente a saudação e fornecerá outro prompt ">>>". Se desejar, você poderá colocar isso em um arquivo (hello.py) e executá-lo do prompt do Anaconda ("python hello.py"). De qualquer uma das duas formas, você terá cumprido sua tarefa e agora poderá listar "Programador de Python" em seu currículo.

Se quiser que a mensagem seja capturada em uma variável (talvez para reutilização posterior), você a escreverá da seguinte forma:

message = "Hello again, "
message += "Python world"
print(message)

Observe que a variável local, message, não precisa ser declarada antes do primeiro uso e não há uma "palavra-chave declarativa" como "var" do JavaScript (ou ainda "let" ou "const"). Obviamente, o Python é compatível com cadeias de caracteres, bem como boolianos, valores numéricos, listas, tuplas, conjuntos (listas que não permitem duplicação) e dicionários (listas de tuplas ou pares chave-valor, se você preferir) como tipos internos. (Você verá em futuras colunas como criar tipos de objetos personalizados e explorará o que cada um desses tipos primitivos significa mais detalhadamente conforme avançarmos.) As variáveis são inteiramente sem tipo, o que significa que qualquer tipo de valor pode ser atribuído à sua variável local a qualquer momento, da seguinte forma:

# By the way, this is a comment
message = "Hello again, "
message += "Python world"
print(message)
message = 5
print(message)

No entanto, isso também traz um ponto crítico a ser observado: Sempre que uma variável é introduzida pela primeira vez, ela deve ter um valor atribuído ou o Python acreditará que você está tentando referenciar uma variável definida anteriormente. No entanto, esse é um pequeno preço a ser pago, considerando que você sempre pode atribuir zero ou cadeias de caracteres vazias ou o que parecer razoável como um valor padrão.

Última observação rápida: Como a primeira linha do exemplo implica, o símbolo de hash (mais adequadamente conhecido como "jogo da velha" para aqueles que se preocupam com essas coisas) é o caractere de comentário de fim de linha no Python. No entanto, ao contrário de muitas outras linguagens, o Python não tem um símbolo de comentário de várias linhas, o que significa que transformar grandes seções de código em comentário é um pouco menos simples. No entanto, isso está inteiramente alinhado com o mantra que move o Python: "Há apenas uma maneira de fazer". Neste caso, há apenas uma maneira de comentar.

Como executar o Python

É possível executar este código de várias maneiras.

Primeiro, em uma linha de comando do Windows, supondo que Python esteja em PATH, os scripts podem ser executados simplesmente passando o nome do arquivo do Python para o interpretador, como "Python.hello.py". É provável que esse seja o meio para executar aplicativos Python para pelo menos metade dos aplicativos Python que você escreve, especialmente se você usar a ferramenta para criar grafos ou executar servidores Web.

No entanto, uma variação interessante desse tema válida apenas para o Windows é que, se você usar os instaladores baseados no Windows para colocar o Python em seu computador (em vez de criá-lo da origem), o Python se registrará no Registro do Windows e reivindicará a extensão de arquivo ".py". Além disso, se ".PY" for acrescentada à variável de ambiente "PATHEXT" em um prompt de comando do Windows, você terá permissão para executar scripts do Python como se eles fossem executáveis diretamente (porque eles serão – essa variável de ambiente contém as extensões de todos os arquivos que devem ser executáveis diretamente, como COM, EXE, BAT, CMD e outros). Observe que esse comportamento em particular é totalmente específico para o Windows e não restrito de modo nenhum ao Python. Qualquer extensão de arquivo pode ser registrada na variável de ambiente PATHEXT e ser "executável diretamente", desde que o registro da extensão do aplicativo para o arquivo esteja configurado no Registro.

No entanto, em um sistema Unix, você sempre pode configurar uma linha "she-bang" na parte superior do script. Para aqueles que não conhecem esse aspecto do comportamento do Unix, quando um script é "executado diretamente" (por exemplo, digitando "hello.py" na linha de comando), o Unix examina a primeira linha do script e, se ele lê algo como "#!/usr/bin/env python3", o sistema operacional assume que se trata de uma linha de comando a ser executada para executar esse script específico.

Conclusão

Esse é, obviamente, apenas o primeiro de vários artigos sobre o Python, portanto, há mais alguns tópicos a serem abordados antes de você realmente compreender o Python e saber como usá-lo. Na próxima parte, abordarei os constructos de controle de fluxo do Python, que também farão com que eu me depare com a próxima faceta mais interessante do Python, além da que já vimos: espaço em branco significativo. Boa codificação.


Ted Newardé consultor, palestrante e mentor de politecnologia de Seattle. Ele já escreveu uma enormidade de artigos, é autor e coautor de dezenas de livros e faz palestras no mundo inteiro. Entre em contato com ele em ted@tedneward.com ou leia seu blog em blogs.tedneward.com.

Agradecemos ao seguinte especialista técnico pela revisão deste artigo: Harry Pierson


Discuta esse artigo no fórum do MSDN Magazine