Python: o que é, como usar, guia pra aprender a linguagem 2021

O Python é uma linguagem de programação de alto nível utilizada em diferentes tipos de aplicações, como para o desenvolvimento web, em Machine Learning, no desenvolvimento de jogos e muito mais. Não é à toa que ela ocupa o segundo lugar entre as linguagens mais populares do mundo, de acordo com o relatório de classificação RedMonk referente a janeiro de 2021.

A linguagem Python é multiparadigma, o que significa que podemos programar com base em diferentes estilos de programação, como a programação funcional, a procedural e a orientada a objetos. Para demonstrar o potencial dessa linguagem, preparamos este guia completo distribuído nos seguintes tópicos:

Continue conosco e boa leitura!

O que é Python?

Python é uma linguagem de programação extremamente simples e versátil. Isso porque sua sintaxe é moderna e objetiva, ou seja, ela foi elaborada para que as pessoas desenvolvedoras escrevam instruções com menos linhas de código. Por isso, é fácil aprender Python. Ela é uma linguagem eficiente tanto para a construção de pequenos sistemas quanto para o desenvolvimento de aplicações complexas.

Python é uma linguagem multiplataforma, pois tem versões para diversos sistemas operacionais, entre eles: Windows, Linux e macOS. Além disso, ela é mantida pela Python Software Foundation (PSF), uma organização sem fins lucrativos.

O Python é uma linguagem interpretada, pois ela não gera aquivos executáveis como acontece na linguagem C, por exemplo. Em vez disso, ela contém um interpretador, que é responsável por traduzir o código fonte em linguagem de máquina e, assim, executar o programa.

Na prática, o interpretador transforma o código fonte para o formato byte code, que corresponde à linguagem de máquina ou código binário, e envia para um ambiente chamado PVM — Python Virtual Machine —, que é uma máquina virtual Python que contém o ambiente capaz de executar o programa.

É importante dizer que existe como gerar arquivos executáveis a partir do código fonte escrito em Python. Entretanto, é preciso utilizar ferramentas desenvolvidas por terceiros, como a Py2exe, PyInstaller, entre outras, que podem ser baixadas gratuitamente na internet. 

Como surgiu a linguagem Python?

O desenvolvimento da linguagem Python começou no final da década de 1980 por Guido Van Rossum, enquanto ele trabalhava no Centrum Wiskunde & Informatica — CWI — em Amsterdã. Seu objetivo era criar uma linguagem de script mais eficiente, capaz de acessar recursos do sistema operacional Amoeba.

Em 1994, surgiu a primeira versão da linguagem Python. O nome escolhido não tem nenhuma relação com a espécie de cobras de mesmo nome, apesar de seu logotipo ser o de duas cobras entrelaçadas. Em vez disso, a escolha foi em função de um programa de televisão da época criado por um grupo de comediantes chamado Monty Python.

Desde então, a linguagem Python recebeu diversas atualizações. Ela tem o código aberto e é disponibilizado sob a licença PSF License Agreement, que é semelhante à General Public License(GPL). Atualmente, está na versão 3.9.5 e é possível fazer o Python download gratuitamente a partir da página oficial da linguagem.

Por que Python é tão valorizado? 5 motivos para aprender

Como mencionamos no início do texto, a linguagem Python ocupa o segundo lugar na preferência mundial. Existem diversos fatores que contribuem para esse resultado positivo. Confira por que vale a pena aprender a programar nessa linguagem.

1. É fácil de aprender

A linguagem Python tem a sintaxe simples e o mais objetiva possível. Um exemplo é que não precisamos utilizar o sinal de ponto e vírgula ao final de cada declaração e as chaves para delimitar os comandos de estruturas de repetição e condicionais, como acontece em outras linguagens de programação.

2. É portátil e multiplataforma

A linguagem Python pode ser instalada em diferentes sistemas operacionais, como Windows, Linux e macOS. Além disso, existem distribuições portáteis, que podem ser utilizadas em pen drives, o que é ideal para facilitar a vida das pessoas programadoras na fase de desenvolvimento da aplicação.

3. É open source e gratuito

A linguagem Python é de código aberto, o que significa que é possível baixar seu código fonte escrito em linguagem C e realizar alterações. Também não é preciso pagar por sua licença de uso. Além disso, ele contém inúmeras bibliotecas e frameworks gratuitos que podem ser utilizados para obter recursos adicionais.

4. Oferece múltiplas possibilidades de desenvolvimento

É possível desenvolver diferentes tipos de aplicações com a linguagem Python, tanto sistemas comerciais para desktop, quanto softwares mais complexos de Machine Learning e Inteligência Artificial. As bibliotecas e frameworks disponíveis para a linguagem ampliam ainda mais a possibilidade de desenvolvimento.

Um exemplo é o framework Django, que é utilizado para o desenvolvimento de aplicações web. Por toda essa abrangência, ela foi escolhida em primeiro lugar como a linguagem de programação mais desejada pelas pessoas programadoras na pesquisa Stack Overflow de 2020.

5. É uma linguagem “curinga”

A linguagem Python é extremamente poderosa e oferece uma ampla possibilidade de desenvolvimento de sistemas.

Como consequência, amplia as oportunidades de trabalho às pessoas programadoras, que podem escolher entre as diferentes possibilidades de desenvolvimento como a de aplicações para web. Além disso, sua sintaxe é simples e intuitiva, o que facilita o aprendizado.

Guia para iniciantes em Python: principais conhecimentos da linguagem

O que é variável em Python?

Antes de falarmos sobre o que é variável em Python, é importante relembrarmos o seu conceito. Na prática, uma variável corresponde a um espaço endereçável na memória (RAM) do computador que é alocada durante a execução do programa para armazenar um determinado valor que poderá ser utilizado várias vezes em um programa.

O conteúdo armazenado em uma variável pode ser de diferentes tipos de dados, como strings, inteiros, booleano etc. Uma das características mais importantes das variáveis em Python é que elas indicam a referência a um objeto, ou seja, qualquer variável representa um objeto.

Na prática, ao declararmos uma variável, ela aloca um espaço em memória para armazenar o valor correspondente e guarda o endereço desse espaço na variável. Assim, ao utilizarmos a variável em outro momento, ela recupera o conteúdo correspondente armazenado na memória referente àquele objeto. Veja um exemplo:

nomes = ['João', 'Maria', 'Pedro']
lista_nomes = nomes
lista_nomes.append('Paula')

print(lista_nomes)
#Resultado: ['João', 'Maria', 'Pedro', 'Paula']

print(nomes)
#Resultado: ['João', 'Maria', 'Pedro', 'Paula']

No código acima, criamos uma lista chamada “nomes” com 3 itens. A seguir, dizemos que a variável “lista_nomes” recebe os valores de “nome”. Por fim, exibimos na tela o conteúdo das duas variáveis. Perceba que mesmo sem atualizar o conteúdo da variável “nome”, ela reflete as alterações feitas em “lista_nomes”.

Isso acontece exatamente porque ela armazena a referência do espaço em memória em que a lista foi criada. Dessa forma, quando alteramos a lista para adicionar mais um elemento, todas as variáveis que apontam para esse espaço em memória refletirão essa atualização.

É importante dizer que existem tipos de dados mutáveis, que aceitam a alteração de seu conteúdo original e imutáveis, que alocam um novo espaço na memória sempre que uma alteração é feita. Assim, os dados de variáveis imutáveis ficam como que perdidos na memória até que um recurso chamado coletor, que funciona como um coletor de lixo, faça a limpeza desse conteúdo.

Quais os tipos de dados Python

Em Python, não é necessário inicializar uma variável como acontece em outras linguagens de programação. Ao atribuir um valor qualquer a ela, ele será identificado de acordo com os tipos de dados disponíveis na linguagem. Confira quais são eles nos próximos tópicos.

a) Inteiros

O tipo inteiro representa os números não decimais positivos ou negativos e de tamanho ilimitado. Para uma variável ser considerada do tipo inteiro, basta atribuir um valor com essas características a ela ou indicar o tipo antes de atribuir o valor. Veja um exemplo:

a = 1
b:int = 1
print(type(a)) #Resultado: <class 'int'>
print(type(b)) #Resultado: <class 'int'>

b) Long

O tipo long pertence ao conjunto de tipos numéricos inteiros de tamanho ilimitado. Na prática, esse tipo de dado em Python só é utilizado até a versão 2.x da linguagem. A partir da versão 3.x, todas as variáveis declaradas como inteiro podem ter o tamanho ilimitado.

c) Float

O tipo float, que é chamado de número de ponto flutuante, também faz parte dos tipos numéricos e é representado pelos números que contêm uma ou mais casas decimais. Veja um exemplo:

i = 199.90
print(i) #Resultado: 199.9
print(type(i)) #Resultado: <class 'float'>

d) Bool

O tipo bool é representado por uma entre duas possibilidades de valores, são eles: True ou False, que indica verdadeiro ou falso. Além de declarados em variáveis, os valores do tipo bool são utilizados para comparar e avaliar expressões. Confira o exemplo abaixo:

i = 10
resultado = (i == 10)
print(resultado) #Resultado: True

print(i == 10) #Resultado: True
print(i >= 10) #Resultado: True
print(i < 10) #Resultado: False

e) None Type

O tipo None pertence à classe NoneType e é um objeto utilizado para indicar valores nulos. Na prática, ele é uma palavra-chave que indica, por exemplo, que uma determinada variável não contém nenhum valor. É importante dizer que None é diferente de uma string vazia, de um número inteiro igual a zero ou do valor bool igual a False.

Podemos atribuir o valor None a qualquer variável para indicar que ela não tem um valor específico. Ele também pode ser utilizado para analisar expressões. Veja o código a seguir:

print(type(None)) #Resultado: <class 'NoneType'>
i = None
a = i
print(i == a) #Resultado: True
print(i == None) #Resultado: True
print(a == None) #Resultado: True

print(type(a)) #Resultado: <class 'NoneType'>
print(type(i)) #Resultado: <class 'NoneType'>
print(i == False) #Resultado: False
print(i == 0) #Resultado: False

f) String

Em Python, o tipo string funciona como um array de caracteres. Por isso, é possível acessar cada caractere por meio de seu índice correspondente. Para declarar uma string, basta informar o conteúdo delimitado por aspas ou aspas dupla. Veja um exemplo:

nome = 'João da Silva'
print(nome) #Resultado: João da Silva
print(type(nome)) #Resultado: <class 'str'>

Estruturas condicionais em Python: if, elif e else

Toda linguagem de programação precisa ter estruturas condicionais, que são comandos utilizados para verificar se uma expressão é verdadeira ou falsa e executar determinados blocos de código em cada situação específica. Confira como a estrutura if, elif e else funcionam em Python.

if/else

O comando Python if é utilizado para verificar a condição de uma expressão e executar ou não um determinado bloco de código. A instrução if pode ser executada sozinha ou em conjunto com a instrução else, que possibilita a execução de outro conjunto de códigos caso a condição avaliada seja falsa.

Veja a sintaxe no pseudocódigo a seguir:

if <condicao_verdadeira>:
   <bloco_de_codigo>
else:
   <outro_bloco_de_codigo>

É importante dizer que em Python não há a necessidade de delimitar o bloco de códigos com as chaves de abertura e fechamento: “{“ e “}”, como acontece em outras linguagens de programação. Na prática, basta adicionar o caractere de dois pontos “:” após a expressão. Veja um algoritmo de exemplo de código com a estrutura Python if else:

nome = 'João'
if nome == 'João':
    print(True)
else:
    print(False)
#Resultado: True

if/elif/else

Existem situações em que pode ser necessário avaliar outra condição caso a primeira expressão seja falsa. Nesse cenário, podemos utilizar a instrução elif, que avalia se outra condição é verdadeira. Veja a sintaxe abaixo:

if <condicao_verdadeira>:
    <bloco_de_codigo>
elif <nova_condicao_verdadeira>:
    <novo_bloco_de_codigo>
else:
    <outro_bloco_de_codigo>

Também podemos usar o comando else para executar outro bloco de códigos se a condição não for satisfatória. Veja o código de exemplo abaixo:

numero = 20
if numero < 10:
    print(True)
elif numero == 20:
    print("O número é igual a 20")
else:
    print(False)
#Resultado: O número é igual a 20

No código acima, verificamos se o número é menor que 10. Caso não seja, avaliamos novamente se ele é igual a 20. A seguir, retornamos uma mensagem na tela para cada condição específica.

Retornando uma sequência de números: função Python range

A função Python range é utilizada para criar uma sequência numérica. Podemos determinar qual será o valor inicial, o ponto de parada e o valor utilizado para incrementar a lista, que por padrão é 1. 

Trata-se de um recurso útil para servir como contador em estruturas de repetição, por exemplo, ou para aplicar em variáveis quando precisamos utilizar números sequenciais como listas ou tuplas. Veja o código a seguir:

numeros = list(range(11))
print(numeros)
#Resultado: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for i in range(0, 11, 2):
    print(i)

'''
resultado:
0
2
4
6
8
10
'''

No código acima, utilizamos a função range() para criarmos uma lista com 10 elementos e, também, em uma estrutura de repetição for para servir como contador para imprimirmos os números pares no intervalo de 0 a 10.

Laço de repetição Python for

O Python for loop é utilizado para executar um determinado bloco de comandos a partir da avaliação de uma expressão feita em variáveis iteráveis. Vale ressaltar que elementos iteráveis são aqueles que podem ser manipulados de forma sequencial pelas funções __next__() e __iter__(), como strings, listas ou tuplas. Veja a sintaxe abaixo:

for <elemento> in <conjunto_de_elementos>:
    <bloco_de_codigo>

Veja um código de exemplo:

lista_linguagens = ['Python', 'C', 'Java', 'JavaScript']
for linguagem in lista_linguagens:
    print(linguagem)

'''
Resultado:
Python
C
Java
JavaScript
'''

No código acima, definimos uma lista com 4 linguagens de programação. A seguir, utilizamos a estrutura de repetição for para percorrer todos os elementos da lista e exibi-los na tela.

Laço de repetição Python while 

A estrutura de repetição Python while é utilizada quando é preciso executar um bloco de códigos repetidas vezes enquanto uma determinada condição for verdadeira. Ao utilizar esse recurso, entretanto, é preciso atenção para garantir que exista um ponto de interrupção que indique o término da execução em loop. Veja a sintaxe:

while <condicao_verdadeira>:
    <bloco_de_codigo>
else:
    <outro_bloco_de_codigo>

Confira um código de exemplo:

linguagem = 'Python'
i = 0
while (i < len(linguagem)):
    print(linguagem[i])
    i += 1

'''
Resultado:
P
y
t
h
o
n
'''

No código acima, utilizamos o loop while para percorrer o conteúdo de uma string e exibir cada caractere na tela. Perceba que utilizamos a variável “i” como contador, como índice para acessar cada caractere da string e como ponto de parada para o laço while.

Armazenando itens em uma única variável: Python list

O Python list é uma estrutura de dados utilizada para armazenar diversos valores em uma única variável. Seus elementos são organizados sequencialmente e acessados por meio do índice correspondente ao item ou por meio de métodos para a manipulação de listas disponíveis na linguagem.

É possível armazenar diversos tipos de dados em uma lista, como strings, inteiros, bool e, inclusive, outras listas. Os elementos de uma lista são delimitados pelos sinais de colchetes: “[“ e “]”. Veja um exemplo:

lista_pessoas = ['João', 23, ['Python', 'JavaScript']]
print(lista_pessoas) #Resultado: ['João', 23, ['Python', 'JavaScript']]
print(type(lista_pessoas)) #Resultado: <class 'list'>

Gerando números pseudo aleatórios: Python random

O módulo Python random é utilizado quando queremos gerar números pseudo-aleatórios, que são semelhantes a números aleatórios, entretanto, são produzidos por meio de algoritmos que utilizam um valor de base para gerar outros valores aleatórios. 

Esse é um recurso muito utilizado em algoritmos de cálculos estatísticos e de teorias de probabilidade, por exemplo. Além disso, o módulo random contém uma série de métodos auxiliares. Para utilizar esse recurso, devemos importar o módulo no código correspondente. É importante dizer que ao utilizar a mesma base e depurarmos o programa, o resultado gerado será sempre o mesmo. Veja um pequeno exemplo:

import random # necessário para utilizar o módulo random
 
random.seed(20)
print(random.random()) # resultado: 0.9056396761745207
print(random.random()) # resultado: 0.6862541570267026
 
random.seed(20)
print(random.random()) # resultado: 0.9056396761745207
print(random.random()) # resultado: 0.6862541570267026

Conheça alguns métodos de string do Python

A linguagem Python oferece uma série de métodos para facilitar a manipulação de variáveis do tipo string. É importante lembrar que a string é imutável, portanto, qualquer alteração em seu conteúdo será armazenada em uma nova variável. Confira alguns métodos a seguir.

a – Separando strings em substrings e retornando em listas: split

O método split() é utilizado para dividir uma string em uma ou várias substrings. O resultado obtido é retornado em formato de lista. Por padrão, o separador sempre é considerado o caractere de espaço, entretanto, podemos definir outro caractere, além de determinar a quantidade de elementos que queremos na lista. Veja um exemplo:

linguagens_de_programacao = 'Python JavaScript C Ruby'
lista_linguagens = linguagens_de_programacao.split()

print(lista_linguagens) #Resultado: ['Python', 'JavaScript', 'C', 'Ruby']
print(type(lista_linguagens)) #Resultado: <class 'list'>

Perceba que na variável “lista_linguagens” dividimos a string “linguagens_de_programação” com a função split() e ela separou os elementos de acordo com o caractere de espaço encontrado.

b – Substituindo substrings dentro de uma string: python replace

Outro método disponível para a manipulação de string é o Python replace(). Na prática, ele cria uma nova string com a alteração indicada na função, que tem três parâmetros. Veja a sintaxe:

string.replace(oldvalue, newvalue, count)

Os parâmetros oldvalue e newvalue são obrigatórios e indicam respectivamente o valor anterior e o novo conteúdo. Já o parâmetro count é opcional e indica o número de vezes que a alteração será realizada. Veja um exemplo:

linguagens_de_programacao = 'Python JavaScript C Ruby'
linguagens = linguagens_de_programacao.replace(' ', '-')
print(linguagens) #Resultado: Python-JavaScript-C-Ruby
print(type(linguagens)) #Resultado: <class 'str'>

No código acima, utilizamos a função replace() para trocar o caractere de espaço pelo caractere hífen.

Conheça as 3 principais bibliotecas Python.

Uma das características da linguagem Python é sua modularidade. Por isso, existem diversas bibliotecas disponíveis na internet que adicionam ainda mais poder a ela, o que é essencial para possibilitar o desenvolvimento de aplicações de diferentes setores, como Machine Learning, que significa aprendizado de máquina e Ciência de Dados. Confira as principais bibliotecas a seguir.

1. NumPy

A biblioteca NumPy é utilizada para o processamento de cálculos com matrizes e vetores. Ela contém uma série de funções para a manipulação de arrays simples e multidimensionais e é usada em algoritmos de Machine Learning, para a manipulação de imagens em sistemas de computação gráfica e muito mais.

Trata-se de uma biblioteca de código aberto e disponibilizada gratuitamente. Sua instalação pode ser feita por meio do gerenciador de pacotes como o pip. Vale ressaltar que existem distribuições do Python que já vem com o NumPy, como a Anaconda Python.

2. Pandas

A biblioteca pandas é utilizada para trabalhar com análise de dados. Ela oferece uma série de funções que permitem a leitura e manipulação de dados. Por isso, é amplamente utilizado em Machine Learning, Ciências de Dados, Mineração de Dados, em cálculos estatísticos e muito mais.

O pandas é uma biblioteca de código aberto desenvolvida sobre a biblioteca NumPy. Dessa forma, os dados podem ser estruturados de diferentes formas. Sua instalação pode ser feita por meio do gerenciador de pacotes pip.

3. SciPy

A biblioteca SciPy é utilizada para a realização de cálculos científicos, que requerem a utilização de algoritmos complexos. Ela é utilizada para resolver cálculos matemáticos e de engenharia, por exemplo. O SciPy também é uma biblioteca de código aberto e desenvolvida sobre a NumPy. Sua instalação pode ser feita por meio do gerenciador de pacotes.

Gostou do nosso guia completo sobre a linguagem Python? Então, confira nosso post sobre o que é desenvolvimento web e saiba como iniciar essa carreira!