Disclaimer
Este material não retrata a instalação da linguagem. É um guia sobre a linguagem e características que a moldam. Eu espero que para os conteúdos seguintes você já tenha feito a instalação e montado o ambiente da linguagem no seu sistema operacional.
Para a instalação deixarei os links abaixo:
- https://python.org.br/instalacao-windows/
- https://python.org.br/instalacao-linux/
- https://python.org.br/instalacao-mac/
Todos os tópicos apresentados nesta introdução serão revisitados com maior aprofundamento a medida que os conteúdos forem apresentados. Caso não entenda algum tópico, não se desespere! Você não é obrigado a saber tudo sobre qualquer coisa. Procure saber o termo ou o tópico específico e, após entender, volte a ler esse material, pois um conteúdo se liga a outro e assim por diante.
Dito isso, seguimos com o material.
Introdução
Houveram inúmeras mudanças na computação do último século até hoje. As máquinas ficaram mais poderosas, A complexidade de software aumentou e novos desafios foram surgindo. Para tal, não seria necessário em todos os casos você usar uma linguagem performática e sintaticamente complexa como C ou ASM, a galera só queria um javascript da vida que suprisse as necessidades do software sem sacrificar o desenvolvedor. Com esses requerimentos, assim nasceu Python!
Python é uma linguagem de script (O que é uma linguagem de script?) de alto nível, multiparadigma, interpretada e dinamicamente tipada cuja filosofia foca em simplicidade e legibilidade do código. Ela é aquela linguagem que faz tudo parecer fácil e te humilha lembrando daquele seu programa em C que você gastou 3 noites em claro e usou 320 linhas (talvez eu tenha levado pro pessoal) para fazer. Brincadeiras à parte, Python é extremamente poderosa nas áreas que ela tange, que são principalmente computação científica e Ciência de Dados. A linguagem tem a premissa de “priorizar” o desenvolvedor em troca da performance do software e de fato, ser uma linguagem de alto nível tem os seus custos, não dá pra ser perfeita né. Não existe almoço grátis no mundo da computação.
Sintaxe
Como foi dito anteriormente, um dos pontos fortes da linguagem é a sua sintaxe clara e concisa. Isso garante maior legibilidade e compreensão de código até para quem não sabe programar em Python, mas conhece alguma outra linguagem.
Uma característica marcante da sintaxe de Python é o uso de indentação para marcar blocos de código. A indentação é usada para indicar a hierarquia do código, em vez de usar chaves ou palavras-chave como outras linguagens, ou seja, os escopos são delimitados por “Tabs” ou espaços no seu código. Isso torna o código mais legível, pois ajuda a identificar rapidamente quais linhas de código estão dentro de quais blocos, mas também permite maior chance de quebrar o programa ao esquecer a indentação de uma função específica.
Para as boas práticas de código em Python existe um conjunto de verdades chamado Zen of Python, que nos garante que certas regras sejam seguidas para que mantenhamos nosso sistema coeso, afinal, a vida não é um morango para você ignorar as regras.
As verdades do Zen of Python são:
- Beautiful is better than ugly. (Bonito é melhor que feio)
- Explicit is better than implicit. (Explícito é melhor que implícito)
- Simple is better than complex. (Simples é melhor que complexo)
- Complex is better than complicated. (Complexo é melhor que complicado)
- Flat is better than nested. (Plano é melhor que aninhado)
- Sparse is better than dense. (Esparso/Espalhado é melhor que denso)
- Readability counts. (Legibilidade conta)
- Special cases aren't special enough to break the rules. Although practicality beats purity. (Casos especiais não são especiais o suficiente para quebrar as regras. Ainda que praticidade ganhe da pureza)
- Errors should never pass silently. Unless explicitly silenced. (Erros nunca devem passar silenciosamente. A menos que sejam silenciados explicitamente)
- In the face of ambiguity, refuse the temptation to guess. (Diante da ambiguidade, recuse a tentação de adivinhar)
- There should be one – and preferably only one – obvious way to do it. Although that way may not be obvious at first unless you're Dutch. (Deve ter um – e preferencialmente só um – jeito óbvio de fazer isso. Embora esse jeito não pareca óbvio de cara a menos que você seja holandês)
- Now is better than never. Although never is often better than right now. (Agora é melhor que nunca. Embora nunca seja frequentemente melhor que o agora)
- If the implementation is hard to explain, it's a bad idea. (Se a implementação é difícil de explicar, então é uma má ideia)
- If the implementation is easy to explain, it may be a good idea. (Se a implementação é fácil de explicar, então talvez seja uma boa ideia)
- Namespaces are one honking great idea – let's do more of those! (Namespaces são uma ótima ideia – vamos ter mais desses!)
Não se preocupe em gravar essas verdades. Tudo tem seu tempo.
Execução da Linguagem
Python é uma linguagem interpretada, o que significa que não é necessário compilar o código antes de executá-lo. Em vez disso, um programa Python é interpretado linha por linha pelo interpretador da linguagem, que é um programa que lê o código e executa as instruções presentes.
Ter um programa interpretado oferece algumas vantagens, como a facilidade de depuração e a portabilidade do código. Como o código é interpretado em tempo de execução, é possível parar o programa em qualquer momento e examinar o estado do programa para identificar erros. Além disso, os pacotes da linguagens, incluindo o interpretador, são geralmente pré-instalados em sistemas operacionais modernos, como algumas distribuições do Linux, o que significa que o código Python pode ser executado em diferentes plataformas sem a necessidade de recompilação.
No entanto, a interpretação também pode ter algumas desvantagens em relação à performance do programa. Como o interpretador precisa ler o código linha por linha e executar as instruções correspondentes, a execução do código pode ser mais lenta do que a execução de código compilado em outras linguagens. Além disso, a interpretação pode resultar em uso de mais recursos do sistema, visto que a interpretação “exclui” diversos processos de otimização que a compilação normalmente faz e resume outros em passos menores.
Primeiros passos
Dadas as boas-vindas, vamos escrever um programa que printa hello world!
no terminal. Após instalar a linguagem, provavalmente você viu sobre o prompt interpretador do terminal. Se sim, pode pular essa parte e ir direto para o código.
Ao digitar python3
, python
ou até py
e pressionar a tecla enter você pode acessar o interpretador da linguagem no terminal, que ira interpretar seus scripts e mostrar seus resultados em seguida. Lá, você pode testar funções, listas de comandos e afins.
Com o prompt aberto, você verá a escrita >>>
no início da linha com algo similar a isso:
Agora, digite o comando abaixo e, em seguida, aperte enter:
>>> print("hello world!")
Pronto! Você escreveu um script em Python que mostra a mensagem hello world!
no terminal. Existe uma infinidade de possibilidades no universo de Python e esse foi só o pontapé inicial para algo grandioso. Caso sinta dificuldade para assimilar os construtos ou as características da linguagem, não se desanime! O começo não é fácil, mas não se deixe levar pelo medo, afinal, só vive o propósito quem suporta o processo.
Top comments (2)
Muito bom o conteúdo.
Fiquei até curioso...
Tem uma coisa que eu não entendo muito bem é: esse interpretador é feito em qual linguagem e com o Python faz para ter acesso as libs de C e C++ ?
Olá! Sobre a primeira pergunta, o interpretador padrão de python (o que vem na instalação), chamado CPython, é feito em C, mas existem variações. Quando se fala do processo de interpretação, Python se comporta como uma interface geral, onde existem várias variações de interpretadores feitas em diferentes linguagems. Por exemplo, temos o Jython, que produz código para rodar na JVM (Java Virtual Machine).
Quanto a segunda pergunta: não há uma forma embutida na linguagem de fazer acesso às bibliotecas de C e C++. No entanto, temos bibliotecas que fazem essa ponte, como a
ctypes
, que compila o código e o transforma num utilizável Python, ou as próprias implementações de bibliotecas feitas em outras linguagens como NumPy e afins.