Você está na página 1de 94

PYTHON – BÁSICO DA LINGUAGEM

Professor: Rogério Araújo

PYTHON – BÁSICO DA LINGUAGEM

Apresentação do professor

Fala, meu(minha) consagrado(a) concurseiro(a)? Tudo beleza com você?

Sou o professor Rogério Araújo. Sou bacharel em Ciência da Computação pela Uni-
versidade Estadual do Piauí (UESPI), especialista em Governança em TI pela Unieuro e em
Desenvolvimento de Sistemas Baseados em Software Livre pela Universidade da Amazônia
(UNAMA). Atualmente, estou cursando o MBA Data Science e Analytics pela USP/Esalq.
Possuo as certificações Certified ScrumMaster, COBIT 4.1 Foundation Certified e Sun Certi-
fied Associate for J2SE (SCJA). Sou autor de artigos no site www.rogeraoaraujo.com.br, no
blog do Gran Cursos Online (https://blog.grancursosonline.com.br/author/rogerio-araujo/) e
tenho meu canal no Youtube (www.youtube.com/rgildoaraujo). Sou professor de cursos na
área de Tecnologia da Informação para concursos.
Quanto à minha carreira como servidor público, atualmente trabalho na Secretaria do
Tesouro Nacional, vinculada ao Ministério da Economia, exercendo o cargo de Auditor Fede-
ral de Finanças e Controle, na área de Governança de TI. Também já passei pelo Tribunal
Regional Federal (TRF) 1ª Região, exercendo o cargo de Analista Judiciário, na especiali-
dade de Analista de Sistemas, e pelo Ministério Público Federal (MPF), como Técnico de
Informática.
Como concurseiro, fui aprovado em alguns concursos, tais como, em ordem decrescente
de ano, STN 2013 (nomeado e onde estou hoje), TST 2012 (nomeado), TSE 2012 (apro-
veitado e nomeado no TRF 1ª Região), TRE-PE 2011 (classificado), TRT 19ª Região 2011
(classificado), MPU 2010 (classificado), STM 2010 (classificado), SERPRO 2008 (nomeado),
TRT 18ª Região 2008 (classificado), MPU 2006 (classificado), BACEN 2005 (classificado),
TRE-MA 2005 (classificado), TRT 16ª Região 2005 (classificado), TCE-PI 2005 (classificado)
e MPU 2004 (nomeado).

Professor Rogério Araújo – @profRogeraoAraujo

www.grancursosonline.com.br 2
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

1. Introdução e conceituação

1.1 Conceituação da linguagem Python

Python é uma linguagem de programação:

• De alto nível;
– É uma linguagem que possui a sintaxe a qual se aproxima da linguagem humana.

• Interpretada;
– Cada linha do código em Python é lida e executada por um interpretador.

• De script;
– Em um script, por exemplo, código em Python, descreve-se uma sequência de
comandos e tarefas que um interpretador deve executar.

• Imperativa;
– É uma linguagem orientada a ações, em que a computação é vista como uma sequ-
ência de instruções que manipulam valores de variáveis.

• Orientada a objetos;
– Suporta os conceitos da orientação a objetos.

• Funcional;
– É um paradigma de programação que trata a computação como uma avaliação de
funções matemáticas e evita estados ou dados mutáveis.

• De tipagem:
– Dinâmica;
– Forte.

www.grancursosonline.com.br 3
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Figura 1.1: Características da linguagem Python.

Destacarei, a seguir, os pontos do Python de alto nível e interpretada. O restante apren-


deremos aos poucos.

1.2 Linguagem de alto nível e interpretada

Para entendermos o que significa uma linguagem de programação ser de alto nível,
precisamos fazer uma introdução.
No nosso dia a dia, utilizamos programas de computadores para os mais diversos fins,
seja para nos auxiliar em nosso trabalho, seja para usos pessoais.

Um programa de computador é um conjunto de instruções que:

• Possui um determinado fim;


– Por exemplo, o Photoshop para edição de imagens.

• É executado por um processador.

No entanto, para que haja essa execução pelo processador, o programa precisa estar
em uma linguagem que o processador possa entender: a linguagem de máquina. Ela é
a linguagem que um processador é capaz de compreender e é composta apenas pelos
números 0 e 1.

www.grancursosonline.com.br 4
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

O conjunto de instruções que forma um programa é escrito em linguagem de máquina.


Dessa forma, o processador reconhecerá o programa e irá executá-lo.

Professor, mas como vamos programar escrevendo apenas 0 e 1?

Meu(minha) caro(a) aluno(a), não precisamos ter conhecimento de linguagem de


máquina para escrever nossos programas. Para nosso trabalho como desenvolvedores de
software, utilizamos linguagens de alto nível, como, por exemplo, a própria linguagem Python.
Programar já não é uma tarefa tão fácil, e programar escovando bits é extremamente
complexo e trabalhoso, o que elevaria muito o custo de desenvolvimento e da manutenção
de softwares.

Aproveitando, temos que ter em mente que (figura 1.2):

• Quanto mais semelhante uma linguagem for da de máquina:


– Mais baixo é o nível dessa linguagem;
– Menos legível é para o ser humano.

• Quanto mais “distante” uma linguagem for da de máquina:


– Mais alto é o nível dessa linguagem;
– Mais legível é para o ser humano.

Figura 1.2: Classificações de linguagens.

A linguagem Python, por exemplo, é uma linguagem de alto nível, pois possui a sintaxe
que se aproxima da linguagem humana. Veremos vários exemplos para mostrar que a sin-
taxe é tranquila de entendimento.

Professor, se o processador apenas reconhece a linguagem de máquina, como


ele irá executar um programa escrito em uma linguagem de alto nível?

www.grancursosonline.com.br 5
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Meu(minha) prezado(a), neste momento, entram em ação dois brothers:

• Compilador;
• Editor de ligação.

O compilador traduz um programa escrito em uma linguagem de alto nível em um pro-


grama-objeto não executável (também chamado de módulo-objeto).
Apesar de esse módulo-objeto ser em linguagem de máquina, ele não é executável ainda.
O editor de ligação, também chamado de linker, gera um programa executável a
partir de um ou mais módulos-objetos.

Apenas visualizando o que eu falei (figura 1.3):

• Criamos um programa-fonte em linguagem de alto nível;


• Ele é compilado;
– Gera um programa-objeto em linguagem de máquina, porém ainda não executável.

• O editor de ligação:
– Recebe esse programa-objeto;
– Gera um programa em linguagem de máquina executável para uma plataforma
específica.

• Como uma linguagem de máquina de uma plataforma às vezes difere de outra, precisa-
remos de um compilador e de um linker específicos para que um programa-fonte possa
ser traduzido na linguagem de máquina própria de uma plataforma.

Figura 1.3: Processo de compilação de um programa.

www.grancursosonline.com.br 6
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Esse processo é feito uma vez para cada plataforma. Se houver alguma alteração do
programa-fonte, precisaremos compilar novamente o código.
As linguagens C e C++ são exemplos de linguagens compiladas.
Expliquei que Python é uma linguagem de alto nível, mas ela não passa pelo processo
de compilação/ligação. Usamos outro processo: a interpretação. Nesse processo, temos a
participação do interpretador. Ele é uma instância de hardware ou software que lê e exe-
cuta diretamente as instruções apresentadas, ou seja, cada linha de um código é lida e
executada por um interpretador.
O interpretador não produz módulo-objeto, apenas executa as instruções contidas no
programa-fonte, não necessariamente em linguagem de alto nível.
Durante uma execução, o interpretador lê cada instrução a partir de um programa-fonte
e a executa imediatamente.
A cada vez que o código for executado, o processo é feito. Portanto, a interpretação é
mais lenta que a compilação.
Como exemplos de linguagens interpretadas: BASIC, Perl, PHP, JavaScript, Lisp, Ruby
etc. Além delas, temos a linguagem Python.
Java passa por um processo híbrido de compilação e interpretação.

O PULO DO GATO
A linguagem Python é uma linguagem interpretada. Com essa informação, matamos
várias questões, meu prezado.

1.3. Como Python é distribuído


Python é software livre e é distribuído através da licença Python Software Foundation
License (compatível com a GNU GPL). Isso torna a linguagem gratuita, reutilizável e
distribuível até mesmo para software comercial.

1.4. Por que usar Python


Por que usar a linguagem Python? Primeiramente, por conta de sua simplicidade, o que
reduz o tempo de criação e manutenção de um programa. Outro ponto é que Python supor-
ta módulos e pacotes, o que encoraja a programação modularizada e o reuso de códigos.
Há outros motivos, por exemplo: Python é uma das linguagens que mais tem crescido devi-
do a sua compatibilidade (roda na maioria dos sistemas operacionais) e a sua capacidade
de auxiliar outras linguagens.
Por último, Python tem se tornado popular para análise de dados e conquistou a comuni-
dade científica.

www.grancursosonline.com.br 7
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

1.5. Objetivos da linguagem


Python possui alguns objetivos:

• É uma linguagem de propósito geral para:


– Buscar dados em um banco de dados;
– Ler uma página na internet;
– Exibir graficamente os resultados;
– Criar planilhas;
– Entre outras ações.

• Possui vários módulos, prontos para realizar essas tarefas.

1.6. Onde pode ser usado Python


A linguagem em questão é usada em:

• Desenvolvimento de:
– Aplicações web;
– Aplicações desktop;
– Baseadas em GUI;
– Aplicações para dispositivos móveis.

• Ciência de dados;
• Inteligência Artificial.

1.7. Exemplos de uso


Como exemplo de aplicações feitas em Python, temos: Dropbox, Reddit e Instagram.
Outros exemplos de projetos usando a linguagem são:

• BitTorrent começou como um programa Python;


• NSA (Agência de Segurança Nacional) aplica o Python para análise e criptografia de
inteligência;
• YouTube foi desenvolvido com Python e outras linguagens;
• Google baseou seu sistema de busca em Python.

www.grancursosonline.com.br 8
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

1.8. Mapa mental sobre introdução e conceituação do Python

Figura 1.4. Resumo da conceituação da linguagem Python.

Bom, meu caro(a) aluno(a), com essas informações, já podemos responder várias questões.

DIRETO DO CONCURSO
1. (IFMT/2018/IFMT/INFORMÁTICA/ADAPTADA) Sobre a linguagem Python, julgue o
item abaixo como CERTO ou ERRADO.

Suporta os paradigmas: imperativo, orientado a objetos e funcional.

Certo.
Python é uma linguagem imperativa, orientada a objetos e funcional. Isso torna a questão
totalmente correta.

2. (IFMT/2018/IFMT/INFORMÁTICA/ADAPTADA) Sobre a linguagem Python, julgue o


item abaixo como CERTO ou ERRADO.

A linguagem Python é distribuída sob licença que proíbe sua incorporação em produtos
proprietários.

Errado.
Python é software livre e é distribuído através da licença Python Software Foundation Li-
cense (compatível com a GNU GPL). Isso torna a linguagem gratuita, reutilizável e distribu-
ível até mesmo para software comercial.
Portanto, a licença do Python não proíbe a sua incorporação em produtos proprietários.

www.grancursosonline.com.br 9
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

3. (IFMT/2018/IFMT/INFORMÁTICA/ADAPTADA) Sobre a linguagem Python, julgue o


item abaixo como CERTO ou ERRADO.

Python é um software de código aberto.

Certo.
Python é software livre e é distribuído através da licença Python Software Foundation Li-
cense (compatível com a GNU GPL).

4. (FCC/2012/TRE-CE/TÉCNICO JUDICIÁRIO/PROGRAMAÇÃO DE SISTEMAS/ADAP-


TADA) Sobre a linguagem Python, julgue o item abaixo como CERTO ou ERRADO.

É uma linguagem compilada, ou seja, o código-fonte de um programa é lido pelo com-


pilador, que cria um arquivo binário, executável diretamente pelo hardware.

Errado.
A linguagem Python é uma linguagem interpretada, e não compilada.

5. (CESPE/2013/ANTT/ANALISTA ADMINISTRATIVO/DESENVOLVIMENTO DE SISTE-


MAS DA INFORMAÇÃO) Acerca das linguagens de implementação de regras de negó-
cio, julgue o item que se segue.

O paradigma de orientação a objetos é amplamente utilizado em várias linguagens:


Java é compilada em bytecode e executada em uma máquina virtual (JVM); C++ apre-
senta bom desempenho ao unir características de alto e de baixo níveis; Python/Ruby/
PHP podem ser utilizadas para desenvolvimento web, mas sem aplicações para dispo-
sitivos móveis.

Errado.
O primeiro ponto da questão é sobre o paradigma de orientação a objetos. Python suporta os
conceitos da orientação a objetos. Além dela, temos as linguagens: Java, C++, C# e Ruby.
O outro ponto da questão é o trecho que diz: “Python/Ruby/PHP podem ser utilizadas para
desenvolvimento web, mas sem aplicações para dispositivos móveis.”
Sobre esse trecho, nosso ponto é entender se está errado ou não em relação à linguagem
Python. Meu(minha) caro(a) aluno(a), como estudamos, Python é uma linguagem usada em:

• Desenvolvimento de:
– Aplicações web;
– Aplicações desktop;
– Baseadas em GUI;
– Aplicações para dispositivos móveis.

www.grancursosonline.com.br 10
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

• Ciência de dados;
• Inteligência Artificial.

Com isso, podemos chegar à conclusão de que o trecho está errado, pois afirma que Py-
thon não é usado para desenvolvimento de aplicações para dispositivos móveis. Vimos,
porém, que ele é, sim, usado.

6. (CESPE/2011/CORREIOS/ANALISTA DE CORREIOS/ANALISTA DE SISTEMAS/DE-


SENVOLVIMENTO DE SISTEMAS) Com relação aos sistemas de suporte a decisão e
gestão de conteúdo, julgue o seguinte item.

A linguagem Python e seu interpretador estão disponíveis para as mais diversas pla-
taformas. Para que seja usado em determinado sistema operacional não suportado, é
possível gerar o Python a partir do programa fonte utilizando um compilador C. Nesse
caso, o código fonte é traduzido para o formato bytecode, que é multiplataforma e pode
ser distribuído de forma independente.

Certo.
Concurseiro(a), a questão traz uma possibilidade de usar Python em várias plataformas,
mesmo que um determinado sistema não suporte essa linguagem e seu interpretador.
Revisando: A linguagem Python é interpretada, ou seja, suas instruções são lidas e execu-
tadas por um interpretador.
A informação nova é sobre a possibilidade de rodar código em Python em determinado
sistema operacional não suportado. Para isso, “... é possível gerar o Python a partir do
programa fonte utilizando um compilador C. Nesse caso, o código fonte é traduzido para
o formato bytecode, que é multiplataforma e pode ser distribuído de forma independente”.

7. (CESPE/2010/SERPRO/ANALISTA/SUPORTE TÉCNICO) Acerca das linguagens de


programação, julgue o item subsequente.

Assim como o Perl, o Python e o.bat do DOS, o Shell Script é uma linguagem interpre-
tada, em que o próprio script, escrito em um editor comum, é o arquivo executável.

Certo.
No item 1.1.2, expliquei sobre Python ser uma linguagem de alto nível e interpretada.
Além do Python, temos como exemplos de linguagens interpretadas: BASIC, Perl, PHP,
JavaScript, Lisp, Ruby etc.
C e C++ são compiladas. Java passa por um processo híbrido de compilação e interpretação.

www.grancursosonline.com.br 11
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

2. Sintaxe

2.1. Sintaxe em Python

A indentação refere-se aos espaços no início de uma linha de código. É aplicada ao


código-fonte de um programa para ressaltar ou definir a estrutura do algoritmo.

Exemplo 1:

O PULO DO GATO
Para muitas linguagens de programação, a indentação é usada apenas para uma boa
legibilidade, mas, para o Python, é de muita importância: Python usa a indentação para in-
dicar (delimitar) um bloco de código. Se a indentação não for feita de forma correta em um
código em Python, ela não será executada. Apenas com essa informação, podemos matar
várias questões de concursos!
Veremos alguns exemplos corretos e outros errados, para entendermos o uso da indenta-
ção em Python.

Exemplo 2:

No exemplo 2, temos uma estrutura de condição if com bloco de uma linha apenas. O in-
terpretador irá executar o código tranquilamente.

www.grancursosonline.com.br 12
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Exemplo 3:

Acima, temos o mesmo código, mas sem a indentação para indicar o bloco de código da
estrutura if. Nesse caso, o código não será executado e haverá um erro sobre a espera de
uma indentação.

Exemplo 4:

No exemplo 4, temos uma situação interessante: o bloco da segunda estrutura if está mais
recuado do que o bloco da primeira estrutura if. Porém, o que importa é que houve a inden-
tação para delimitar o bloco de cada estrutura.

Exemplo 5:

No quinto exemplo, o código contém um erro de indentação e não será executado, pois
há duas linhas com indentações diferentes em uma mesma estrutura. Se as duas linhas
participam do mesmo bloco de código, elas devem estar indentadas de forma igual, não
importando a quantidade de recuo.

www.grancursosonline.com.br 13
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

DIRETO DO CONCURSO
1. (IFMT/2018/IFMT/INFORMÁTICA/ADAPTADA) Sobre a linguagem Python, julgue o
item a seguir como CERTO ou ERRADO.

Utiliza indentação para delimitar início e fim de blocos.

Certo.
A indentação para o Python é de muita importância: Python a usa para indicar (delimitar)
um bloco de código.

2. (CETAP/2010/AL-RR/ANALISTA DE SISTEMAS) Sobre a linguagem de programação


PYTHON, julgue o item a seguir como CERTO ou ERRADO.

A separação de blocos de código em Phyton é feita utilizando a indentação de código.

Certo.
Novamente, há uma questão que trata da indentação em Python para delimitação de código.

3. (CESPE/2018/POLÍCIA FEDERAL/AGENTE DE POLÍCIA FEDERAL) Julgue o próximo


item, relativo a noções de programação Python e R.

Considere o programa a seguir, na linguagem Python.

if 5 > 2
{
print(“True!”)
}

A sintaxe do programa está correta e, quando executado, ele apresentará o seguinte


resultado.

True!

Errado.
Sabendo que a delimitação de bloco de código para uma estrutura de controle em Python
é feita com indentação, podemos, de cara, marcar que a questão está totalmente errada.
Nem precisamos saber sobre a estrutura de condição if. Apenas analisando a sintaxe, po-
demos responder a questão.

www.grancursosonline.com.br 14
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Vamos corrigir o código para Python:

O código correto imprime True! se o valor 5 for maior que 2.


Concluindo o comentário: A sintaxe do programa na questão não está correta em Python,
e o programa não será executado.

4. (CESPE/2018/POLÍCIA FEDERAL/AGENTE DE POLÍCIA FEDERAL) Julgue o próximo


item, relativo a noções de programação Python e R.

Considere o programa a seguir, na linguagem Python.


letras == [“P”, “F”]

for x in letras
{
print(x)
}

A sintaxe do programa está correta e, quando executado, ele apresentará o seguinte


resultado.
PF

Errado.
Novamente há uma questão que, sabendo que a delimitação de bloco de código para uma
estrutura de controle em Python é feita com indentação, podemos, de cara, marcar que
a questão está totalmente errada. E, no caso do código da questão, não precisamos sa-
ber sobre a estrutura de repetição for. Apenas analisando a sintaxe, podemos responder
a questão.
Vamos corrigir o código para Python:

www.grancursosonline.com.br 15
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

A variável letras é uma lista contendo dois elementos string: “P” e “F”.
A estrutura de repetição for vai percorrer a lista, imprimindo o valor de cada elemento.
Concluindo o comentário: A sintaxe do programa na questão não está correta em Python,
e o programa não será executado.

5. (CESPE/2010/SERPRO/ANALISTA/REDES) Julgue o item que se segue, a respeito da


linguagem Python, versão 3.1.

As terminações de linha em ASCII podem ser usadas em arquivos fonte na linguagem


Python, da mesma maneira e independentemente da plataforma.

Certo.
ASCII (American Standard Code for Information Interchange ou Código Padrão Americano
para o Intercâmbio de Informação) é um código binário que codifica um conjunto de 128
sinais: 95 sinais gráficos (letras do alfabeto latino, algarismos arábicos, sinais de pontua-
ção e sinais matemáticos) e 33 sinais de controle, utilizando 7 bits para representar todos
os seus símbolos.
Nos códigos em Python, as terminações de linha em ASCII podem ser usadas da mesma
maneira e independentemente da plataforma.

6. (CESPE/2008/SERPRO/ANALISTA/DESENVOLVIMENTO DE SISTEMAS) Com rela-


ção às linguagens, julgue os itens a seguir.

Python é uma linguagem livre de alto nível, orientada a objetos e de difícil leitura, pois
não permite identação de linhas de código.

Errado.
Python:

• É uma linguagem livre:


– De alto nível;
– Orientada a objetos;
– De fácil leitura.

• Exige indentação de linhas de código.

Lembre-se: Para Python, a indentação é de extrema importância.

www.grancursosonline.com.br 16
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

2.2. Comentários de código

Os comentários na linguagem Python são indicados pelo caractere cerquilha (#).


Podem ser usados para explicar um código, tornar o código mais legível ou evitar a execu-
ção de linhas específicas de código ao testá-lo.

Exemplo:

DIRETO DO CONCURSO
1. (QUADRIX/2019/CREA-GO/ANALISTA-TI)
1) #-*- coding: latin1 -*-
2) # Conjuntos de dados
3) s1 = set(range(3))
4) s2 = set(range(10, 7, -1))
5) s3 = set(range(2, 10, 2))
6) # Exibe os dados
7) print ‘s1:’, s1, ‘\ns2:’, s2, ‘\ns3:’, s3
8) # Operação 1
9) s1s2 = s1.union(s2)
10) print ‘União de s1 e s2:’, s1s2
11) # Operação 2
12) print ‘Diferença com s3:’, s1s2.difference(s3)
13) # Operação 3
14) print ‘Interseção com s3:’, s1s2.intersection(s3)
15) # Operação 4
16) if s1.issuperset([1, 2]):
17) print ‘s1 inclui 1 e 2’
18) # Operação 5
19) if s1.isdisjoint(s2):
20) print ‘s1 e s2’

www.grancursosonline.com.br 17
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Com relação à execução do código acima, da linguagem de programação Python, jul-


gue o item.
O caractere #, usado na linha 2, indica um comentário.

Certo.
A cerquilha é usada para comentar códigos na linguagem em Python.

3. Variáveis

3.1. Introdução

Meu(minha) consagrado(a), os programas são compostos por dados (variáveis) e


códigos (instruções).
As variáveis e as constantes são recipientes (endereços de memória) que armaze-
nam informações de um determinado tipo, para que seja possível a manipulação delas
pelos programas.

Destaco a diferença entre variáveis e constantes:

• As informações contidas nas variáveis podem ser modificadas no decorrer do programa;


• Enquanto as informações relacionadas a constantes não podem.

Faremos uma analogia entre variáveis e constantes com garagens de carros (figura 3.1):

• Os dados são os carros;


• Tanto as variáveis quanto as constantes são as garagens:
– As variáveis são garagens com rotatividade de carros de mesma marca e de
mesmo modelo;
– Nem sempre teremos o mesmo carro estacionado;
– As constantes, por sua vez, são garagens de carros de um colecionador, em que
cada garagem recebe um carro de mesma marca e de mesmo modelo;
– Uma vez que um carro está estacionado na garagem, ele não sai mais.

• O nome das variáveis e das constantes é a identificação das garagens;


• O tipo das variáveis e das constantes define qual a marca e qual o modelo de carros as
garagens podem receber.

www.grancursosonline.com.br 18
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Figura 3.1: Analogia entre variáveis/constantes e garagens de carros.

3.2. Variáveis em Python

As variáveis na linguagem Python não possuem um comando para serem declara-


das. Elas são criadas no momento em que se atribui um valor a elas.

Exemplo 1:

As variáveis em Python também não precisam ser declaradas com nenhum tipo em par-
ticular. Podem até mudar de tipo depois de terem sido definidas:

Exemplo 2:

www.grancursosonline.com.br 19
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

3.3. Regras de nomes de variáveis em Python

As variáveis em Python são case-sensitive, ou seja, uma variável com o nome xy é


diferente de outra com o nome XY.
São sequências de tamanho ilimitado, contendo apenas caracteres alfanuméricos
(A-z 0-9) e sublinhados (_).
Elas podem iniciar com letra (A-z) ou sublinhado (_), mas não deve iniciar com
números (0-9).
As variáveis em Python não podem ter espaço em branco e não podem ser palavra-chave
ou palavra reservada que faz parte da própria sintaxe da linguagem, tais como, print, for, if etc.

Na tabela 1, temos a lista das palavras-chave da linguagem Python.

and as assert break


class continue def del
elif else except False
finally for from global
if import in is
lambda None nonlocal not
or pass raise return
True try while with
yield
Tabela 1: Palavras-chave na linguagem Python.

Exemplos de nomes de variáveis corretos:

Exemplos de nomes de variáveis incorretos:

Beleza! Agora vamos fazer algumas questões para testarmos o que estudamos.

www.grancursosonline.com.br 20
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

DIRETO DO CONCURSO
1. (MS CONCURSOS/2016/CRECI 1º REGIÃO-RJ/ANALISTA DE TI) Qual alternativa
representa a declaração de uma variável do tipo texto, na linguagem de programa-
ção Python?
a. var valor = 3;
b. boolean inicio = falso;
c. textp = “texto de exemplo”;
d. int i = 1;

Letra c.
Não há um comando (por exemplo, var) nem há a definição de um tipo para criação de
variáveis em Python.
Então temos:
a. Errada. Forma correta: valor = 3
b. Errada. Forma correta: inicio = False
c. Certa.
d. Errada. Forma correta: i = 1

2. (IFB/2017/IFB/PROFESSOR/INFORMÁTICA/DESENVOLVIMENTO DE SISTEMAS/
ADAPTADA) Com relação a Algoritmos e Estrutura de Dados, julgue o item seguinte
como CERTO ou ERRADO.

A declaração de variáveis é algo obrigatório em Python.

Errado.
A declaração de variáveis não é obrigatória em Python. Basta citar o nome de uma variável
e um valor inicial para criá-la.

www.grancursosonline.com.br 21
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

4. Tipos de dados

4.1. Linguagens estática e dinamicamente tipadas

Linguagens estaticamente tipadas são linguagens em que o tipo de uma variável é


conhecido em tempo de compilação:
// A variável x abaixo é do tipo int em Java:
int x = 15;

Linguagens dinamicamente tipadas são linguagens em que o tipo de uma vari-


ável pode ser alterado durante a execução do código, ou seja, é conhecido em tempo
de execução:
# A variável x abaixo é do tipo int em Python:
x = 15
Conclusão: Python é dinamicamente tipada!

4.2. Linguagens fraca e fortemente tipadas

Linguagens fracamente tipadas são linguagens em que se pode fazer operações


sem a necessidade da realização de cast:
Código:
x = ‘11’
print(1 + x)
Resultado da execução:
111

No código acima, há um exemplo de linguagem que tem uma função print que faz um
cast implícito para que o primeiro operando numérico 1 seja ser concatenado com o segundo
operando string.

ATENÇÃO
Muitas vezes, há uma confusão entre os conceitos de uma linguagem ser fracamente
tipada com uma linguagem ser estaticamente tipada. São conceitos diferentes.
Linguagens fortemente tipadas são linguagens em que se deve fazer operações com a
necessidade da realização de cast.

www.grancursosonline.com.br 22
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Exemplo:

No código anterior, há um exemplo de linguagem que tem uma função print que não faz
um cast implícito. Em Python, não há cast implícito, o que faz com que ela seja classificada
como fortemente tipada.

Para corrigirmos o erro, temos que fazer um cast explícito:

No primeiro print, transformamos o valor da variável x (string) em um número inteiro. Então


houve a operação de adição (1 + 11 = 12).
No segundo print, transformamos o valor inteiro 1 em string. Então houve a concatenação
de string (“1” + “11” = “111”).
Conclusão: Python e é fortemente tipada!

4.3. Categorias da linguagem Python

Figura 4.1: Categorias da linguagem Python.

www.grancursosonline.com.br 23
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

O PULO DO GATO
Python é:

• Dinamicamente tipada;
– É uma linguagem em que o tipo de uma variável pode ser alterado durante a execu-
ção do código.

• Fortemente tipada;
– É uma linguagem em que se deve fazer operações com a necessidade da realiza-
ção de cast.

Com essa informação, podemos matar várias questões.


4.4. Categorias de tipos de dados da linguagem Python
Irei mostrar apenas quais são os principais tipos de dados da linguagem Python, com
alguns exemplos de cada tipo. Na segunda parte do nosso curso, vamos estudá-los com
mais detalhes.

Figura 4.2: Categorias de tipos da linguagem Python.

DIRETO DO CONCURSO
1. (UFPEL-CES/2015/UFPEL/TÉCNICO EM TECNOLOGIA DA INFORMAÇÃO/ADAPTA-
DA) Em relação às características da linguagem Python, julgue o item a seguir como
CERTO ou ERRADO.

É uma linguagem fortemente tipada, ou seja, é preciso declarar variáveis e seus tipos.

Errado.
Python, como vimos, é uma linguagem fortemente tipada. Porém, o conceito da letra trata
de uma linguagem estaticamente tipada.

www.grancursosonline.com.br 24
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Revisando:
Python é:

• Dinamicamente tipada;
– É uma linguagem em que o tipo de uma variável pode ser alterado durante a execu-
ção do código.

• Fortemente tipada;
– É uma linguagem em que se deve fazer operações com a necessidade da realiza-
ção de cast.

2. (MS CONCURSOS/2016/CRECI 1ª REGIÃO-RJ/ANALISTA DE TI) Qual alternativa


representa a declaração de uma variável do tipo texto, na linguagem de programa-
ção Python?
a. var valor = 3;
b. boolean inicio = falso;
c. textp = “texto de exemplo”;
d. int i = 1;

Letra c.
Eu trouxe essa questão de novo justamente para explicar como Python pode ser dinami-
camente tipada.
Revisando: Não há um comando (por exemplo, var) nem há a definição de um tipo para
criação de variáveis em Python, e esta linguagem é dinamicamente tipada, ou seja, o tipo
de uma variável pode ser alterado durante a execução do código.
Voltando à questão, temos:
a. Errada. Forma correta: valor = 3
b. Errada. Forma correta: inicio = False
c. Certa.
d. Errada. Forma correta: i = 1

3. (IF SUL RIO-GRANDENSE/2019/IF SUL RIO-GRANDENSE/ANALISTA DE TECNO-


LOGIA DA INFORMAÇÃO/ADAPTADA) Em relação às características da linguagem
Python, julgue o item a seguir como CERTO ou ERRADO.

Tem tipagem fraca e dinâmica.

Errado.
Python é:

www.grancursosonline.com.br 25
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

• Dinamicamente tipada;
– É uma linguagem em que o tipo de uma variável pode ser alterado durante a execu-
ção do código.

• Fortemente tipada;
– É uma linguagem em que se deve fazer operações com a necessidade da realiza-
ção de cast.

Python é dinamicamente tipada, porém é fortemente tipada. É muito importante ter isso
nem mente para poder responder questões sobre esse tópico.
Muitas vezes, há uma confusão entre os conceitos de uma linguagem ser fracamente tipa-
da com uma linguagem ser estaticamente tipada. São conceitos diferentes.

4. (IFMT/2018/IFMT/INFORMÁTICA/ADAPTADA) Sobre a linguagem Python, julgue o


item a seguir como CERTO ou ERRADO.

Python é uma linguagem de tipagem dinâmica e forte.

Certo.
Questão mais do que certa. Não é, meu(minha) caro(a) aluno(a)!?

5. (IFCE/2017/IFCE/TÉCNICO DE LABORATÓRIO/INFORMÁTICA/ADAPTADA) Julgue a


afirmação sobre os paradigmas de linguagens de programação.

Python, Ruby e Java são linguagens de programação interpretada multiparadigma, de


tipagem dinâmica e forte.

Errado.
Java é uma linguagem de tipagem:

• estática;
• forte.

Python é uma linguagem de tipagem:

• dinâmica;
• forte.

A questão “colocou na mesma cesta” Python e Java. As duas são fortemente tipadas, mas
Python é dinamicamente tipada e Java, estaticamente tipada.

www.grancursosonline.com.br 26
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

6. (FCC/2012/TRE-CE/TÉCNICO JUDICIÁRIO/PROGRAMAÇÃO DE SISTEMAS/ADAP-


TADA) Sobre Python, julgue o item a seguir como CERTO ou ERRADO.

É uma linguagem fortemente tipada, ou seja, é preciso declarar variáveis e seus tipos.

Errado.
Já vimos esse texto antes, não? Vimos sim! Python, como vimos, é uma linguagem for-
temente tipada. Porém, o conceito da letra trata de uma linguagem estaticamente tipada.

7. (CESPE/2010/SERPRO/ANALISTA/SUPORTE TÉCNICO) Acerca das linguagens de


programação, julgue o item subsequente.

As linguagens Perl e Python são dinamicamente tipadas, ou seja, o tipo da variável é


definido em tempo de execução. As linguagens C e Java são estaticamente tipadas, ou
seja, o tipo de variável é definido em tempo de compilação.

Certo.
A questão atual separou as linguagens segundo suas categorias.
Para concursos, temos que ter em mente que:

• Java é uma linguagem de tipagem:


– estática;
– forte.

• Python é uma linguagem de tipagem:


– dinâmica;
– forte.

As duas são fortemente tipadas, mas Python é dinamicamente tipada e Java, estatica-
mente tipada.

8. (CCV-UFS/2014/UFS/TÉCNICO DE TECNOLOGIA DA INFORMAÇÃO/ ADAPTADA)


Sobre a linguagem Python, julgue o item a seguir como CERTO ou ERRADO.

É uma linguagem que possui tipagem estática.

Errado.
Python é:

• dinamicamente tipada;
• fortemente tipada.

www.grancursosonline.com.br 27
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

5. Expressões, instruções e blocos

As expressões são construções feitas de variáveis, operadores e invocações de méto-


dos. Elas retornam um valor único. O tipo do valor retornado por elas depende dos elementos
utilizados.

Exemplos de expressões:

As instruções, por sua vez, também chamadas de comandos ou declarações, são


unidades de código que o Python pode executar e tem um efeito, tais como:

• criar uma variável;


• exibir um valor.

As instruções são unidades completas de execução e formadas por expressões.


Podemos ter instruções de declaração de variáveis ou instruções de controle de fluxo.
Os blocos são grupos de zero ou mais instruções. O início e o fim de um bloco em
Python são delimitados por indentação.

Exemplo:

www.grancursosonline.com.br 28
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Figura 5.1: Relação entre expressões, instruções e blocos.

DIRETO DO CONCURSO
1. (QUADRIX/2019/CRA-PR/ANALISTA SISTEMA I) Julgue o item quanto à programação
orientada a objetos e à linguagem de programação Python.

Na estrutura de um programa em Python, as instruções contêm expressões que, por


sua vez, criam e processam objetos.

Certo.
Como vimos na figura 5.1, as instruções contêm expressões. Nas instruções formadas por
expressões, podemos ter a criação de variáveis e utilização delas.

2. (IFMT/2018/IFMT/INFORMÁTICA/ADAPTADA) Sobre a linguagem Python, é INCOR-


RETO afirmar que: (Marque o texto da letra como CERTO ou ERRADO)
b. Utiliza indentação para delimitar início e fim de blocos.

Certo.
Estou trazendo esta questão novamente porque ela cita o bloco em Python. Os blocos são
grupos de zero ou mais instruções. O início e o fim de um bloco em Python são delimitados
por indentação.

www.grancursosonline.com.br 29
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

6. Tipos de dados em Python

6.1. Visão geral

Figura 6.1: Tipos de dados em Python.

Exemplo:

6.2. Tipos numéricos

6.2.1. Tipos numéricos em Python

Figura 6.2: Tipos numéricos em Python.

www.grancursosonline.com.br 30
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Exemplo:

DIRETO DO CONCURSO
1. (MS CONCURSOS/2018/GHC/RS/PROGRAMADOR) Quais são os 03 tipos de núme-
ros embutidos no Python 3?
a. int, float, char.
b. int, float, complex.
c. char, complex, ASCII.
d. signed, int, ASCII.
e. char, signed, float.

Letra b.
Tipos numéricos em Python:

• int;
• float;
• complex.

A única alternativa que trouxe os três tipos numéricos em Python foi a letra B.

6.2.2. Tipo int

O tipo int vem de Integer. É o tipo que representa os números inteiros:

• Positivos ou negativos;
• Sem decimais;
• De comprimento ilimitado.

www.grancursosonline.com.br 31
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Exemplo:

6.2.3. Tipo float

É o tipo que representa os números de ponto flutuante em Python:

• Positivos ou negativos;
• Que contém um ou mais decimais;
• De comprimento ilimitado.

Exemplo:

O tipo float também pode representar números científicos, com um “e” para indicar a
potência de 10.

Exemplo:

6.2.4. Tipo complex

Representa os números complexos em Python, que são escritos com um “j” como
parte imaginária.

www.grancursosonline.com.br 32
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Exemplo:

6.3. Tipo de texto

6.3.1. Strings

São sequências de caracteres imutáveis alocadas dinamicamente e sem restrição


de tamanho.

Podem estar entre:

• Aspas simples: ‘Rogerão’; ou


• Aspas duplas: “Rogerão”.

Em Python, podemos usar três aspas para strings de múltiplas linhas:

As strings são como um array de bytes. Cada posição desse array de bytes repre-
senta um caractere Unicode. Os colchetes podem ser usados para acessar os elementos
de uma string.

www.grancursosonline.com.br 33
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

ATENÇÃO
Para Python, a primeira posição de uma string é o valor 0. Estudaremos mais sobre
strings na sessão Strings em Python, nesta aula.

Exemplo:

6.3.2. Tipo de texto em Python

Em Python, o tipo de texto em Python é str.

ATENÇÃO
Em Python, não há um tipo de dados de caractere. Um único caractere é simples-
mente uma string com comprimento 1.

Exemplo:

6.4. Tipo booleano

6.4.1. Valores booleanos

Pode-se avaliar qualquer expressão em Python para obter uma das duas respostas:

• True;
• False.

www.grancursosonline.com.br 34
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

ATENÇÃO
Em Python, os valores booleanos começam com letra maiúscula (True e False).

Exemplo:

6.4.2. Tipo boolean em Python

Em Python, o tipo booleano em Python é bool.

Exemplo:

6.4.3. Avaliando valores e variáveis

A função bool() avalia qualquer valor ou variável e retorna True ou False.

Exemplos de avaliação de valores:

www.grancursosonline.com.br 35
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Exemplos de avaliação de variáveis:

Se um valor tiver algum conteúdo (ou uma variável que contiver esse valor), será ava-
liado como como True, por exemplo:

• Qualquer string é True;


– Exceto strings vazias.

• Qualquer número é verdadeiro;


– Exceto 0.

• Qualquer lista, tupla, set ou dicionário são True;


– Exceto os vazios.

ATENÇÃO
Não confundir o tipo bool com a função bool(). O tipo é em relação ao dado de uma
variável. Já a função bool() é usada para avaliar se um valor ou variável pode retor-
nar True ou False.

6.5. Conversões e casting

6.5.1. Conversões de tipos de dados

A conversão de tipo de dados acontece quando um tipo é convertido em outro. Em


Python, podem acontecer dois tipos de conversão:

• implícito;
• explícito.

www.grancursosonline.com.br 36
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

A conversão implícita acontece quando um tipo de dados é convertido automatica-


mente para outro tipo, por exemplo, quando um tipo int é convertido para um tipo maior,
como float.

Exemplo:

Veja, meu(minha) caro(a), que a variável x é do tipo int, a variável y é do tipo float. A
variável z, no caso, recebe a soma de x mais y. Para acontecer isso, a linguagem Python
sempre converte tipos de dados menores (no exemplo, o tipo int) em tipos de dados maiores
(no exemplo, o tipo float) para evitar a perda de dados.
No final, é do tipo float o valor da soma de um número tipo int mais um número do tipo
float. Por isso, a variável z é do tipo float.
Agora, veja o que acontece se fizermos uma operação entre variável do tipo int com
uma variável do tipo str:

No exemplo acima, tentamos fazer uma operação com as variáveis x (do tipo int) e y (do
tipo str). Porém, Python não foi capaz de fazer a conversão implícita nessa situação.
Nesse caso, é necessário fazer uma conversão explícita. Nesse tipo de conversão, o
programador converte o tipo de dados de um objeto no tipo de dados necessário. Para isso,
a linguagem Python disponibiliza algumas funções, tais como:

• int()
• float()
• complex()
• str()

www.grancursosonline.com.br 37
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

A conversão explícita também é conhecida como casting de tipos de dados, pois o


programador converte (altera) o tipo de dados dos objetos.

Sintaxe:
<tipo de dados necessário> (expressão)

Então, corrigindo o exemplo anterior, temos:

Agora a variável y receber o valor string “10” convertido explicitamente para o tipo int (y
= int(“10”)). A variável z, então, pode receber a operação entre duas variáveis do tipo int (no
caso, a operação de soma).

Porém podemos corrigir de uma outra forma:

No exemplo acima, a variável x recebe o valor inteiro 10 convertido explicitamente para


o tipo str (x = str(10)). A variável z, então, pode receber a operação entre duas variáveis do
tipo str (no caso, a operação de concatenação).

www.grancursosonline.com.br 38
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Figura 6.3: Funções para conversões de tipos de dados.

A função int() constrói um número inteiro a partir de:

• Um literal inteiro;
• Um literal de ponto flutuante;
– Arredondando para baixo, para o número inteiro anterior.

• Um literal de string;
– Desde que a string represente um número inteiro.

Exemplo:

Sobre os exemplos acima, temos algumas observações:

• Na linha 4, o valor float 1.84 foi arredondado para baixo;


– O que fez a variável x receber o valor int 1.

• Não há possibilidade do tipo complexo para o tipo int;


– O que gerou erro na linha 10.

A função float() constrói um número de ponto flutuante a partir de:

• Um literal inteiro;
• Um literal de ponto flutuante; ou
• Um literal de string;
– Desde que a string represente um número de ponto flutuante ou um inteiro.

www.grancursosonline.com.br 39
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Exemplo:

Sobre os exemplos do uso da função float, temos algumas observações:

• Na linha 1, o valor int 15 foi convertido para o valor de ponto flutuante 15.0;
• Na linha 7, a string “3”, que representaria um valor int, foi convertido para o valor de
ponto flutuante 3.0;
• Não há possibilidade do tipo complexo para o tipo float;
– O que gerou erro na linha 13.

A função complex() constrói um número complexo a partir de:

• Um literal inteiro;
• Um literal de ponto flutuante; ou
• Um literal de string;
– Desde que a string represente um número de ponto flutuante ou um inteiro.

Exemplo:

www.grancursosonline.com.br 40
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

A função str() constrói uma string a partir de uma ampla variedade de tipos de dados,
incluindo:

• Literais de string;
• Literais inteiros; ou
• Literais de ponto flutuante.

Exemplo:

DIRETO DO CONCURSO
1. (QUADRIX/2019/CREA-TO/ANALISTA DE SISTEMAS) Quanto aos conceitos e às téc-
nicas de programação de computadores, julgue o item.

Em um programa escrito em linguagem Python, o comando de atribuição x = int(5.9)


fará com que a variável x passe a armazenar um valor inteiro igual a 6.

Errado.
Vimos que a função int() constrói um número inteiro a partir de um literal de ponto flutuante,
e o arredondamento acontece para baixo, para o número inteiro anterior:

Então o erro da questão é: o valor seria 5 no resultado da função int() aplicada no valor de
ponto flutuante 5.9.

www.grancursosonline.com.br 41
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

2. (CESPE/CEBRASPE/2013/MPOG/TECNOLOGIA DA INFORMAÇÃO) A expressivida-


de do código é uma característica importante no desenvolvimento e manutenção de um
software. Python e Ruby são exemplos de linguagens que apresentam essa qualidade.
Acerca dessas linguagens, julgue os itens subsequentes.

Em Python, o comando int(“1”) cria um objeto do tipo int, que recebe 1 como parâmetro
no seu construtor.

Certo.
Outra questão sobre a função int(). Neste caso, temos a conversão de um valor string “1”
para um valor inteiro 1.

7. Strings em Python

7.1. Conceituação

São sequências de caracteres imutáveis alocadas dinamicamente e sem restrição


de tamanho.

Podem estar entre:

• Aspas simples: ‘Rogerão’; ou


• Aspas duplas: “Rogerão”.

Em Python, podemos usar três aspas para strings de múltiplas linhas:

www.grancursosonline.com.br 42
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

DIRETO DO CONCURSO
1. (QUADRIX/2019/CRA-PR/ANALISTA SISTEMA I) Julgue o item quanto à programação
orientada a objetos e à linguagem de programação Python.

Um recurso bastante útil da Python consiste no tratamento posicional das strings. Elas
são consideradas como sequências mutáveis e podem ter sua ordem (sequência) al-
terada da esquerda para a direita ou vice-versa, dependendo da função do programa.

Errado.
Uma string é uma sequência imutável, alocada dinamicamente e sem restrição de tamanho.

2. (UFPEL-CES/2015/UFPEL/TÉCNICO EM TECNOLOGIA DA INFORMAÇÃO/ADAPTA-


DA) Em relação às características da linguagem Python, julgue o item a seguir como
CERTO ou ERRADO.

Uma String Python é uma sequência imutável, alocada estaticamente, com restrição
de tamanho.

Errado.
Uma string é uma sequência imutável, alocada dinamicamente e sem restrição de tamanho.

3. (MS CONCURSOS/2018/GHC/RS/PROGRAMADOR) Qual é o formato principal de de-


clarar e formatar string no Python 3?
a. Aspas simples e Aspas duplas.
b. Aspas simples e Parênteses.
c. Aspas duplas e Hashtags.
d. Aspas duplas e Parênteses.
e. Hashtags e Parênteses.

Letra a.
Strings são sequências de caracteres imutáveis alocadas dinamicamente e sem restrição
de tamanho.

Podem estar entre:

• Aspas simples: ‘Rogerão’; ou


• Aspas duplas: “Rogerão”.

Em Python, podemos usar três aspas para strings de múltiplas linhas.

www.grancursosonline.com.br 43
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

4. (FCC/2012/TER-CE/TÉCNICO JUDICIÁRIO/PROGRAMAÇÃO DE SISTEMAS/ADAP-


TADA) Sobre Python, julgue o item a seguir como CERTO ou ERRADO.

Uma String Python é uma sequência imutável, alocada estaticamente, com restrição
de tamanho.

Errado.
A questão é idêntica ao que vimos acima, sendo que esta da FCC é de 2012 e a da UFPe-
l-CESé, de 2015.
Novamente explicando: Uma string é uma sequência imutável, alocada dinamicamente e
sem restrição de tamanho.

7.2. Imprimindo uma string

Para imprimir uma string, podemos usar a função print() (print(string)):

7.3. Acessando caracteres de uma string

As strings são como um array de bytes. Cada posição desse array de bytes repre-
senta um caractere Unicode. Os colchetes podem ser usados para acessar os elementos
de uma string.

ATENÇÃO
Para Python, a primeira posição de uma string é o valor 0.
Para acessar um caractere de uma string, utiliza-se a indexação numérica (string[n]), in-
formando qual a posição da string (n):

Pode-se também usar valores negativos para representar os índices de uma string. Para
entendermos como isso acontece, o último caractere de uma string fica na posição -1, o
penúltimo fica na posição -2, o antepenúltimo, na posição -3 e assim por diante.

www.grancursosonline.com.br 44
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Exemplo:

ATENÇÃO
Ao acessar um caractere informando um índice que não se encontra na string, resul-
tará em um erro.

Exemplo:

No exemplo acima, os índices da string vão de 0 a 13. Então, ao informar a posição 20,
gerou-se um erro de índice fora da gama de índices da string.

Por último, pode-se acessar cada caractere de uma string utilizando uma estrutura de
repetição for:

ATENÇÃO
Estudaremos as estruturas de controle (de condição e de repetição) na próxima aula.

www.grancursosonline.com.br 45
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

7.4. Fatiando uma string

Podemos também acessar um intervalo de uma string (string[início:fim]), informando


o índice inicial (início) e o índice final de uma string (fim, mas ele não é incluído).

Exemplo:

No exemplo acima, temos dois fatiamentos:

• No primeiro fatiamento, lemos da seguinte forma: traga o intervalo (trecho) da string


da posição 0 (primeiro índice informado) até a posição 6 (posição anterior ao segundo
índice informado);
• No segundo fatiamento: traga o intervalo (trecho) da string da posição 8 (primeiro índice
informado) até a posição 13 (posição anterior ao segundo índice informado).

O PULO DO GATO
Essa operação de retornar um intervalo de uma string é chamada de fatiamento de strings
(slicing strings). O fatiamento de strings é bastante cobrado em questões de concursos
sobre strings em Python.

ATENÇÃO
O fatiamento de strings não afeta a string original. Quando usamos essa operação, o que
é retornado é um trecho da string original. Veja o exemplo abaixo para entender melhor.

Exemplo:

www.grancursosonline.com.br 46
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Veremos mais exemplos sobre fatiamento de strings, para que você, meu(minha) preza-
do(a) aluno(a), possa entender como funciona a operação em várias situações.

Podemos fatiar uma string, omitindo o índice inicial. Dessa forma, é como se o intervalo
começasse do primeiro caractere:

Veja que x[:7] é equivalente a x[0:7].


Da mesma forma que podemos omitir o índice inicial, podemos omitir o índice final:

Veja que x[8:] é equivalente a x[8:14], ou seja, ao omitirmos o índice final, é como se fati-
ássemos a string a partir do índice inicial informado até o final da string.
Além da omissão do índice inicial e do índice final, podemos omitir os dois ao mesmo tem-
po. Quando isso acontece, o que é retornado é a string completa, pois não houve parâme-
tros de fatiamento.

Exemplo:

Podemos também usar valores negativos para representar os índices do fatiamento. Para
entendermos como isso acontece, o último caractere fica na posição -1, o penúltimo fica na
posição -2, o antepenúltimo, na posição -3 e assim por diante.

www.grancursosonline.com.br 47
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Exemplo:

Podemos ter um terceiro parâmetro para o fatiamento: passo (string[início:fim:passo]). Ele


determina o incremento entre cada índice para o fatiamento. Ele é opcional. Quando não
citado, então assume-se o valor 1.

Exemplo:

Quando se usa valores negativos para o parâmetro passo, o fatiamento vem de for-
ma inversa.

Exemplo:

www.grancursosonline.com.br 48
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Por último, temos o seguinte:

• Se o índice de início for maior que o índice final e o passo for positivo:
– Então não é retornado nada.

• Se o índice de início for menor que o índice final e o passo for negativo:
– Então não é retornado nada.

Exemplo:

DIRETO DO CONCURSO
1. (COVEST/COPSET/2019/UFPE/ANALISTA DE TECNOLOGIA DA INFORMAÇÃO/SIS-
TEMAS) Considere uma String, que armazena o valor “ALO MUNDO”. Utilizando Java
e Python, respectivamente, a alternativa com as instruções que exibiriam a substring
“MU” seria:
a. Java: s.substring(4,6)
Python: s.substring(5,7)
b. Java: s[5,6]
Python: s[5:6]
c. Java: s.substring(4,6)
Python: s[-5:-3]
d. Java: s.substring(-4,-3)
Python: s[5:6]
e. Java: s.substring(4,6)
Python: s.substr(4,6)

Letra c.
Focando apenas na linguagem Python, para fazemos o fatiamento da string “ALO MUN-
DO”, a fim de trazer o trecho “MU”, existem duas formas: usando índices positivos ou
negativos.

www.grancursosonline.com.br 49
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Com isso, de acordo com o código, o gabarito é a letra c, pois foi a única alternativa que
trouxe o código correto em Python: s[-5: -3].

Comentando todas as letras:


a. Errada. Não existe o método substring em Python (s.substring(5,7)).
b. Errada. O código em Python da letra (s[5:6]) retorna o caractere “U”.
c. Certa. O código em Python da letra (s[-5:-3]) retorna o caractere “MU”.
d. Errada. O código em Python da letra (s[5:6]) retorna o caractere “U”.
e. Errada. Não existe o método substr em Python (s.substr(4,6)).

2. (IF SUL RIO-GRANDENSE/2019/IF SUL RIO-GRANDENSE/ANALISTA DE TECNOLO-


GIA DA INFORMAÇÃO) Considerando a variável s = ‘ IFSUL’, utilizando a linguagem
Python, qual a instrução que exibe ‘SU’?
a. print (s[-3:-1])
b. print (s[3:4])
c. print (s.substr(3,4))
d. print (s[-3:-4])

Letra a.
Para retornar o trecho “SU” da string “ IFSUL” (sendo que o primeiro caractere é um espaço
em branco, podemos fazer das seguintes formas:

Comentando todas as letras:


a. Certa. O código em Python da letra (s[-3:-1]) retorna o caractere “SU”.
b. Errada. O código em Python da letra (s[3:4]) retorna o caractere “S”.

www.grancursosonline.com.br 50
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

c. Errada. Não existe o método substr em Python (s.substr(3,4)).


d. Errada. O código em Python da letra (s[-3:-4]) não retorna nada, pois o valor do segundo
índice é menor que o primeiro.

7.5. Verificando se uma string se encontra ou não em outra

O operador in também pode ser usado para verificar se uma string se encontra em
outra (if substring in string):

Nesse caso, será impressa a frase porque a string “Rogerão” está na string original
“Rogerão Araújo”. Já a frase da string “Kal-El” não será impressa, pois essa string não se
encontra na string original da variável x.

Podemos usar os operadores not in para verificar se uma string não se encontra em
outra (if substring not in string):

Nesse caso, será impressa a frase porque a string “Kal-El” não está na string original
“Rogerão Araújo”. Já a frase da string “Rogerão” não será impressa, pois essa string se
encontra na string original da variável x.

7.6. Verificando o tamanho de uma string

Para retornar o tamanho de uma string (quantidade de caracteres), utiliza-se a função


len() (len(string)):

www.grancursosonline.com.br 51
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

7.7. Alguns métodos de strings

Concurseiro(a), temos vários métodos para tratar strings em Python. Vamos conhecer
alguns principais para que você possa responder várias questões.
O método upper() retorna a string em maiúscula (string.upper()). Já o método lower()
traz a string em minúscula (string.lower()), e o método capitalize() retorna a string com o
primeiro caractere em maiúsculo (string.capitalize()). Vejamos alguns exemplos:

O método strip() (string.strip()) remove qualquer espaço em branco do início ou do fim:

O método replace() (string.replace(substring1, substring2)) substitui uma substring por


outra dentro de uma string. O método utiliza dois parâmetros: a substring a ser substituída
(substring1) e a substring a substituir (substring2):

O método split() (string.split(separador)) retorna uma lista (coleção em Python) em que


o texto entre o separador especificado se torna os elementos da lista. O separador é usado
para dividir a string. Ele é opcional, e, caso não seja citado o separador, Python usa o espaço
em branco como separador:

No primeiro exemplo, usamos a vírgula (“,”) como separador. No segundo exemplo, não
foi citado o separador, então, por padrão, foi usado o espaço em branco como separador.

www.grancursosonline.com.br 52
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

O método join() (separador.join(string)) pega todos os itens em uma coleção (listas,


tuplas, sets e dicionários) e os une em uma string através da especificação de uma outra
string como separador:

No exemplo acima, todos os elementos da lista x foram transformados em um só string,


e, entre os elementos, foi usada a string “ - “ como separador.

ATENÇÃO
Estudaremos sobre as listas e outras coleções em Python (tuplas, sets e dicionários)
mais adiante. Ainda nesta aula.

O método count() (string.count(substring)) retorna quantas vezes uma substring apa-


rece em uma string:

No exemplo, a subtring “Python” aparece duas vezes na string da variavél x, que contém
os nomes de várias linguagens de programação.

ATENÇÃO
Não confundir o método count() com a função len(). count() é um método para contar
a quantidade que uma substring aparece dentro de uma string. A função len() traz a
quantidade de caracteres de uma string.

O método startswith() (string. startswith(substring)) retorna True se a string começa


com o valor especificado. Caso contrário, False:

www.grancursosonline.com.br 53
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

O método isalpha() (string.isalpha()) retorna True se todos os caracteres forem apenas


letras do alfabeto (a-z). Já o método isalnum() (string.isalnum()) retorna True se todos os
caracteres forem alfanuméricos (letra do alfabeto (a-z) e números (0-9)) e o método isnu-
meric() (string.isnumeric()) retorna True se todos os caracteres são apenas numéricos (0-9):

O método index() (string.index(substring)) encontra a primeira ocorrência do valor


especificado, ou seja, procura uma substring em uma string retornando seu índice caso seja
encontrada. Caso a substring não seja encontrada, é gerada uma exceção:

ATENÇÃO
Na utilização dos métodos citados, nenhum deles modifica a string original. O que
ocorre é que uma string nova é gerada a partir dos métodos.

Exemplo:

Perceba que, mesmo depois de chamar o método pper() da string apontada pela variável
x, quando a variável x foi impressa, ela continuou com a string original “Rogerão Araújo”.

www.grancursosonline.com.br 54
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

DIRETO DO CONCURSO
1. (VUNESP/2019/PREFEITURA DE CAMPINAS/SP/ANALISTA DE TECNOLOGIA DA
INFORMAÇÃO) No Python 3.7, a instrução que realiza a impressão de uma lista de
cadeias de caracteres nomeada “y”, separando cada elemento com uma vírgula, é:
a. print(‘,’.join(y))
b. print(join(y, ‘,’))
c. print(y.join(‘,’))
d. print(y, ‘,’)
e. print(y % (‘,’))

Letra a.
A descrição da questão cita o método join(), que pega todos os itens em uma coleção (lis-
tas, tuplas, sets e dicionários) e os une em uma string através da especificação de uma
outra string como separador:

A alternativa que trouxe a sintaxe correta do método join() foi a letra A.

2. (QUADRIX/2019/PREFEITURA DE JATAÍ-GO/ANALISTA DE TECNOLOGIA DA IN-


FORMAÇÃO) Na linguagem de programação Python, o método que permite verificar se
uma string começa com alguns caracteres é o
a. startswith.
b. return.
c. def
d. len.
e. count.

Letra a.
A descrição dessa questão agora conceitua o método startswith(), que retorna True se a
string começa com o valor especificado. Caso contrário, False.
Comentando todas as letras:
a. Certa.
b. Errada. A palavra-chave return é usada para criar funções em Python.
c. Errada. A palavra-chave def é usada para criar funções em Python.
d. Errada. A função len() traz a quantidade de caracteres de uma string.
e. Errada. O método count() retorna a quantidade que uma substring aparece dentro de uma string.

www.grancursosonline.com.br 55
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

3. (COMPERVE/2016/UFRN/ANALISTA DE TECNOLOGIA DA INFORMAÇÃO) Observe


o código em Python a seguir.

#!/usr/bin/python
seq = ‘AUUCCUUCTGG’
seq = seq.replace(‘A’,’G’)
seq = seq.replace(‘U’,’T’)
G = seq.count(‘G’)
C = seq.count(‘C’)
T = seq.count(‘T’)
print G, C, T

Após a execução do código, o resultado impresso na tela será


a. G, C, T
b. 3, 3, 5
c. G C T
d. 3 3 5

Letra d.
Comentando o código, temos:

Na linha 1, temos a criação da string apontada pela variável seq (“AUUCCUUCTGG”).


Na linha 6, a variável seq vai apontar para a nova string retornada pelo método replace()
a partir da string anterior “AUUCCUUCTGG”. A substituição foi de ‘A’ por por ‘G’. Então, a
variável seq vai apontar agora para a string “GUUCCUUCTGG”.

www.grancursosonline.com.br 56
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Na linha 11, a variável seq vai apontar para uma outra nova string retornada pelo método
replace() a partir da string anterior “GUUCCUUCTGG”. A substituição foi de ‘U’ por por ‘T’.
Então, a variável seq vai apontar agora para a string “GTTCCTTCTGG”.
A variável G vai receber a quantidade da substring “G” na string “GTTCCTTCTGG”, apon-
tada pela variável seq. Então a variável G vai receber 3.
A variável C vai receber a quantidade da substring “C” na string “GTTCCTTCTGG”, apon-
tada pela variável seq. Então a variável C vai receber 3.
Finalmente, a variável T vai receber a quantidade da substring “T” na string “GTTCCTTC-
TGG”, apontada pela variável seq. Então a variável T vai receber 5.
Ao final do código, na linha 18, teremos a impressão das variáveis G, C, T, ou seja: 3, 3, 5.
Poderíamos marcar a letra B de cara, mas há um detalhe: ao utilizar a função print() com
mais de uma variável, o que vai separar seus valores é um espaço em branco. Portanto,
print(G, C, T) retorna 3 3 5.
Concluímos, então, que o gabarito é a letra D.

4. (CESGRANRIO/2005/AL/TO/PROGRAMADOR DE COMPUTADOR) O método capita-


lize da classe String do Python é utilizado para:
a. remover todos os espaços de uma string.
b. verificar se todos os caracteres da string são numéricos.
c. procurar uma substring em uma string retornando seu índice caso seja encontrada.
d. retornar uma cópia de uma string somente com o primeiro caractere em maiúsculo.
e. retornar uma cópia de uma string com todos os caracteres em minúsculo.

Letra d.
O método capitalize() retorna a string com o primeiro caractere em maiúsculo. Então a letra
D é o nosso gabarito.
Comentando todas as letras:
a. Errada. Não há um método específico para o que está descrito na letra A. Podemos
usar o método replace(), substituindo o espaço em branco por nada (replace(“ “, “”)). Outro
método que se aproxima do que está na letra A é o método strip(), que remove qualquer
espaço em branco do início ou do fim.
b. Errada. A descrição da letra é do método isnumeric().
c. Errada. A descrição da letra é do método index().
d. Certa.
e. Errada. A descrição da letra é do método upper().

www.grancursosonline.com.br 57
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

7.8. Concatenando strings

Para concatenar (combinar, juntar) duas ou mais strings, usa-se o operador + (string1
+ string2).

Exemplo:

7.9. Formatando strings

Estudamos na aula anterior que a operação de strings e número em Python dá erro:

Entretanto, podemos combinar strings com números, variáveis de vários tipos e expres-
sões que retornam vários tipos de valores. Isso é chamado de formatação ou interpolação
de strings.

Vamos estudar três formas de formatação de strings, conforme a figura abaixo:

Figura 7.1: Formas de formatação de strings em Python.

Começaremos com o método format(). Esse método pega os argumentos passados,


formata-os e os coloca na string onde estão os marcadores de posição {}.

www.grancursosonline.com.br 58
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Exemplo:

O método pode aceitar mais que um parâmetro, e cada parâmetro será colocado em
seu respectivo marcador de posição {}:

Por último, pode-se usar números nos marcadores de posição {n} para indicar o índice
dos parâmetros. O primeiro parâmetro terá o índice 0, o segundo terá o índice 1 e assim
por diante.
O marcador de posição {n} com índice é usado para se certificar que um parâmetro
estará corretamente em seu marcador.

Exemplo:

O exemplo acima é parecido com o exemplo anterior, mas as variáveis mudaram de


valor. A variável x representa o valor da idade, a variável y representa o valor da altura e a
variável z representa o valor do nome.

Ao chamar o método format() da variável w, foram colocados os marcadores de posição


na seguinte ordem:

• {2} para representar o terceiro parâmetro, ou seja, a variável z (nome);


• {0} para representar o primeiro parâmetro, ou seja, a variável x (idade);
• {1} para representar o segundo parâmetro, ou seja, a variável y (altura).

www.grancursosonline.com.br 59
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Uma outra forma de formatação é a utilização da instrução de f-string. Cada instrução


f-string consiste em duas partes:

• A primeira parte é o caractere f ou F;


• A segunda parte é a string que se quer formatar.

Exemplo:

Na instrução f-string, pode-se utilizar os marcadores de posição {} também:

A diferença é que, na formatação f-string, tem que se informar em cada marcador de


posição {} o nome de uma variável.
No exemplo acima, comparamos a formatação de strings de forma normal com o uso
da formatação f-string.
Ao chamar imprimir a formatação f-string, foram colocados os marcadores de posição
na seguinte ordem:

• {x} para representar a formatação do valor da variável x (nome) na string;


• {y} para representar a formatação do valor da variável y (idade) na string;
• {z} para representar a formatação do valor da variável z (altura) na string.

Além de formatarmos uma string com diversas variáveis, podemos usar a instrução f-s-
tring para formatar uma string com expressões.

Exemplo:

www.grancursosonline.com.br 60
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Uma forma antiga da formatação f-string é a formatação com o operador módulo %.


Cada instrução com o operador % para interpolação tem três partes:

• A primeira parte é a string que se quer formatar;


• A segunda parte é o caractere %;
• A terceira parte é a lista de variáveis ou expressões usadas para formatar a string.

Exemplo:

Dentro da string que se quer formatar, é usado o operador módulo % seguido de um


caractere que é chamado de especificadores de formato. Cada especificador representa
o tipo da variável ou expressão correspondente na lista de variáveis ou expressões usadas
para formatar a string.
Vamos usar o exemplo acima para entender isso. Na string, foram colocados os espe-
cificadores de formatos na seguinte ordem:

• %s para representar a formatação do valor da variável x (nome) na string;


– O caractere s é para representar uma variável do tipo str;

• %i para representar a formatação do valor da variável y (idade) na string;


– O caractere i é para representar uma variável do tipo int;

• %f para representar a formatação do valor da variável z (altura) na string;


– O caractere f é para representar uma variável do tipo float.

Especificadores de formato O que representa


%s String
%c Caractere único
%i ou %d Número inteiro
%f Número de ponto flutuante
%x Número em hexadecimal
%o Número em octal

Tabela 7.1: Especificadores de formato e o que eles representam.

www.grancursosonline.com.br 61
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Assim como se pode usar a instrução f-string para formatar uma string com expressões,
pode-se também usar o operador módulo % para trabalhar com expressões:

DIRETO DO CONCURSO
1. (INSTITUTO AOCP/2020/MJ-SP/CIENTISTA DE DADOS/BIG DATA) Um desenvolve-
dor implementou um programa para exibir a média de um dado retirado de uma grande
base de dados. Para isso, foi utilizada a linguagem Python. O trecho do código que
mostra o resultado é apresentado a seguir. Assinale a alternativa correta acerca desse
trecho de código sabendo que a média do usuário foi 75.

print(‘Sua média foi {}.’.format(med))


a. O programa imprime: Sua média foi 75.
b. O programa imprime: Sua média foi {}.
c. O programa imprime: Sua média foi Null.
d. O programa apresenta um erro na impressão porque tenta converter tipo numérico
em caractere.
e. O programa apresenta um erro na impressão, pois não apresenta o formato do valor.

Letra a.
No código da questão, o método format() foi chamado a partir de uma string “‘Sua média
foi {}.”. Como parâmetro, tem-se a variável med, cujo valor é 75. Com isso, temos a se-
guinte saída:

Então a letra A é nosso gabarito, pois é impresso “Sua média foi 75”.

www.grancursosonline.com.br 62
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

2. (MS CONCURSOS/2018/GHC/RS/PROGRAMADOR) Em Python 3, o que é utilizado


para interpolar string?
a. @ (arroba)
b. $ (Cifrão)
c. # (Hashtag)
d. % (percentual)
e. “ (Aspas duplas)

Letra d.
A questão está citando a formatação ou a interpolação de strings com o operador módulo
%. Então a alternativa correta é a letra D.

8. Coleções em Python

8.1. Visão geral

Python possui uma série de estruturas de dados integrados. Essas estruturas de dados
fornecem como organizar e armazenar dados. Através das coleções, pode-se preencher e
manipular eficientemente as estruturas de dados.

Estudaremos quatro coleções em Python:

• Lista;
• Tupla;
• Set;
• Dicionário.

Figura 8.1: Coleções em Python.

www.grancursosonline.com.br 63
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Na figura 8.2, temos a compilação das principais características das coleções.

Figura 8.2: Principais características das coleções em Python.

Figura 8.3: Mapa mental das coleções em Python.

ATENÇÃO
A partir da versão Python 3.7, os dicionários são ordenados.

Exemplo:

www.grancursosonline.com.br 64
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

DIRETO DO CONCURSO
1. (NC/UFPR/2017/ITAIPU BINACIONAL/PROFISSIONAL DE NÍVEL SUPERIOR JR/
COMPUTAÇÃO OU INFORMÁTICA/SUPORTE) Três tipos de dados fundamentais em
Python são as listas (“lists”), sequências ou ‘tuplas’ (“tuples”) e dicionários (“dictiona-
ries”). A respeito dessas estruturas, é correto afirmar:
a. Listas não podem ser modificadas depois de criadas, ao passo que sequências e
dicionários podem.
b. Listas podem ser modificadas, mas seu tamanho não pode ser modificado após a
criação, ao passo que sequências e dicionários não têm essa limitação.
c. Dicionários não podem ser modificados depois de criados, ao passo que listas e
sequências podem.
d. Listas e sequências são indexadas por inteiros, ao passo que dicionários podem ser
indexados por “strings”.
e. Listas e dicionários são indexados por inteiros, ao passo que sequências podem ser
indexadas por “strings”.

Letra d.
Uma questão excelente para revisão:

Característica Lista Tupla Set Dicionário


Ordenada Sim Sim Não Sim
Mutável Sim Não Sim Sim
Indexada Sim Sim Não Sim
Permite membros repetidos Sim Sim Não Não

Comentando cada letra:


a. Errada. A única coleção que não pode ser modificada é a tupla, que, na questão, é cha-
mada de sequência.
b. Errada. A tupla não pode ser modificada e seu tamanho também não. Não há como in-
serir um novo elemento nem excluir um elemento de uma tupla já criada. As listas, sets e
dicionários podem ser modificados.
c. Errada. É o inverso.
d. Certa. Como vimos, a indexação dos dicionários é por strings enquanto a indexação das
listas e tuplas é por valores inteiros.
e. Errada. Foi explicado na letra D.
Portando, a letra D é nosso gabarito.

www.grancursosonline.com.br 65
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

2. (UFCG/2019/UFCG/ANALISTA DE TECNOLOGIA DA INFORMAÇÃO/DESENVOLVI-


MENTO DE SISTEMAS/ADAPTADA) Julgue o item a seguir como CERTO ou ERRADO.

Dicionários em Python 3.7 preservam a ordem de inserção.

Certo.
Somente a partir da versão Python 3.7, os dicionários são ordenados.

8.2. Listas

São coleções:

• Ordenadas;
• Mutáveis;
• Indexadas;
• Que permitem membros repetidos.

As listas são escritas com colchetes [ ].


Com uma série de exemplos, vamos entender o uso de listas. Após isso, vamos resol-
ver várias questões que citam essa coleção.

8.2.1. Acessando elementos de uma lista

Para acessar um elemento de uma lista, utiliza-se a indexação numérica (lista[n]),


informando qual a posição (n), ou seja, seu índice:

ATENÇÃO
Em Python, o primeiro elemento de uma lista começa no índice 0.
Pode-se também usar valores negativos para representar os índices de uma lista. Para
entendermos como isso acontece, o último elemento fica na posição -1, o penúltimo fica na
posição -2, o antepenúltimo, na posição -3 e assim por diante.

www.grancursosonline.com.br 66
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Exemplo:

ATENÇÃO
Ao acessar um elemento informando um índice que não se encontra em uma lista,
resultará em um erro.

Exemplo:

No exemplo acima, os índices da lista linguagens vão de 0 a 3. Então, ao informar a posi-


ção 4, gerou-se um erro de índice fora da gama de índices da lista.
Por fim, pode-se acessar cada elemento de uma lista utilizando uma estrutura de repeti-
ção for (for x in lista):

DIRETO DO CONCURSO
1. (UFPEL-CES/2015/UFPEL/TÉCNICO EM TECNOLOGIA DA INFORMAÇÃO/ ADAPTA-
DA) Em relação às características da linguagem Python, julgue o item a seguir como
CERTO ou ERRADO.

Uma lista em Python é um conjunto de valores acessados por um índice numérico, intei-
ro, começando em 1. Assim como em outras linguagens, a lista pode armazenar apenas
valores de um mesmo tipo.

www.grancursosonline.com.br 67
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Errado.
Uma lista em Python é um conjunto de valores acessados por um índice numérico, inteiro.
Até aí tudo bem. Porém, o índice começa em 0.
Outro erro na questão é que podemos ter elementos de diferentes tipos em uma mesma lista:

2. (INSTITUTO AOCP/2020/MJ-SP/CIENTISTA DE DADOS/BIG DATA) In Python, the sta-


tement ‘for loop’ is used for iterating over a sequence. Considering that, choose the cor-
rect alternative that presents a proper example concerning the use of ‘for loop’ in Python.
a. for x = [“John”, “Sophie”, “Junior”]:
print(x)
b. array ([“John”],[“Sophie”],[“Junior”])
for each i = 0 to array[i]
print (array[i])
c. names = [“John”, “Sophie”, “Junior”]
for x in names:
print(x)
d. names = {{“John”}, {“Sophie”}, {“Junior”}}
for x in names:
print(names)
e. array.names(“John”, “Sophie”, “Junior”)
for x print(names[x]):
end for:

Letra c.
Esta questão traz o conhecimento tanto do inglês quanto do uso de listas em Python.
Traduzindo: “Em Python, a instrução ‘for loop’ é usada para iterar em uma sequência. Con-
siderando isso, escolha a alternativa correta que apresenta um exemplo adequado sobre o
uso de ‘for loop’ em Python.”
Como estudamos, utilizamos a estrutura de repetição for da seguinte forma para iterar ele-
mentos de uma lista em Python:

O código correto é o da letra C.

www.grancursosonline.com.br 68
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

3. (IFB/2017/IFB/PROFESSOR INFORMÁTICA/DESENVOLVIMENTO DE SISTEMAS)


Dado o código em Python abaixo, assinale a alternativa que contém a saída CORRETA
gerada pelo “print”:
lista = [“cachorro”, “hamster”, [“pato”, “galinha”, “porco”], “gato”]
print(lista[3][2])
a. galinha
b. ga
c. t
d. gato
e. to

Letra c.
Questão interessante que envolve o conhecimento de listas e strings em Python. Uma
string funciona como uma lista de elementos de caracteres:

Agora, sobre a questão, a lista citada possui quatro elementos:

Posição Título da aula Tópicos


0 “cachorro” str
1 “hamster” str
2 [“pato”, “galinha”, “porco”] list
3 “gato” str

Com essa informação, podemos entender o que será retornado em lista[3][2]:

• A primeira dimensão [3] trata da posição na lista:


– Posição 3 da lista: “gato”;

• A segunda dimensão [2] trata da posição da string “gato”:


– Posição 2 da string: “t”.

Ou seja, a primeira dimensão retorna a string “gato”. A partir dessa string, pede-se a posi-
ção 2 (segunda dimensão).
Com isso, o gabarito é a letra C.

www.grancursosonline.com.br 69
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

4. (IFPE/2016/IF/PE/TÉCNICO EM TECNOLOGIA DA INFORMAÇÃO/DESENVOLVI-


MENTO/ADAPTADA) Uma das estruturas de dados existentes na linguagem de progra-
mação Python são as listas. Considere o trecho de código abaixo:

candidatos = [‘José’, ‘João’, ‘Cibelly’, ‘Sonivaldo’,’Dariane’]

Julgue o item a seguir como CERTO ou ERRADO.


Candidatos[-2] retornaria o penúltimo elemento da lista.

Certo.
O item trouxe um exemplo de uso de valores negativos para representar os índices de uma
lista. No caso, o penúltimo fica em uma lista na posição -2:

8.2.2. Fatiando uma lista

Podemos também acessar um intervalo de uma lista (lista[início:fim]), informando o


índice inicial (início) e o índice final de uma lista (fim, mas ele não é incluído).

Exemplo:

No exemplo acima, temos dois fatiamentos:

• No primeiro fatiamento, lemos da seguinte forma: traga o intervalo (trecho) da lista da


posição 0 (primeiro índice informado) até a posição 2 (posição anterior ao segundo
índice informado);
• No segundo fatiamento: traga o intervalo (trecho) da lista da posição 1 (primeiro índice
informado) até a posição 3 (posição anterior ao segundo índice informado).

www.grancursosonline.com.br 70
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

ATENÇÃO
O fatiamento de listas não afeta a lista original. Quando usamos essa operação, é
retornado um trecho da lista original. Veja o exemplo abaixo para entender melhor.

Exemplo:

Podemos fatiar uma lista, omitindo o índice inicial. Dessa forma, é como se o intervalo co-
meçasse do primeiro elemento:

Veja que linguagens[:3] é equivalente a linguagens[0:3].


Da mesma forma que podemos omitir o índice inicial, podemos omitir o índice final:

Veja que linguagens[1:] é equivalente a linguagens[1:4], ou seja, ao omitir o índice final, é


como se fatiássemos a lista a partir do índice inicial informado até o elemento final da lista.

www.grancursosonline.com.br 71
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Além da omissão do índice inicial e do índice final, podemos omitir os dois ao mesmo tem-
po. Quando isso acontece, são retornados todos os elementos da lista, pois não houve
parâmetros de fatiamento.

Exemplo:

Podemos também usar valores negativos para representar os índices do fatiamento. Para
entendermos como isso acontece, o último elemento fica na posição -1, o penúltimo fica na
posição -2, o antepenúltimo, na posição -3 e assim por diante.

Exemplo:

Podemos ter um terceiro parâmetro para o fatiamento: passo (lista[início:fim:passo]). Ele


determina o incremento entre cada índice para o fatiamento. Ele é opcional. Quando não
citado, então assume-se o valor 1.

Exemplo:

www.grancursosonline.com.br 72
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Quando se usa valores negativos para o parâmetro passo, o fatiamento vem de for-
ma inversa.

Exemplo:

Por último, temos o seguinte:

• Se o índice de início for maior que o índice final e o passo for positivo:
– Então não é retornado nada.

• Se o índice de início for menor que o índice final e o passo for negativo:
– Então não é retornado nada.

Exemplo:

8.2.3. Verificando o tamanho de uma lista

Para retornar o tamanho de uma lista (quantidade de elementos), utiliza-se a função


len() (len(lista)):

www.grancursosonline.com.br 73
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

DIRETO DO CONCURSO
1. (IFPE/2016/IF-PE/TÉCNICO EM TECNOLOGIA DA INFORMAÇÃO/DESENVOLVI-
MENTO/ADAPTADA) Uma das estruturas de dados existentes na linguagem de progra-
mação Python são as listas. Considere o trecho de código abaixo:

candidatos = [‘José’, ‘João’, ‘Cibelly’, ‘Sonivaldo’,’Dariane’]

Julgue o item a seguir como CERTO ou ERRADO.


candidatos.len() obtém o tamanho da lista.

Errado.
len() não é um método, é uma função, ou seja, não é chamada a partir de uma lista:

2. (IFPE/2016/IF-PE/TÉCNICO EM TECNOLOGIA DA INFORMAÇÃO/DESENVOLVI-


MENTO/ADAPTADA) Uma das estruturas de dados existentes na linguagem de progra-
mação Python são as listas. Considere o trecho de código abaixo:

candidatos = [‘José’, ‘João’, ‘Cibelly’, ‘Sonivaldo’,’Dariane’]


Julgue o item a seguir como CERTO ou ERRADO.
candidatos.size() obtém o tamanho da lista.

Errado.
Não existe o método size(). E, para se obter o tamanho de uma lista, usa-se a função len().

www.grancursosonline.com.br 74
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

3. (IFB/2017/IFB/PROFESSOR/INFORMÁTICA/DESENVOLVIMENTO DE SISTEMAS)
Dado o código em Python abaixo, assinale a alternativa que contém a sequência COR-
RETA de números da saída gerada pelos comandos “print”:

numeros = [16, 32, 64, 128, 256, 512, 1024]


print(numeros[2])
print(numeros[7-6])
print(numeros[-1])
print(numeros[len(numeros)-1])
print(numeros[5-7])
a. 64, 32, 1024, 1024, 512
b. 32, 16, 512, 1024, 256
c. 64, 32, 512, 1024, 256
d. 64, 32, 1024, 1024, 256
e. 32, 16, 512, 1024, 512

Letra a.
Comentando cada chamada da função print no código, temos:

• print(numeros[2]):
– Será impresso o terceiro elemento (posição 2): 64;

• print(numeros[7-6]):
– O índice informado é 7 – 6 = 1;
– Será impresso o segundo elemento (posição 1): 32;

• print(numeros[-1]):
– Será impresso o último elemento (posição -1): 1024;

• print(numeros[len(numeros)-1]):
– len(numeros): 7;
– O índice informado é 7 – 1 = 6;
– Será impresso o último elemento (posição 6): 1024;

• print(numeros[5-7]):
– O índice é 5 – 7 = -2;
– Será impresso o penúltimo elemento (posição -2): 512.

Concluindo, a sequência de impressão é: 64, 32, 1024, 1024 e 512.


Portanto, a única alternativa que trouxe a impressão correta foi a letra A.

www.grancursosonline.com.br 75
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

8.2.4. Adicionando elementos em uma lista

Veremos duas formas para adicionar um elemento em uma lista. Primeiramente, usare-
mos o método append(), informando um elemento a ser inserido (lista.append(elemento)):

Ao usar o método append(), insere-se o elemento no final da lista.

No entanto, podemos inserir um elemento em uma posição em uma lista usando o


método insert(), informando a posição e o valor (lista.insert(n, elemento)):

Ao usar o método insert(), os demais elementos da lista serão remanejados para frente,
após o novo elemento inserido.

ATENÇÃO
Ao usar o método insert() e informar um índice fora da gama de índices de uma lista,
o novo elemento será inserido no final da lista.

Exemplo:

www.grancursosonline.com.br 76
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

DIRETO DO CONCURSO
1. (IFPE/2016/IF/PE/TÉCNICO EM TECNOLOGIA DA INFORMAÇÃO/ DESENVOLVI-
MENTO/ADAPTADA) Uma das estruturas de dados existentes na linguagem de progra-
mação Python são as listas. Considere o trecho de código abaixo:

candidatos = [‘José’, ‘João’, ‘Cibelly’, ‘Sonivaldo’,’Dariane’]

Julgue o item a seguir como CERTO ou ERRADO.


O método append é utilizado para adicionar um elemento no início da lista.

Errado.
Ao usar o método append(), insere-se um elemento no final da lista:

2. (IFPE/2016/IF/PE/TÉCNICO EM TECNOLOGIA DA INFORMAÇÃO/DESENVOLVI-


MENTO/ADAPTADA) Uma das estruturas de dados existentes na linguagem de progra-
mação Python são as listas. Considere o trecho de código abaixo:

candidatos = [‘José’, ‘João’, ‘Cibelly’, ‘Sonivaldo’,’Dariane’]

Julgue o item a seguir como CERTO ou ERRADO.


O comando insert(‘Antônio’) insere “Antônio” no início da lista.

Errado.
Para usar o método insert(), deve-se informar dois parâmetros: a posição do novo ele-
mento e o valor. Ao usar o método, os demais elementos da lista serão remanejados para
frente, após o elemento novo inserido:

Então há dois erros na questão: 1) o método insert() precisa de dois parâmetros; 2) o méto-
do não insere no início da lista, e sim em uma posição específica, de acordo com o primeiro
parâmetro.

www.grancursosonline.com.br 77
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

8.2.5. Removendo elementos de uma lista

Agora, entenderemos formas de remoção de elementos de uma lista. Começamos com


a remoção de um elemento específico usando o método remove(), informando qual o nome
do elemento a ser excluído de uma lista (lista.remove(elemento)):

Ao usar o método remove(), os demais elementos da lista serão remanejados, depois


do elemento citado ser excluído.

ATENÇÃO
Se o item a ser removido não existir, remove() gerará um erro.

Exemplo:

O elemento “C#” não existe na lista, por isso houve um erro ao usar o remove().
Pode-se remover um elemento em uma posição específica de duas formas: através do
método pop(), informando um índice do elemento a ser removido (lista.pop(n)), ou usando
a palavra-chave del, seguida de uma lista e do índice do elemento a ser removido (del
lista[n]).

Exemplo:

www.grancursosonline.com.br 78
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Ao usar o método pop(n) ou a palavra-chave del, os demais elementos da lista serão rema-
nejados, depois do elemento citado ser excluído.

ATENÇÃO
Ao usar a método pop(n) ou a palavra-chave del para remover um elemento, infor-
mando um índice que não se encontra em uma lista, resultará no erro de índice fora
da gama de índices da lista, como foi demonstrado na seção 8.2.3.

Exemplo:

O método pop() (lista.pop()), quando usada sem parâmetro, remove o último elemento de
uma lista:

DIRETO DO CONCURSO
1. (FCC/2012/MPE/PE/ANALISTA MINISTERIAL/INFORMÁTICA) Em Python, os méto-
dos de lista permitem utilizar listas como pilhas, onde o item adicionado por último é o
primeiro a ser recuperado. Para adicionar um item ao topo da pilha, e para recuperar
um item do topo da pilha utilizam-se, respectivamente os métodos:
a. append() e pop().
b. insert() e top().
c. addTop() e pop().
d. add() e get().
e. addItem() e top().

Letra a.
O conceito de uma pilha é: adicionamos um elemento no topo da estrutura e retiramos do
topo dela, ou seja, LIFO (Last In, First Out).

www.grancursosonline.com.br 79
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Se pegarmos o caso de uma lista em Python, podemos trabalhar com ela, adicionando
elementos no final da lista e retirando os elementos no seu final. Tudo isso seguindo o
conceito LIFO. O final da lista poderia ser tratado como “topo” da lista.
Com base nessa revisão, a tabela 1 da parte teórica traz dois métodos importantes que
podem fazer com que a lista seja tratada como uma pilha:

• append():
– Insere um elemento no final de uma lista.

pop():

– Quando usada sem parâmetro, remove o último elemento de uma lista.
Portanto, o gabarito é a letra A.

8.3. Tuplas

São coleções:

• Ordenadas;
• Imutáveis;
• Indexadas;
• Que permitem membros repetidos.

As tuplas são escritas com parênteses ( ).


Com uma série de exemplos, vamos entender o uso de tuplas. Após isso, vamos resol-
ver várias questões que citam essa coleção.

DIRETO DO CONCURSO
1. (IF SUL RIO-GRANDENSE/2019/ANALISTA DE TECNOLOGIA DA INFORMAÇÃO/
ADAPTADA) Em relação às características da linguagem Python, julgue o item a seguir
como CERTO ou ERRADO.

Apresenta a tupla, que é um tipo mutável.

Errado.
As tuplas em Python são imutáveis.

www.grancursosonline.com.br 80
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

2. (CESPE/CEBRASPE/2021/SEED-PR/PROFESSOR EDUCAÇÃO BÁSICA E JORNA-


DA) Na linguagem de programação Python, existem 3 estruturas para armazenar da-
dos indexados. A estrutura cujos valores são imutáveis depois de sua criação é co-
nhecida como
a. lista.
b. operador.
c. tupla.
d. classe.
e. dicionário.

Letra c.
Meu(minha) prezado(a) aluno(a), a única coleção imutável em Python são as tuplas.

8.3.1. Juntando tuplas

Podemos juntar duas tuplas em uma, usando o operador + (tupla1 + tupla2):

ATENÇÃO
Veja que a tupla3 possui elementos repetidos (1, 1), pois as tuplas em Python
aceitam isso.

DIRETO DO CONCURSO
1. (COMPERVE/2016/UFRN/Técnico de Tecnologia da Informação) Analise o trecho de
código Python a seguir, escrito para a versão 2.6.

t=(1,3,4)
t2=(3,4,5)
t3=t+t2
n=0
for e in t3:
if (e>2):
n+=e
print(n)

www.grancursosonline.com.br 81
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Após a execução do código Python, o valor da variável n impresso na tela é


a. 12
b. 13
c. 19
d. 20

Letra c.
Meu(minha) prezado(a) aluno(a), esta é uma questão excelente sobre junção de tuplas.
Organizando o código:

Temos duas tuplas iniciais: t e t2. A tupla t3 é o resultado da concatenação dessas duas
tuplas: (1, 3, 4, 3, 4, 5).
A variável n é usada como uma totalizadora, e ela começa com o valor 0.
Temos uma estrutura de repetição for para percorrer os valores da tupla t3. Dentro dessa
estrutura, temos uma estrutura de condição if: se o valor do elemento da tupla for maior que
2, então a variável n receberá ela mesma mais o valor do elemento.

t t2 t3 n e
(1, 3, 4) (3, 4, 5) (1, 3, 4, 3, 4, 5) 0 -
0 1
3 3
7 4
10 3
14 4
19 5

www.grancursosonline.com.br 82
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

8.4. Sets

São coleções:

• Não ordenadas;
• Mutáveis;
• Não indexadas;
• Que não permitem membros repetidos.

Os sets são escritos com chaves { }.


Com uma série de exemplos, vamos entender o uso de sets. Após isso, vamos resolver
várias questões que citam essa coleção.

8.4.1. Criando um set

O primeiro ponto é sabermos como criar sets em Python. Podemos criar com o cons-
trutor set(), podendo já passar elementos como parâmetros, ou já informando os elementos
envoltos em chaves.

Como exemplos, criaremos dois sets com quatro elementos (quatro linguagens de
programação):

ATENÇÃO
Note que a ordem dos elementos impressos pode ser diferente da ordem quando
criamos um set. Isso porque os sets não são ordenados. Cada vez que o código aci-
ma for executado, haverá ordem diferente de impressão.

Um set pode ser criado a partir de outro, ainda usando o construtor set(), passando o
set original como parâmetro:

www.grancursosonline.com.br 83
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

ATENÇÃO
Mesmo que sejam informados elementos repetidos na criação de um set, ele conterá
apenas elementos únicos. Os elementos repetidos serão descartados, pois sets não
permitem elementos repetidos.

Exemplo:

Veja, meu(minha) prezado(a) aluno(a), que citei duas vezes a linguagem “Python” na cria-
ção do set, mas, na impressão da coleção, o elemento apareceu apenas uma vez.

DIRETO DO CONCURSO
1. (INÉDITA/2021) Em relação aos sets em Python, julgue o próximo item.

Assim como as listas e tuplas, os sets são coleções em Python que podem conter ele-
mentos repetidos.

Errado.
As listas e tuplas podem, sim, conter elementos repetidos, porém os sets não permitem
elementos repetidos. Mesmo que na criação de um set sejam citados elementos repetidos,
haverá apenas um elemento único para os repetidos.

www.grancursosonline.com.br 84
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

8.5. Dicionários

São coleções:

• Ordenadas;
• Mutáveis;
• Indexadas;
• Que não permitem membros repetidos.

Os dicionários são coleções para armazenar dados em pares de chave e valor. Eles
são escritos com chaves { }.
Com uma série de exemplos, vamos entender o uso de dicionários. Após isso, vamos
resolver várias questões que citam essa coleção.

8.5.1. Criando um dicionário

O primeiro ponto é sabermos como criar dicionários em Python. Podemos criar infor-
mando os elementos, cada um com sua chave e valor e todos os elementos envoltos em
chaves { }:

No exemplo acima, temos um dicionário chamado optimus. Dentro dele, existem vários
pares de chave e valor, por exemplo a chave “nome” e seu valor “Optimus Prime”.

Um dicionário pode ser criado a partir de outro, usando o construtor dict(), passando
o dicionário original como parâmetro:

www.grancursosonline.com.br 85
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

8.5.2. Acessando elementos de um dicionário

Para acessar um elemento de um dicionário, utiliza-se a chave do elemento (dicioná-


rio[chave]):

ATENÇÃO
Nas listas e nas tuplas, a indexação é feita através de valores inteiros (lista[n] e tu-
pla[n]). Já nos dicionários, a indexação é feita através de strings, que representam
as chaves dos elementos em um dicionário (dicionário[chave]).

ATENÇÃO
Ao acessar um elemento informando uma chave que não se encontra em um dicio-
nário, resultará em um erro.

Exemplo:

No exemplo acima, estamos tentando acessar o valor do elemento cuja chave é “patente”,
porém ela não existe, o que gerou um erro de chave não encontrada.
Pode-se usar também o método get(), passando o nome da chave como parâmetro (di-
cionário.get(chave)):

www.grancursosonline.com.br 86
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

ATENÇÃO
Ao contrário do acesso a um elemento informando uma chave, usando o método
get() e passando uma chave inexistente em um dicionário, não haverá um erro. É
apenas retornado None.

Exemplo:

No exemplo acima, estamos tentando acessar o valor do elemento com o método get()
cuja chave é “patente”, porém ela não existe, o que gerou o resultado None na execução
do código.
Pode-se usar os métodos keys() (dicionário.keys()) para trazer as chaves dos elementos
de um dicionário e values() (dicionário.vaues()), para os valores dos elementos:

www.grancursosonline.com.br 87
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Para obtermos tanto as chaves quanto os valores, podemos usar o método items() (dicio-
nário.items()):

Assim como acontece com as outras coleções, podemos utilizar a estrutura de repetição
for para iterar os elementos. Contudo, para dicionários, podemos iterar tanto chaves e va-
lores quanto os dois ao mesmo tempo.

Iniciaremos pela iteração das chaves (for x in dicionário):

Pode-se usar o método keys() que a iteração terá o mesmo resultado (for x in dicioná-
rio.keys()):

Para conseguirmos os valores dos elementos, basta usarmos a notação dicionário[chave]:

www.grancursosonline.com.br 88
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Podemos trazer os valores dos elementos também usando o método get():

Além dessas duas formas, podemos usar o método values() (for x in dicionário.values()):

Por último, vimos que o método items() traz a chave e o valor de cada elemento e pode-
mos iterar da seguinte forma (for x in dicionário.items()):

www.grancursosonline.com.br 89
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

DIRETO DO CONCURSO
1. (INSTITUTO AOCP/2020/MJSP/ANALISTA DE GOVERNANÇA DE DADOS/BIG DATA)
Um analista do MJSP armazenou nomes e ID no seguinte programa Python:
01 dados = {
02 ‘Machado de Assis’: 7575,
03 ‘Santos Dumont’: 7475,
04 ‘Rui Barbosa’: 1675,
05 };

Agora, o analista necessita apresentar em tela o ID 7475 referente ao nome informado.


Assinale a alternativa que apresenta o código correto para imprimir esse ID na tela para
o usuário.
a. print(7475);
b. print(dados[nome], ID==7475);
c. print(ID, ‘Santos Dumont’);
d. print(dados == ‘Santos Dumont);
e. print(dados[‘Santos Dumont’]);

Letra e.
Para recuperarmos o ID 7475, temos que citar a chave correspondente do dicionário: da-
dos[‘Santos Dumont’]:

Dessa forma, a letra E trouxe o código correto.

www.grancursosonline.com.br 90
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

8.5.3. Verificando o tamanho de um dicionário

Para retornar o tamanho de um dicionário (quantidade de elementos), utiliza-se a


função len() (len(dicionário)):

DIRETO DO CONCURSO
1. (UFCG/2019/UFCG/ANALISTA DE TECNOLOGIA DA INFORMAÇÃO - DESENVOLVI-
MENTO DE SISTEMAS/ADAPTADA) Julgue o item a seguir como CERTO ou ERRADO.

count(d) retorna o número de elementos do dict d.

Errado.
Usamos a função len(d) para retornar o número de elementos de uma coleção.

9. Arrays

9.1. Conceituação

Arrays são objetos que contêm um conjunto de valores do mesmo tipo.


Cada elemento de um array, também chamado de componente de array, é como se
fosse uma variável e é acessado por um índice.
Em várias linguagens de programação, os arrays são imutáveis, ou seja, o tamanho de
um array é estabelecido quando o array é criado, assim como acontece com as strings.

9.2. Arrays em Python

ATENÇÃO
Python não tem suporte embutido para arrays, mas listas (estudadas na seção 8.2)
podem ser usadas em seu lugar. Também pode-se trabalhar com arrays em Python,
importando uma biblioteca, como a biblioteca NumPy, porém isso foge do esco-
po do curso.

www.grancursosonline.com.br 91
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

DIRETO DO CONCURSO
1. (FCC/2019/TRF 4ª REGIÃO/ANALISTA JUDICIÁRIO/INFRAESTRUTURA EM TECNO-
LOGIA DA INFORMAÇÃO) Considerando que em um programa Python em condições
ideais há um array criado pelo comando nomes = [“Maria”, “Pedro”, “João”], para exibir
os valores contidos nesse array utiliza-se
a. for x in nomes: out.print(x)
b. while x in nomes: print(x)
c. foreach x in nomes: print(x)
d. foreach x in nomes: system.println(x)
e. for x in nomes: print(x)

Letra e.
Esta questão é um exemplo que cita array, mas que podemos responder com o conheci-
mento de listas em Python (seção 3.2).
Como estudamos na seção 3.2.3, utilizamos a estrutura de repetição for da seguinte forma
para iterar elementos de uma lista em Python:

O código correto, então, é o da letra E.

www.grancursosonline.com.br 92
PYTHON – BÁSICO DA LINGUAGEM
Professor: Rogério Araújo

Referências

Apostila de programação fácil em Python em pdf. Disponível em: https://www.passeidi-


reto.com/arquivo/30903709/apostila-de-programacao-facil-em-python-em-pdf.
Para quê é utilizado a programação em Python? Disponível em: https://br.bitdegree.org/
tutoriais/programacao-em-python/.
PensePython2e – Tradução do livro Pense em Python (2ª ed.), de Allen B. Downey. Dis-
ponível em: https://penseallen.github.io/PensePython2e/.
Por que cientistas de dados escolhem Python? Disponível em: http://www.cienciaeda-
dos.com/por-que-cientistas-de-dados-escolhem-python/.
Python. Disponível em: https://www.python.org/.
Python e orientação a objetos. Disponível em: https://www.caelum.com.br/apostila-py-
thon-orientacao-a-objetos.
Python para programadores. Disponível em: https://python-para-programadores.read-
thedocs.io/pt/latest/index.html.
Python tutorial. Disponível em: htps://www.w3schools.com/python/.

www.grancursosonline.com.br 93
#VEM

Mude de vida. Garanta seu


futuro com a melhor plataforma de
estudos para concurso público.
A realização do seu sonho merece um
investimento de qualidade. Não desperdice
tempo, dinheiro e energia. Invista no seu sucesso,
no seu futuro e na sua realização profissional.

Assine AGORA a melhor e mais completa


plataforma de ensino para concursos públicos.
Sua nomeação na palma da sua mão com a
Assinatura Ilimitada 6.0 do Gran Cursos Online.

FACILITE SEUS ESTUDOS: TUDO NO SEU TEMPO VOCÊ NÃO ESTÁ SOZINHO:
rotas de aprovação, mapas E ESPAÇO: mentorias diárias, ao vivo,
mentais, resumos e faça o download de e fórum de dúvidas não
exercícios irão te guiar por videoaulas e de PDFs e te deixarão só
um caminho mais simples estude onde e quando nesta caminhada.
e rápido. você quiser e puder.

TUDO DE NOVO QUANTAS NÚMEROS GRANDES: TUDO NA SUA MÃO:


VEZES VOCÊ QUISER: milhares de alunos só a Assinatura Ilimitada
quantas vezes você quiser, aprovados, mais de 1 milhão oferece, de forma livre
quantas vezes você precisar, de questões, mais de 23 mil e gratuita: Gran Questões,
estude com o material mais cursos e centenas de Gerenciador de Estudos,
atualizado e de melhor professores para te ajudar Audiobooks e muito mais!
qualidade do mercado. a passar.

Contato para vendas: Quero ser assinante


(61) 99884-6348 | De segunda a quinta até as 22h e sexta até as 21h. ilimitado agora

Você também pode gostar