Artigo

Ciência de Dados Passo a Passo: Linguagem Python Esquematizada.

Introdução

Retomando a nossa série de temas sobre Ciência de Dados, área que despenca nas provas de Tecnologia da Informação e nas provas das carreiras mais concorridas, vamos apresentar hoje um resumo bem didático da linguagem Python.

Ela “caiu no gosto” do mercado de TI e das bancas de concursos públicos, em grande parte por causa de sua simplicidade e aplicabilidade em diversos contextos. Em outras palavras, é uma aposta forte para as próximas provas de 2023.

Nós vamos falar da linguagem Python de uma maneira mais objetiva e esquematizada. Assim, será um artigo para você salvar nos favoritos para tirar dúvidas da linguagem e fazer revisões futuras. Veja como os tópicos serão divididos:

  • Aplicações da Linguagem
  • Principais Características
  • Sintaxe Básica
  • Manipulação de Strings
  • Coleções de Dados
  • Manipulação de Coleções
  • Conversão de Tipos
  • Python 2 e 3

O objetivo deste artigo não é ensinar você a programar de fato. O ideal é que você já tenha algum conhecimento prévio de linguagens de programação em geral para não ficar perdido.

No entanto, se não conhecer absolutamente nada de linguagens de programação, a nossa sugestão é que você busque os materiais do Estratégia Concursos e retorne a esta publicação quando estiver preparado.

O artigo é indicado a todos os concurseiros que farão provas específicas da área de TI e/ou estudam para carreiras com nível de concorrência alto (Fiscal, Policial etc.).

Por fim, como esta publicação não será tão longa, a recomendação é que você faça a leitura de uma só vez. Como as seções são um pouco dependentes umas das outras, não é apropriado particionar o conteúdo. Bom, chega de papo. Vamos começar então?

Tempo de leitura aproximada: 15 a 20 minutos

Aplicações da Linguagem

Por causa de sua simplicidade e praticidade, Python popularizou-se entre os desenvolvedores das mais diversas áreas. Dessa forma, veja no esquema abaixo as possíveis aplicações da linguagem:

Figura 1 - Aplicações da linguagem Python.
Figura 1 – Aplicações da linguagem Python.

Principais Características

Antes de mais nada, Python é uma linguagem aberta, que não requer o uso de licença para sua utilização (open-source). Em outras palavras, você não precisa pagar nada por ela.

O código em Python é um script *.py ou *.pyw. Comumente diz-se que ele é interpretado (ou seja, não é compilado). Veja que um programa escrito nessa linguagem facilita a portabilidade para outros ambientes. 

Além disso, o Python pode trabalhar de forma versátil com o paradigma imperativo/procedural, declarativo/funcional ou orientado a objetos. Talvez você não conheça, mas vamos explicar como diferenciar os três.

Primeiramente, o paradigma imperativo/procedural é o mais clássico, dos primórdios. Os comandos são ações que mudam o estado das variáveis. Por outro lado, o paradigma declarativo/funcional é o oposto. Os comandos do programa são uma sequência de funções, evitando estados ou dados mutáveis. Veja:

Figura 2 - Exemplos de códigos dos paradigmas imperativo/procedural e declarativo/funcional.
Figura 2 – Exemplos de códigos dos paradigmas imperativo/procedural e declarativo/funcional em Python (Fonte: Guia Dev. Disponível em: <https://guia.dev/pt/pillars/languages-and-tools/programming-paradigms.html>. Acesso em: 15 dez. 2022).

Em contrapartida, no paradigma orientado a objetos, trabalhamos com os conceitos de objetos e eventos, típicos das linguagens mais recentes. Veja mais um exemplo:

Figura 3 – Exemplo de código do paradigma orientado a objeto.
Figura 3 – Exemplo de código do paradigma orientado a objeto em Python (Fonte: Guia Dev. Disponível em: <https://guia.dev/pt/pillars/languages-and-tools/programming-paradigms.html>. Acesso em: 15 dez. 2022).

Por fim, Python é uma linguagem fortemente e dinamicamente tipada. Ou seja, ela consegue entender o tipo da variável de forma dinâmica, durante a execução do programa, sem que o desenvolvedor defina previamente.  Além disso, não são feitas conversões automáticas de tipos.

Figura 4 - Principais características do Python.
Figura 4 – Principais características do Python.

Sintaxe Básica

Assim como ocorre em toda linguagem, a sintaxe dos principais elementos é um pouco de “decoreba”. A fim de facilitar a sua vida, vamos apresentar em forma de quadro esquematizado:

Elemento TipoRepresentação
Comentário1 linha#
Múltiplas linhas”’ (3 aspas simples) ou
“”” (3 aspas duplas)
EntradaPadrãoinput(entrada)
Arquivoread(entrada)
SaídaPadrãoprint(saída)
Arquivowrite(saída)
Condicionalif expressão:
      ações
elif expressão:
      ações
else:
      ações
LoopEnquantowhile expressão:
      ações
else:
      ações
Parafor i in intervalo:
      ações
Função def nome(parâmetro):
      escopo
Tratamento de Exceçãotry:
      expressão
except:
      ações
else:
      ações
finally:
      ações
Tabela 1 – Resumo da sintaxe dos principais elementos em Python.

Só para ilustrar, agora vamos apresentar um exemplo bem simples para você visualizar a sintaxe no código:

Figura 5 - Exemplo de sintaxe dos principais elementos em Python.
Figura 5 – Exemplo de sintaxe dos principais elementos em Python.

Grande parte das questões de Python pede para o candidato informar qual a saída esperada do programa. Sendo assim, é fundamental que você conheça a sintaxe da linguagem para conseguir resolvê-las.

Se você chegou até aqui e entendeu os conceitos apresentados, acreditamos que já conseguirá acertar muitas questões. Nas próximas seções, vamos falar de outros tópicos de Python que também costumam ser explorados em provas de concurso.  

Manipulação de Strings

Segue um quadro esquematizado com as funções comuns para manipulação de strings em Python. Como você já está familiarizado com a sintaxe, vamos apresentar os exemplos de forma mais direta dessa vez, só para ilustrar, no próprio quadro:

NomeDescriçãoExemploResultado
+Concatena strings.“Estrategia ” + “Concursos”“Estrategia Concursos”
[X] e [X:Y]Identifica uma substring.texto = “Estrategia Concursos”
print(texto[0])
print(texto[4:7])
“E”
“ate”
lenCalcula o tamanho de uma string.len(“Estrategia”)10
replaceSubstitui uma string por outra. texto = “Estrategia Concursos” print(texto.replace(“Estrategia”, “Coruja”))“Coruja Concursos”
countConta o número de ocorrências de uma string.texto = “Estrategia Concursos. A Coruja que garante a sua aprovação.”

print(texto.count(“Co”))
2
startswithVerifica se a string começa por determinado texto.texto = “Estrategia Concursos”
print(texto.startswith(“Estrategia”))
true
endswithVerifica se a string termina com determinado texto.texto = “Estrategia Concursos”
print(texto.endswith(“Coruja”))
false
Tabela 2 – Funções de manipulação de strings em Python.

Se você tiver a oportunidade de praticar a linguagem, será ótimo para o seu aprendizado. Fique ligado, pois existem diversos emuladores de Python gratuitos na Internet. Entretanto, se não puder treinar, então tente memorizar o quadro com a técnica a que está habituado.

Coleções de Dados

Para quem não está tão familiarizado, pense em coleções como grupinhos de dados. Assim, as principais coleções em Python são listas, tuplas, sets e dicionários. Vamos ver um pouco de cada uma delas:

Listas: coleção de valores organizada por índice (iniciado sempre por 0). São mutáveis, podendo ser alteradas após a sua criação (por exemplo, adicionar ou excluir elementos). Além disso, podem contemplar tipos de dados heterogêneos (por exemplo, misturar inteiros com strings etc.)

Ex: pessoa = [“Cristiane Selem”, 1.54]

     pessoa[0]                                               #acessa “Cristiane Selem”

Tuplas: coleção de valores com características semelhantes às das listas, porém são imutáveis. Em outras palavras, não permitem alterações após a sua criação. Por conseguinte, as tuplas só devem ser utilizadas quando há certeza de que não haverá alterações nos elementos.

Ex: signos = (“Áries”, “Touro”, “Gêmeos”, “Câncer”, “Leão”, “Virgem”, “Libra”, “Escorpião”, “Sagitário”, “Capricórnio”, “Aquário”, “Peixes”)

     signos[9]                                              #acessa “Capricórnio”

Sets: coleção de valores não ordenados e não duplicados. Da mesma forma que as listas, também são mutáveis. Sua estrutura é muito semelhante ao conceito de conjuntos da matemática, podendo inclusive trabalhar com operações entre eles (por exemplo, união, intersecção, diferença etc.).

Ex: professoresTI = {“André Castro”, “Diego Carvalho”, “Evandro Dalla Vecchia”, “Fernando Pedrosa”, “Raphael Lacerda”, “Thiago Cavalcanti”}

Dicionários: coleção em que cada elemento é representado pelo par “chave:valor”. Em outras palavras, ao invés de índices, os valores dos elementos são acessados por meio de sua chave associativa. Da mesma forma que as listas e os sets, os dicionários são coleções mutáveis.

Repare que a chave não necessariamente precisa ser um número inteiro (poderia ser uma string, por exemplo):

Ex: pessoa = {“nome”: “Cristiane Selem”,

                       “altura”: 1.54}

      pessoa[“nome”]                                       #acessa “Cristiane Selem”

Manipulação de Coleções

Seguem alguns quadros esquematizados com as funções comuns para manipulação de coleções em Python. Uma vez que você já está ambientado com coleções, vamos apresentar os exemplos de forma mais direta, no próprio quadro:

LISTA

NomeDescriçãoExemploResultado
appendAdiciona um elemento ao final de uma lista.pessoa = [“Cristiane Selem”, 1.54]
pessoa.append(57)
pessoa = [“Cristiane Selem”, 1.54, 57]
insertInsere um elemento em uma posição específica da lista.pessoa = [“Cristiane Selem”, 1.54]
pessoa.insert(1, 57)
pessoa = [“Cristiane Selem”, 57, 1.54]
removeRemove um elemento de uma lista, identificado pelo seu valor.pessoa = [“Cristiane Selem”, 1.54]
pessoa.remove(1.54)
pessoa = [“Cristiane Selem”]
popRemove um elemento de uma lista, identificado pelo seu índice.pessoa = [“Cristiane Selem”, 1.54]
pessoa.pop(1)
pessoa = [“Cristiane Selem”]
Tabela 3 – Funções de manipulação da coleção lista em Python.

SET

NomeDescriçãoExemploResultado
addAdiciona um elemento ao conjunto.professoresTI = {“André Castro”, “Diego Carvalho”, “Evandro Dalla Vecchia”, “Fernando Pedrosa”, “Raphael Lacerda”}
 
professoresTI.add(“Thiago Cavalcanti”)
professoresTI =
{“Thiago Cavalcanti”, “Evandro Dalla Vecchia”, “Fernando Pedrosa”, “Diego Carvalho”, “Raphael Lacerda”, “André Castro”}
 
remove / discardRemove um elemento do conjunto.professoresTI = {“André Castro”, “Diego Carvalho”, “Evandro Dalla Vecchia”, “Fernando Pedrosa”, “Raphael Lacerda”, “Thiago Cavalcanti”}
 
professoresTI.remove(“Thiago Cavalcanti”)
professoresTI = {“Evandro Dalla Vecchia”, “André Castro”, “Raphael Lacerda”, “Diego Carvalho”, “Fernando Pedrosa”}
|União de conjuntos.professoresTI = {“André Castro”, “Diego Carvalho”, “Evandro Dalla Vecchia”, “Fernando Pedrosa”, “Raphael Lacerda”, “Thiago Cavalcanti”}

professoresInformatica = {“Diego Carvalho”, “Emanuelle Gouveia”, “Renato da Costa”}
 
print(professoresTI | professoresInformatica)
{“André Castro”, “Renato da Costa”, “Evandro Dalla Vecchia”, “Raphael Lacerda”, “Emanuelle Gouveia”, “Thiago Cavalcanti”, “Fernando Pedrosa”, “Diego Carvalho”}
Intersecção de conjuntos.professoresTI = {“André Castro”, “Diego Carvalho”, “Evandro Dalla Vecchia”, “Fernando Pedrosa”, “Raphael Lacerda”, “Thiago Cavalcanti”}

professoresInformatica = {“Diego Carvalho”, “Emanuelle Gouveia”, “Renato da Costa”}
 
print(professoresTI & professoresInformatica)
{“Diego Carvalho”}
Diferença de conjuntos.professoresTI = {“André Castro”, “Diego Carvalho”, “Evandro Dalla Vecchia”, “Fernando Pedrosa”, “Raphael Lacerda”, “Thiago Cavalcanti”}

professoresInformatica = {“Diego Carvalho”, “Emanuelle Gouveia”, “Renato da Costa”}
 
print(professoresTI – professoresInformatica)
{“André Castro”, “Thiago Cavalcanti”, “Fernando Pedrosa”, “Evandro Dalla Vecchia”, “Raphael Lacerda”}
^Diferença simétrica de conjuntos.professoresTI = {“André Castro”, “Diego Carvalho”, “Evandro Dalla Vecchia”, “Fernando Pedrosa”, “Raphael Lacerda”, “Thiago Cavalcanti”}

professoresInformatica = {“Diego Carvalho”, “Emanuelle Gouveia”, “Renato da Costa”}
 
print(professoresTI ^ professoresInformatica)
{“Evandro Dalla Vecchia”, “Renato da Costa”, “Fernando Pedrosa”, “Raphael Lacerda”, “André Castro”, “Thiago Cavalcanti”, “Emanuelle Gouveia”}
 
Tabela 4 – Funções de manipulação da coleção set em Python.

DICIONÁRIO

NomeDescriçãoExemploResultado
getAcesso a um elemento do dicionário.pessoa = {“nome”: “Cristiane Selem”, “altura”:    1.54}
 
print(pessoa.get(“nome”, “O nome da pessoa não foi encontrado”))
Cristiane Selem
updateAdiciona um elemento ao dicionário.pessoa = {“nome”: “Cristiane Selem”, “altura”:    1.54}
 
pessoa.update({“peso”:57})
pessoa = {“nome”: “Cristiane Selem”,
                “altura”:    1.54,
“peso”: 57}
pop / delRemove um elemento do dicionário.pessoa = {“nome”: “Cristiane Selem”, “altura”:    1.54}
 
pessoa.pop(“altura”)
pessoa = {“nome”: “Cristiane Selem”}
Tabela 5 – Funções de manipulação da coleção dicionário em Python.

Você sabia? >>>>>> Diferença simétrica de conjuntos é representada pela união dos elementos pertencentes aos conjuntos, exceto a intersecção.

Figura 6 - Diferença simétrica entre conjuntos.

Figura 6 – Diferença simétrica entre conjuntos.

Conversão de Tipos

Assim como a maioria das linguagens, o Python também permite conversão de tipos. A fim de facilitar o seu aprendizado, disponibilizamos um quadro esquematizado com as principais funções de conversão em Python, juntamente com seus exemplos:

NomeDescriçãoExemploResultado
intConverte para inteiro.print(int(12.27))12 (número truncado)
floatConverte para ponto flutuante.print(float(“6”))6.0
strConverte para string.print(str(6.12))6.12
listConvertem os valores para lista.print(list((“Cristiane  Selem”, 1.54)))[“Cristiane Selem”, 1.54]
tupleConvertem os valores para tupla.print(tuple([“Cristiane Selem”, 1.54]))(“Cristiane Selem”, 1.54)
Tabela 6 – Funções de conversão de tipos em Python.

Python 2 e 3

A linguagem Python também sofre evoluções. De acordo com essa ideia, Python 2 e Python 3 representam essas atualizações da versão original. Como você já deve imaginar, certamente existem algumas diferenças para justificar o incremento.

Além de mais recente, o Python 3 também possui uma sintaxe mais simples e mais fácil de entender. Só para ilustrar, segue um resumo esquematizado das principais diferenças:

Figura 7 – Principais diferenças entre Python 2 e Python 3.
Figura 7 – Principais diferenças entre Python 2 e Python 3.

Conclusão

Em suma, apresentamos no artigo de hoje um resumo esquematizado da linguagem Python, tema que despenca nas provas de Tecnologia da Informação que exigem Ciência de Dados. Assim, se você entendeu bem os conceitos, o próximo passo agora será realizar muitas questões para treinar.

Alunos aprovados realizam centenas ou até milhares de questões para atingir seu objetivo. O acesso ao Sistema de Questões do Estratégia é feito pelo link: https://concursos.estrategia.com/.

Não esqueça também de retornar ao tópico periodicamente para fazer revisões. Este artigo foi preparado especialmente para ajudar você nisso. Salve-o nos seus favoritos e utilize-o da melhor forma.

Por fim, se você quiser aprofundar o conteúdo ou tirar dúvidas específicas da linguagem Python, busque o material do Estratégia Concursos. Nós oferecemos diversos cursos em pdf, videoaulas e áudios para você ouvir onde quiser.

Bons estudos e até a próxima!

Cristiane Selem Ferreira Neves é Bacharel em Ciência da Computação e Mestre em Sistemas de Informação pela Universidade Federal do Rio de Janeiro (UFRJ), além de possuir a certificação Project Management Professional pelo Project Management Institute (PMI). Já foi aprovada nos seguintes concursos: ITERJ (2012), DATAPREV (2012), VALEC (2012), Rioprevidência (2012/2013), TJ-RJ (2022) e TCE-RJ (2022). Atualmente exerce o cargo efetivo de Especialista em Previdência Social – Ciência da Computação no Rioprevidência, além de ser colaboradora do Blog do Estratégia Concursos.

Concursos Abertos

Quer Saber Tudo de Concursos Previstos?

Confira Nossos Artigos

Concursos 2023

Deixe seu comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Veja os comentários
  • Nenhum comentário enviado.