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:
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
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:
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:
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:
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.
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 | Tipo | Representação |
---|---|---|
Comentário | 1 linha | # |
Múltiplas linhas | ”’ (3 aspas simples) ou “”” (3 aspas duplas) | |
Entrada | Padrão | input(entrada) |
Arquivo | read(entrada) | |
Saída | Padrão | print(saída) |
Arquivo | write(saída) | |
Condicional | if expressão: ações elif expressão: ações else: ações | |
Loop | Enquanto | while expressão: ações else: ações |
Para | for i in intervalo: ações | |
Função | def nome(parâmetro): escopo | |
Tratamento de Exceção | try: expressão except: ações else: ações finally: ações |
Só para ilustrar, agora vamos apresentar um exemplo bem simples para você visualizar a sintaxe no código:
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.
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:
Nome | Descrição | Exemplo | Resultado |
---|---|---|---|
+ | 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” |
len | Calcula o tamanho de uma string. | len(“Estrategia”) | 10 |
replace | Substitui uma string por outra. | texto = “Estrategia Concursos” print(texto.replace(“Estrategia”, “Coruja”)) | “Coruja Concursos” |
count | Conta 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 |
startswith | Verifica se a string começa por determinado texto. | texto = “Estrategia Concursos” print(texto.startswith(“Estrategia”)) | true |
endswith | Verifica se a string termina com determinado texto. | texto = “Estrategia Concursos” print(texto.endswith(“Coruja”)) | false |
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.
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”
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:
Nome | Descrição | Exemplo | Resultado |
---|---|---|---|
append | Adiciona um elemento ao final de uma lista. | pessoa = [“Cristiane Selem”, 1.54] pessoa.append(57) | pessoa = [“Cristiane Selem”, 1.54, 57] |
insert | Insere 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] |
remove | Remove um elemento de uma lista, identificado pelo seu valor. | pessoa = [“Cristiane Selem”, 1.54] pessoa.remove(1.54) | pessoa = [“Cristiane Selem”] |
pop | Remove um elemento de uma lista, identificado pelo seu índice. | pessoa = [“Cristiane Selem”, 1.54] pessoa.pop(1) | pessoa = [“Cristiane Selem”] |
Nome | Descrição | Exemplo | Resultado |
---|---|---|---|
add | Adiciona 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 / discard | Remove 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”} |
Nome | Descrição | Exemplo | Resultado |
---|---|---|---|
get | Acesso 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 |
update | Adiciona 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 / del | Remove um elemento do dicionário. | pessoa = {“nome”: “Cristiane Selem”, “altura”: 1.54} pessoa.pop(“altura”) | pessoa = {“nome”: “Cristiane Selem”} |
Você sabia? >>>>>> Diferença simétrica de conjuntos é representada pela união dos elementos pertencentes aos conjuntos, exceto a intersecção.
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:
Nome | Descrição | Exemplo | Resultado |
---|---|---|---|
int | Converte para inteiro. | print(int(12.27)) | 12 (número truncado) |
float | Converte para ponto flutuante. | print(float(“6”)) | 6.0 |
str | Converte para string. | print(str(6.12)) | 6.12 |
list | Convertem os valores para lista. | print(list((“Cristiane Selem”, 1.54))) | [“Cristiane Selem”, 1.54] |
tuple | Convertem os valores para tupla. | print(tuple([“Cristiane Selem”, 1.54])) | (“Cristiane Selem”, 1.54) |
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:
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.
Salário inicial é de mais de R$ 5 mil. Saiba todos os detalhes desse importante…
Quer interpor recursos contra os gabaritos do concurso ISS Cuiabá para o cargo de Auditor…
Após aplicação das provas do concurso dos Correios (Empresa Brasileira de Correios e Telégrafos), quais serão as…
Olá, pessoal, tudo bem? Neste artigo estudaremos sobre os tipos de accountability para o concurso…
Está pensando em participar do novo concurso SUSEP (Superintendência de Seguros Privados) e ainda não…
O Estratégia realiza semanalmente aulas, eventos, entrevistas, simulados, revisões e maratonas dos principais concursos de…