Buscar

08 Variáveis, tipos de dados e operadores de algoritmos em Python

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 42 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 42 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 42 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Variáveis, tipos de dados e operadores de 
algoritmos em Python
APRESENTAÇÃO
Em geral, dados são qualquer conjunto de caracteres que são reunidos, processados e traduzidos 
para algum propósito. Um dado pode ser desde um simples caractere, um texto, números, image
ns, som, vídeo, além de muitos outros tipos. Se os dados não estão contextualizados, eles não fa
zem muito sentido para uma pessoa ou mesmo para um computador.
Na memória ou no armazenamento de um computador, os dados são uma série de bits (dígitos bi
nários), que podem ter o valor um ou zero. Os dados são processados pela CPU (Unidade de Pro
cessamento Central), que usa operações lógicas para produzir novos dados (saída), a partir dos d
ados de origem (entrada).
Computadores recebem dados de entrada com o objetivo de transformá-los, processá-los e, por f
im, exibir informações aos usuários de forma mais significativa. Assim, para que esses dados po
ssam ser transportados, desde sua entrada (origem) no sistema computacional até a sua saída, se 
faz necessário percorrer vias bem definidas e estruturadas, com regras de operação para cada tip
o de dado a ser manipulado.
Nesta Unidade de Aprendizagem, você verá como a linguagem de programação Python trata e m
anipula os dados na memória do computador. Além disso, você também verá como formular e i
nterpretar soluções algorítmicas de manipulação de dados com a aplicação de diferentes operado
res.
Bons estudos.
Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados:
Descrever a organização de dados manipuláveis por um algoritmo na memória do computa
dor.
•
Formular soluções algorítmicas empregando os diferentes operadores.•
Interpretar soluções algorítmicas de manipulação de dados.•
DESAFIO
Na programação, variáveis, operadores e tipos de dados são extremamente importantes para a tra
nsformação dos dados de entrada em dados (ou informações) de saída. Praticamente todas as lin
guagens de programação fazem uso dessas estruturas para manipular valores durante a execução 
de um algoritmo. Em determinadas situações, é preciso validar esses dados, principalmente quan
to ao seu tipo, para que o programa não falhe.
Suponha que você é o programador de uma empresa de contabilidade.
Com base nessas informações, responda:
A) Qual função do Python poderia ser usada para verificar se o que foi digitado, para o valor que 
vai a esquerda ou a direita do operador, é um valor numérico?
B) Como ficaria a expressão lógica que está sendo avaliada pela instrução if?
INFOGRÁFICO
Conceitualmente, vetor é uma estrutura unidimensional, que armazena valores (elementos) hom
ogêneos, em que cada valor pode ser identificado por um índice. Isso significa que pode conter d
ados de apenas um tipo, além de manter a posição dos dados por meio dos índices. Dessa forma, 
os dados não perdem a ordem natural em que foram posicionados na criação do vetor.
Matriz é um arranjo ordenado que, diferente do vetor, pode ter mais de uma dimensão. Assim, p
odemos dizer que matrizes são n-dimensionais. Por exemplo, uma matriz de duas dimensões ser
á chamada bidimensional, uma matriz de três dimensões tridimensional e assim por diante. Simi
lar ao vetor, matriz também tem índices para cada uma de suas dimensões e armazena dados de 
apenas um tipo.
Na linguagem de programação Python, a estrutura que mais atende ao conceito de vetor é a lista 
(list). Da mesma forma, a estrutura de dados que mais atende ao conceito de matriz é a lista de l
istas.
Python tem um recurso incrível chamado de notação de fatiamento. O fatiamento pode ser usado 
em listas, tuplas, arranjos e, também, em algumas estruturas de dados personalizadas.
Neste Infográfico, você verá a representação visual da lista e como acessar seus elementos usand
o a notacão de fatiamento (slice) da linguagem de programação Python.
CONTEÚDO DO LIVRO
Informação é a matéria-prima da computação, que dá sentido a existência de computadores. Por
ém, até que um dado seja transformado em informação, ele percorre um longo caminho. Além di
sso, para percorrer esse caminho, cada dado necessita de um contêiner especializado para cada ti
po – seja um dado numérico, lógico ou mesmo uma sequência de valores.
No capítulo Variáveis, tipos de dados e operadores de algoritmos em Python, do livro Raciocíni
o lógico, você verá como, em um sistema computacional, os dados podem ser manipulados por 
meio de variáveis e operadores.
Boa leitura.
RACIOCÍNIO 
ALGORÍTMICO
Variáveis, tipos de 
dados e operadores de 
algoritmos em Python
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:
 Descrever a organização de dados manipuláveis por um algoritmo 
na memória do computador.
 Formular soluções algorítmicas empregando os diferentes operadores.
 Interpretar soluções algorítmicas de manipulação de dados.
Introdução
Ao contrário de um ser humano, um computador não sabe a diferença 
entre a expressão “1234” e a expressão “abcd”. Para haver essa distinção 
em um sistema computacional, é necessária uma classificação que de-
termine o que uma variável (ou objeto) pode conter. Variáveis e tipos de 
dados são fatores importantes em praticamente todas as linguagens de 
programação de computadores, incluindo a linguagem de programação 
Python. Quando os programadores criam aplicativos de computador, seja 
para desktop, mobile ou mesmo para a web, os tipos de dados devem ser 
referenciados e usados corretamente para garantir o resultado adequado 
e um programa sem erros.
Neste capítulo, você vai ver como manipular variáveis que armazenam 
qualquer tipo de dado, sejam dados numéricos, sequenciais ou lógicos. 
Você também vai conhecer uma variedade de operadores, como ope-
radores aritméticos, relacionais (ou de comparação), binários, lógicos e 
de atribuição. Além disso, você vai estudar a estrutura e o processo de 
avaliação de expressões, incluindo os conceitos de precedência dos 
operadores e associatividade de um operador.
Identificação interna do documento 1IHNVHPA5P-YPKWV71
1 Gerenciamento de memória e variáveis
Antes de você estudar as variáveis e os tipos de dados, deve compreender como 
o Python funciona e como as variáveis escritas em Python se comportam na 
memória de um computador. Para isso, é possível fazer uma analogia entre a 
memória de um computador e um livro de vários autores com espaços ainda 
vazios. Nesse livro, ainda não há muita coisa escrita nas páginas e, eventu-
almente, diferentes autores aparecerão. Cada autor deseja algum espaço para 
escrever sua própria história. Porém, como eles não podem escrever um em 
cima do texto do outro, devem ter cuidado com as páginas em que escrevem. 
Assim, antes de começarem a escrever, consultam o gerente do livro. O gerente 
decide em que local do livro cada autor tem permissão para escrever. Como 
esse livro existe há muito tempo, muitas histórias contidas nele não são mais 
relevantes. Assim, quando ninguém lê ou faz referência àquelas histórias 
sem relevância, elas são removidas para abrir espaço para novas narrativas.
Na verdade, em computação, é comum chamar blocos contíguos de “páginas 
de memória de comprimento fixo”. Portanto, essa analogia serve muito bem 
para se falar de memória de computador. Em essência, a memória do com-
putador é como aquele livro, e os autores são como diferentes aplicativos ou 
processos que precisam armazenar dados na memória. O gerente, que decide 
onde os autores podem escrever no livro, desempenha o papel de um tipo de 
gerenciador de memória. Por fim, a pessoa que removeu as histórias antigas 
para dar lugar a novas é um coletor de lixo de memória.
O gerenciamento de memória é o processo pelo qual os aplicativos leem 
e gravam dados. Um gerenciador de memória determina onde colocar os 
dados de um aplicativo. A memória, como as páginas do livro da analogia, 
são finitas. Logo, o gerente precisa encontrar algum espaço livre e fornecê-lo 
ao aplicativo. Esse processode fornecer memória é geralmente chamado de 
alocação de memória. Assim, quando um dado não é mais necessário, ele 
pode ser excluído ou liberado. Porém, a pergunta que fica é: liberado para 
onde? De onde veio essa “memória”?
Variáveis, tipos de dados e operadores de algoritmos em Python2
Identificação interna do documento 1IHNVHPA5P-YPKWV71
Em algum lugar do computador, existe um dispositivo físico que armazena 
dados quando se executa programas Python. Existem muitas camadas de 
abstração pelas quais o código Python passa antes que os objetos cheguem 
ao hardware. Uma das principais camadas acima do hardware (como RAM 
[random access memory, em português memória de acesso aleatório] ou disco 
rígido) é o Sistema Operacional (SO). O SO realiza (ou nega) solicitações para 
ler ou gravar o dado (ou informação) na memória. Acima do SO, existem 
aplicativos, um dos quais é a implementação padrão do Python, que vem por 
padrão incluída no sistema operacional, ou pode ser baixada do site oficial 
(www.python.org). O gerenciamento de memória para o código Python é 
tratado pelo aplicativo Python. O modo como o Python manipula e gerencia 
os dados de memória é o foco deste capítulo.
A implementação padrão do Python, chamada de “CPython”, é escrita na 
linguagem de programação C (PYTHON SOFTWARE FOUNDATION, 2019b). 
Ela converte seu código Python em instruções que são executadas em uma 
máquina virtual. Máquinas virtuais são como computadores físicos, mas são 
implementadas em software. Elas geralmente processam instruções básicas 
semelhantes às instruções de montagem (assembly). Assim, Python é uma 
linguagem de programação interpretada. Seu código Python é previamente 
compilado para obter instruções mais legíveis para computador, chamadas 
bytecode. Essas instruções são interpretadas por uma máquina virtual quando 
o código Python é executado.
É importante observar que existem outras implementações além do 
CPython. O IronPython, por exemplo, é compilado para execução no Com-
mon Language Runtime (CLR) da Microsoft. O Jython também é compilado 
no bytecode da linguagem de programação Java para ser executado na Java 
Virtual Machine (JVM). O CPython é escrito na linguagem de programação 
C, que não suporta nativamente a programação orientada a objetos. Por esse 
motivo, existem alguns designs interessantes no código CPython.
Tudo no Python é um objeto, mesmo tipos como int (inteiro) e str (string). 
Assim, em partes, isso é verdade em um nível de implementação no CPython. 
Existe uma estrutura chamada “PyObject”, que todos os outros objetos do 
3Variáveis, tipos de dados e operadores de algoritmos em Python
Identificação interna do documento 1IHNVHPA5P-YPKWV71
CPython usam. Pode-se dizer que o PyObject é pai de todos os objetos em 
Python; ele contém apenas dois elementos: ob_refcnt, que é a contagem de 
referência, e ob_type, que é o ponteiro para outro tipo de objeto. A contagem 
de referência é usada para coleta de lixo. Então, há um ponteiro para o tipo 
de objeto real. Esse tipo de objeto é apenas outra estrutura que descreve um 
objeto Python, como um dict (dicionário) ou um int (inteiro).
Cada objeto tem seu próprio alocador de memória específico e sabe fazer 
com que a memória o armazene. Além disso, cada objeto possui um desalo-
cador de memória específico que “libera” a memória quando ela não é mais 
necessária. No entanto, há um fator importante envolvendo todo esse assunto 
sobre alocação e liberação de memória. A memória é um recurso compartilhado 
no computador, e situações desagradáveis podem acontecer se dois processos 
diferentes tentarem gravar (escrever) no mesmo local ao mesmo tempo.
O Python tem um recurso chamado Global Interpreter Lock (GIL), que é 
uma solução para o problema comum de ter de lidar com recursos comparti-
lhados, como a memória em um computador (PYTHON SOFTWARE FOUN-
DATION, 2019b). A Figura 1 apresenta um exemplo gené rico do gerenciador 
de memória em Python.
Figura 1. Gerenciador de memória em Python.
Quando dois processos (ou threads) tentam modificar o mesmo recurso 
ao mesmo tempo, eles podem “pisar nos dedos” um do outro. O resultado 
final pode ser uma bagunça ilegível, em que nenhum dos processos termina 
como esperado. Considerando a analogia do livro apresentada anteriormente, 
Variáveis, tipos de dados e operadores de algoritmos em Python4
Identificação interna do documento 1IHNVHPA5P-YPKWV71
suponha que dois autores decidam “teimosamente” que é a vez deles de 
escrever. Não apenas isso, mas ambos precisam escrever na mesma página 
do livro e, ainda, ao mesmo tempo. Cada um dos autores ignora a tentativa 
do outro de criar uma história e começa a escrever na página. O resultado 
final serão duas histórias, uma em cima da outra, o que tornará toda a página 
completamente ilegível.
Uma solução viável para o problema de memória compartilhada é fazer um 
bloqueio global e único no interpretador toda vez que um processo interage 
com a memória (a página do livro). Nesse caso, em outras palavras, apenas 
um autor de cada vez pode escrever naquela página. O GIL do Python realiza 
isso bloqueando todo intérprete, o que significa que não é possível que outro 
processo interfira no processo que está sendo realizado. Quando o CPython 
manipula a memória, ele usa o GIL para garantir segurança. Assim, o geren-
ciamento de memória é parte integrante do trabalho com computadores, e o 
Python lida com quase tudo nos bastidores.
Variáveis em Python
Em Python, quando se fala em variável, deve-se pensar em uma variável 
como um nome anexado a um objeto específi co (PYTHON SOFTWARE 
FOUNDATION, 2019c). No Python, as variáveis não precisam ser declaradas 
ou defi nidas com antecedência, como é o caso em muitas outras linguagens de 
programação, por exemplo, C ou Java. Para criar uma variável, basta defi nir 
um nome, atribuir um valor para ela e começar a usá-la. A atribuição é feita 
com um único sinal de igual (=):
nome = "John"
Isso é lido ou interpretado como “para ‘nome’, seja atribuído o valor ‘John’”. 
Uma vez feito isso, o identificador “nome” pode ser usado em uma instrução 
(ou declaração) ou expressão.
Em muitas linguagens de programação, as variáveis são declaradas esta-
ticamente. Isso significa que uma variável é inicialmente relacionada a um 
tipo de dados específico, e qualquer valor atribuído a ela durante sua vida 
útil deve ter sempre esse tipo. Variáveis em Python não estão sujeitas a essa 
restrição. No Python, uma variável pode ser atribuída a um valor de um tipo 
e, posteriormente, redesignada a um valor de tipo diferente.
5Variáveis, tipos de dados e operadores de algoritmos em Python
Identificação interna do documento 1IHNVHPA5P-YPKWV71
var = 5.7
print(id(var)) # Endereço na memória: 4557936080
print(var) # Resultado: 5.7
print(type(var)) # Resultado: <class 'float'>
var = 'Agora eu sou uma string'
print(id(var)) # Endereço na memória: 4497916832
print(var) ## Resultado: Agora eu sou uma string
print(type(var)) # Resultado: <class 'str'>
No exemplo que você acabou de ver, foi utilizada uma função chamada 
“type()”. Essa função tem o objetivo de imprimir o tipo de dado que um objeto 
possui. Quando são apresentadas as instruções do exemplo, o interpretador 
Python está realizando os passos listados a seguir.
1. Crie na memória um objeto do tipo ponto flutuante ( float) cujo iden-
tificador é “var”.
2. Atribua-lhe o valor 5.7.
3. Exiba no console o número do identificador do objeto “var”.
4. Exiba no console o valor contido em “var”.
5. Exiba no console o tipo da classe do objeto “var”.
6. Crie na memória um novo objeto do tipo str cujo identificador é “var”, 
porém, como já existe um objeto na memória com esse identificador, 
antes, destrua o antigo objeto “var”.
7. Atribua-lhe o valor “Agora eu sou uma string”.
8. Exiba no console o número do identificador do objeto “var”.
9. Exiba no console o valor contido em “variável”.
10. Exiba no console o tipo da classe do objeto.
Variáveis, tipos de dadose operadores de algoritmos em Python6
Identificação interna do documento 1IHNVHPA5P-YPKWV71
O Python possui um tipo de função interna chamado “type()” para determinar o tipo 
de dados de uma variável ou o seu valor. Outra função interna é a “isinstance()”, que 
existe para testar se um objeto é uma instância de outro objeto.
Pode-se dizer que o Python é uma linguagem forte e dinamicamente tipada, 
ou seja, uma variável pode ser atribuída com outro tipo durante a sua vida 
útil no sistema, porém não é possível fazer operações com tipos diferentes, a 
menos que isso esteja muito bem definido previamente. Por exemplo, não é 
possível fazer uma operação de soma entre um tipo inteiro e um tipo string, 
a menos que seja sobrescrito como realizar essa operação, desenhando um 
método próprio para esse tipo de caso.
O Python é também uma linguagem altamente orientada a objetos. De fato, 
praticamente todos os itens de dados em um programa Python são objetos de 
um tipo ou classe específica (esse ponto será tratado mais adiante neste capí-
tulo). Assim, pode-se dizer que uma variável Python tem um nome simbólico 
(identificador) e é uma referência (ou ponteiro) para um objeto. Depois que um 
objeto é atribuído a uma variável, é possível se referir a ele com esse nome. 
Porém, os dados em si ainda estão contidos no objeto.
Um dos comportamentos das referências para um objeto em Python se dá 
por meio de um contador de referências. Quando se atribui um valor para uma 
variável, por exemplo, “a = 1”, uma referência “a” é adicionada ao objeto e a 
contagem de referência do valor “1” é incrementada. Quando o Python executa 
a próxima instrução, por exemplo, “b = 1”, já que se trata do mesmo valor (1), 
um novo objeto não é inicializado. O mesmo objeto na memória com o valor “1” 
apenas possui outra referência “b”. Isso faz parte do processo de gerenciamento 
de memória Python. Para “c = 2”, um novo objeto é criado novamente, pois 
ele possui um novo valor “2” com “c” como referência agora apontando para 
“1”. Por fim, se for atribuído um valor para uma nova variável, por exemplo, 
“d = a”, o gerenciador de memória incrementa mais uma referência para o 
objeto “1”, tendo também “d” como variável. O mesmo ocorre para valores 
de uma lista quando os elementos dela têm o mesmo valor atribuído a outra 
variável anteriormente.
7Variáveis, tipos de dados e operadores de algoritmos em Python
Identificação interna do documento 1IHNVHPA5P-YPKWV71
a = 1
print(id(a)) # ID: 4447157152 - Valor 1 tem 1 referência (a)
b = 1
print(id(b)) # ID: 4447157152 - Valor 1 tem 2 referências 
(a e b)
c = 2
print(id(c)) # ID 4466998208 - Valor 2 tem 1 referência (c)
d = a
print(id(d)) # ID: 4447157152 - Valor 1 tem 3 referências 
(a, b e d)
L = [1, 1, 1, 1] # Valor 1 tem 7 referências (a b, c, L[0], 
L[1], L[2} e L[3])
print(id(L[0])) # ID: 4447157152
print(id(L[1])) # ID: 4447157152
print(id(L[2])) # ID: 4447157152
print(id(L[3])) # ID: 4447157152
Os exemplos apresentados até agora usaram nomes curtos para as variáveis. 
Mas nomes de variáveis podem ser mais detalhados. De fato, geralmente é mais 
benéfico quando o nome da variável representa o seu conteúdo, pois isso torna 
o objetivo da variável mais evidente à primeira vista. Oficialmente, os nomes 
de variáveis no Python podem ter qualquer tamanho e podem consistir em 
letras maiúsculas e minúsculas (A–Z, a–z), dígitos (0–9) e caractere sublinhado 
(_). Uma restrição adicional é que, embora um nome de variável possa conter 
dígitos, o primeiro caractere de um nome de variável nunca pode ser um dígito.
Não há nada que impeça a criação de variáveis diferentes no mesmo programa 
denominadas “iDade”, “idade” e “idadE”. Mas isso é extremamente desaconselhá-
vel. Sem sombra de dúvida, qualquer um que tentasse ler o código ficaria confuso. 
Até mesmo o próprio programador do código, depois de ficar um tempo sem lidar 
com ele, ficaria confuso. Assim, vale a pena dar a uma variável um nome que seja 
descritivo o suficiente para esclarecer para que ela está sendo usada.
Variáveis, tipos de dados e operadores de algoritmos em Python8
Identificação interna do documento 1IHNVHPA5P-YPKWV71
Suponha que seja preciso calcular o número de pessoas que estão se formando na 
faculdade. É possível escolher qualquer um dos seguintes nomes:
numerodeformandos = 1500 # Todas minúsculas
NUMERODEFORMANDOS = 1500 # Todas maiúsculas
numeroDeFormandos = 1500 # Camel Case
NumeroDeFormandos = 1500 # Pascal Case
numero _ de _ formandos = 1500 # Snake Case
print(numerodeformandos,
 NUMERODEFORMANDOS,
 numeroDeFormandos,
 NumeroDeFormandos,
 numero _ de _ formandos)
Todos os exemplos que você acabou de ver são melhores nomes do que 
apenas um “n”, um “ndf” ou similares. Pelo menos, é possível dizer pelo nome 
qual valor a variável representa. Por outro lado, nem todos são igualmente 
legíveis. Como em muitas situações, nesse caso a escolha é uma questão de 
preferência pessoal, mas a maioria das pessoas consideraria os dois primeiros 
exemplos (particularmente o que utiliza todas as letras maiúsculas), em que 
todas as letras são colocadas juntas, mais difíceis de ler. Os métodos mais 
usados para construir um nome de variável com várias palavras são Camel 
case, Pascal case e Snake, que correspondem respectivamente aos métodos 
usados para definição dos nomes das variáveis: numeroDeFormandos, 
NumeroDeFormandos e numero _ de _ formandos. A seguir, você 
vai conhecê-los melhor. 
 Camel case: a segunda palavra e as subsequentes têm iniciais maiúsculas 
para facilitar a visualização dos limites dos termos (Provavelmente, 
ocorreu a alguém em algum momento que as letras maiúsculas espa-
lhadas pelo nome da variável se assemelham vagamente à corcundas 
dos camelos).
9Variáveis, tipos de dados e operadores de algoritmos em Python
Identificação interna do documento 1IHNVHPA5P-YPKWV71
 Pascal case: idêntico ao Camel case, exceto que a primeira palavra 
também tem inicial maiúscula.
 Snake case: as palavras são separadas por sublinhados.
Os programadores que usam Python debatem calorosamente sobre qual dos 
métodos é preferível. Há argumentos para defender cada um desses estilos. 
O programador deve utilizar o que for mais atraente visualmente para ele. 
Assim, deve escolher um e usá-lo de forma consistente.
As variáveis não são os únicos elementos que podem receber nomes em 
Python. Além delas, também se nomeiam funções, classes, módulos e assim 
por diante. As regras que se aplicam a nomes de variáveis também se aplicam 
a identificadores, o termo mais geral para nomes dados a objetos de programa. 
O Guia de Estilo para Código Python, também conhecido como PEP-0008, 
contém convenções de nomenclatura que listam padrões sugeridos para nomes 
de diferentes tipos de objetos. O PEP-0008 inclui as recomendações a seguir.
 Snake case: deve ser usado para funções e nomes de variáveis.
 Pascal case: deve ser usado para nomes de classe.
Além das regras de sintaxe para os nomes de variáveis, ainda existe mais 
uma restrição para os nomes desses identificadores. A linguagem de progra-
mação Python reserva um pequeno conjunto de palavras-chave (keywords) que 
designam funcionalidades especiais da linguagem. Nenhum objeto pode ter 
o mesmo nome que uma dessas palavras reservadas. No Python 3.7, existem 
35 palavras-chave reservadas (Quadro 1).
False def if raise continue break assert
None del import return global for finally
True elif in try pass not nonlocal
and else is while class async yield
as except lambda with from await or
Quadro 1. Palavras-chave reservadas do Python
Variáveis, tipos de dados e operadores de algoritmos em Python10
Identificação interna do documento 1IHNVHPA5P-YPKWV71
É possível ver essa lista a qualquer momento digitando “help(‘keyword’)” 
em um terminal ou console com interpretador Python. As palavras reservadas 
diferenciam maiúsculas de minúsculas e devem ser usadas exatamente como 
mostrado no Quadro 1.Todas as keywords são escritas em letras minúsculas, 
exceto False, None e True, que têm a primeira letra capitalizada. Se você 
tentasse criar uma variável com o mesmo nome de qualquer palavra reservada, 
isso resultaria em uma exceção (Exception) levantada pelo Python.
2 Tipos de dados em Python
Em geral, um tipo de dado defi ne o formato e os limites superior e infe-
rior dos dados para que um programa possa usá-los adequadamente. No 
entanto, os tipos de dados Python são muito mais do que isso. No Python, 
não é preciso declarar uma variável mencionando explicitamente o tipo do 
dado. Esse recurso, como foi discutido anteriormente, é conhecido como 
“tipagem dinâmica” (PYTHON SOFTWARE FOUNDATION, 2019a). O 
Python determina o tipo de um valor diretamente na sintaxe do código e em 
tempo de execução. Por exemplo, as aspas marcam a declaração de um valor 
sequencial, os colchetes representam uma lista e as chaves são utilizadas 
para um dicionário. Além disso, os números não decimais serão atribuídos 
ao tipo inteiro, enquanto aqueles com um ponto decimal serão atribuídos 
para pontos fl utuantes.
A seguir, está a lista de tipos de dados importantes comumente usados 
no Python. Depois, você vai conhecer melhor cada um deles e ver exemplos.
 Booleanos (booleans)
 Numéricos (numbers)
 Cadeias de caracteres (strings)
 Bytes
 Listas (lists)
 Tuplas (tuples)
 Conjuntos (sets)
 Dicionários (dictionaries)
11Variáveis, tipos de dados e operadores de algoritmos em Python
Identificação interna do documento 1IHNVHPA5P-YPKWV71
Tipos numéricos
São um dos tipos de dados mais importantes em Python. Ao contrário de 
muitas linguagens que possuem apenas números inteiros e fl utuantes, o Python 
introduz o número complexo como um novo tipo de dado numérico. Os ti-
pos de dados numéricos em Python são classifi cados usando as seguintes 
palavras-chave: int, fl oat e complex. Os tipos booleanos são considerados uma 
especialização do tipo inteiro.
Booleano
É um tipo de dado que quase todas as linguagens de programação possuem. O 
booleano em Python pode ter dois valores, verdadeiro ou falso. Esses valores 
são constantes e podem ser usados para atribuir ou comparar valores booleanos. 
Veja um exemplo simples a seguir.
condicao = False
if condicao: # Equivalente a: if condicao == True
 print("Continuar programa!")
else:
 print("O programa será encerrado!")
a = True + 0 # Resultado: 1
b = False + 0 # Resultado: 0
print(type(a)) # Resultado: <class 'int'>
print(type(b)) # Resultado: <class 'int'>
A expressão em um bloco de condições produzirá um valor booleano. 
O Python cria contextos booleanos para avaliar expressões. Seja qual for a 
Variáveis, tipos de dados e operadores de algoritmos em Python12
Identificação interna do documento 1IHNVHPA5P-YPKWV71
expressão, o Python usará o contexto booleano para determinar seu valor 
verdadeiro. Como o Python possui muitos tipos de dados, eles operam com 
suas próprias regras para encontrar o resultado em um contexto booleano. 
Em alguns casos, as constantes booleanas True e False também podem 
atuar como números. É evidente no exemplo anterior que True é 1 e que o 
valor de False é 0. Eles se transformarão em números durante operações 
aritméticas.
Inteiros
A partir do Python 3, efetivamente não há limite para o quão longo um valor 
inteiro pode ser. Obviamente, ele é limitado pela quantidade de memória que 
o sistema possui, mas, para além disso, um número inteiro pode ser tão longo 
quanto necessário. O Python interpreta uma sequência de dígitos numéricos e 
sem nenhum prefi xo como um número decimal de base 10. Outras sequências 
de caracteres podem ser anexadas a um valor inteiro para indicar uma base 
diferente de 10. O tipo subjacente de um número inteiro Python, independen-
temente da base usada para especifi cá-lo, é chamado de int.
Números de ponto flutuante
Esse tipo designa um número de ponto fl utuante no Python. Valores fl utu-
antes são especifi cados com um ponto (.) que separa os valores decimais 
dos valores inteiros. Um número de ponto fl utuante é aquele em que a 
posição do ponto decimal pode “fl utuar” em vez de estar em uma posição 
fi xa dentro de um número. Exemplos de números de ponto fl utuante são: 
1.23, 87.425 e 9039454.2. Diferentes linguagens de programação ou sistemas 
podem ter limites de tamanho ou formas distintas de defi nir números de 
ponto fl utuante.
Opcionalmente, o caractere “e” ou “E” seguido por um número inteiro, 
positivo ou negativo, pode ser anexado para especificar a notação científica. 
Uma notação de ponto flutuante é um cálculo matemático usado para exibir 
números longos de forma “curta”. Por exemplo, um número como 12.000.000 
pode ser escrito como 12e6 ou também pode ser 0.12 * 10e8.
13Variáveis, tipos de dados e operadores de algoritmos em Python
Identificação interna do documento 1IHNVHPA5P-YPKWV71
No Python, não é preciso descrever a parte inteira do tipo float quando ela for zero. 
Para representar “0.5”, basta apenas descrever: “.5”. Veja como pode ser descrita uma 
expressão que eleva um valor “x” a meio: x**.5 seria o mesmo que x**(1/2).
Números complexos
O Python também suporta números complexos, ou números compostos por 
uma parte real e uma parte imaginária. Assim como a instrução “print()” é 
usada para imprimir valores, a função “complex()” é usada para criar números 
complexos. Essa função requer dois valores, o primeiro será a parte real do 
número complexo, enquanto o segundo valor será a parte imaginária.
Tipos sequenciais
Existem alguns tipos básicos e personalizados de sequências em Python: listas 
(objetos list) e tuplas (objetos tuple) são tipos básicos. Além disso, existem os 
tipos de sequências personalizados para o processamento de dados binários 
(objetos bytes) e as sequências de texto ou cadeias de caracteres (objetos str).
Cadeias de caracteres
Uma sequência de um ou mais caracteres entre aspas simples (') ou aspas duplas 
(") é considerada string no Python. Qualquer letra, número ou símbolo pode 
fazer parte da sequência. Python também suporta sequências de várias linhas, 
que requerem estar entre aspas triplas ("""). Sequências de caracteres entre 
triplas de aspas (simples ou duplas) conservam o caractere de quebra de linha 
(\n) como parte da string.
Variáveis, tipos de dados e operadores de algoritmos em Python14
Identificação interna do documento 1IHNVHPA5P-YPKWV71
aspas _ simples = 'Esse tipo de string permite aspas "du-
plas" incorporadas.'
aspas _ duplas = "Esse tipo de string permite aspas 'sim-
ples' incorporadas."
tripla _ de _ aspas _ simples = '''Esse tipo de string permite 
aspas 'simples', 
"duplas" e ""triplas duplas""" incorporadas.'''
tripla _ de _ aspas _ duplas = """Esse tipo de string permite 
aspas 'simples', 
"duplas" e '''tripla simples''' incorporadas."""
print(type(aspas _ simples)) # <class 'str'>
print(aspas _ simples[0:5]) # Cinco primeiros caracteres
print(aspas _ simples[1:5]) # Substring de 2 até 5
print(aspas _ simples[-6:-1]) # Cinco caracteres antes do 
último
print(aspas _ simples[-2:]) # Dois últimos caracteres
print(aspas _ simples[:2]) # Dois primeiros caracteres
Existem várias funções em Python para manipular cadeias de caracteres. Uma delas 
é a função isnumeric(), que retorna verdadeiro se os caracteres de uma cadeia 
são caracteres numéricos. Caso contrário, retorna falso.
15Variáveis, tipos de dados e operadores de algoritmos em Python
Identificação interna do documento 1IHNVHPA5P-YPKWV71
Bytes
O byte é um tipo imutável em Python. Ele pode armazenar uma sequência de 
bytes (cada byte tem 8 bits) variando de 0 a 255. Semelhante ao que ocorre em 
uma lista, é possível buscar o valor de um único byte usando o índice. Mas 
não é possível modifi car o valor em nenhuma posição. A seguir, veja algumas 
diferenças entre byte e string.
 Os objetos do tipo byte contêm uma sequência de bytes, enquanto as 
strings contêm uma sequência de caracteres.
 Os bytes sãoobjetos legíveis apenas para o computador, enquanto as 
strings estão na forma legível para os humanos.
 Como o byte é legível apenas por máquina, ele pode ser armazenado 
diretamente no disco. Já as strings precisam ser codificadas antes de 
serem armazenadas no disco.
Um contexto em que os bytes são importantes é quando se executam 
operações de entrada e saída (E/S) com o buffer (espaço reservado) ativado. 
Considere, por exemplo, um programa que está recebendo continuamente os 
dados pela rede. Ele vai armazenando os dados que vêm pelo fluxo; depois 
que os cabeçalhos e terminadores de mensagens aparecem no fluxo, os dados 
recebidos são analisados. Então, o programa continua anexando mais bytes 
que estão chegando no buffer de forma contínua.
objeto _ vazio = bytes(2)
print(type(objeto _ vazio)) # <class 'bytes'>
print(objeto _ vazio) # Resultado: b'\\x00\\x00'
buffer = b''
while verificar _ mensagem(buffer):
 buffer += ler _ do _ socket()
Variáveis, tipos de dados e operadores de algoritmos em Python16
Identificação interna do documento 1IHNVHPA5P-YPKWV71
Listas
São construções semelhantes às strings, porém servem para armazenar objetos 
de tipo arbitrário em uma sequência ordenada. Uma lista é muito fl exível e 
não possui um tamanho fi xo. O índice de lista é também uma lista que começa 
com zero no Python. É uma coleção heterogênea de itens de tipos de dados 
variados. As listas em Python podem ser declaradas se os elementos forem 
colocados entre colchetes e forem separados por vírgulas. A seguir, veja as 
características importantes das listas Python:
 as listas são ordenadas;
 as listas podem conter objetos arbitrários;
 os elementos da lista podem ser acessados pelo índice;
 as listas podem ser aninhadas com profundidade arbitrária;
 as listas são mutáveis;
 as listas são dinâmicas.
lista = [True, 1, 1.1, 1 + 2j, 'Teste', b'bytes', [1, 2, 3], 
(1, 2), {1: 'a'}]
for elemento in lista:
 print(type(elemento)) # Resultados:
# <class 'bool'>
# <class 'int'>
# <class 'float'>
# <class 'complex'>
# <class 'str'>
# <class 'bytes'>
# <class 'list'>
# <class 'tuple'>
# <class 'dict'>
tupla = ('01', '02', '03') # Embalar
(janeiro, fevereiro, marco) = tupla # desembalar
print(janeiro) # Resultado: 01
print(fevereiro) # Resultado: 02
print(marco) # Resultado: 03
17Variáveis, tipos de dados e operadores de algoritmos em Python
Identificação interna do documento 1IHNVHPA5P-YPKWV71
Tuplas
As tuplas são imutáveis, ou seja, seus elementos não podem ser modifi cados 
ou excluídos depois de confi gurados. As tuplas geralmente têm melhor 
desempenho (seus dados podem ser acessados mais rapidamente) do que 
uma lista regular. Uma tupla é uma estrutura de dados ideal para uma lista 
de itens heterogêneos (que se diferem em tipo ou comprimento) cujo valor 
não muda. As tuplas são idênticas às listas em todos os aspectos, exceto 
pelos seguintes itens:
 as tuplas são definidas colocando-se os elementos entre parênteses em 
vez de entre colchetes;
 as tuplas são imutáveis;
 as tuplas podem ser embaladas e desembaladas (packed e unpacked).
Mapas
Um objeto de mapeamento mapeia valores hash (identifi cadores de tamanho 
fi xo e que podem ser ordenados) para objetos arbitrários. Mapeamentos são 
objetos mutáveis. Atualmente, existe apenas um tipo de mapeamento padrão, 
o dicionário.
Dicionários
O dicionário é um tipo de estrutura de dados utilizado para mapear ou asso-
ciar itens. Um dicionário em Python é como um dicionário no mundo real e 
é composto por dois elementos, as chaves e os valores. As chaves devem ser 
elementos únicos, ou seja, em um dicionário, não pode haver duas chaves com 
Variáveis, tipos de dados e operadores de algoritmos em Python18
Identificação interna do documento 1IHNVHPA5P-YPKWV71
o mesmo nome ou valor. Os valores podem ser praticamente de qualquer tipo, 
por exemplo, uma lista ou lista de lista, numéricos, booleanos, etc. A seguir, 
veja as características dos dicionários.
 São mutáveis. Podem ter seus valores e chaves alterados.
 São dinâmicos. Eles podem crescer e encolher conforme necessário.
 Podem ser aninhados. Um dicionário pode conter outro dicionário ou 
uma lista.
 Os elementos do dicionário são acessados via chaves.
 Os dicionários podem ser criados colocando-se uma lista separada por 
vírgula de pares “chave:valor” entre chaves. Cada par de chave mapeia 
para seu valor associado.
dicionario1 = dict() # mesmo que: dicionario = {}
dicionario2 = { # chave numérica
 1: 'futebol',
 2: 'basebol'
}
print(dicionario2) # Resultado: {1: 'futebol', 2: 'basebol'}
dicionario3 = dict({ # chaves de tipos diferentes
 'classe': 'primeira',
 1: [1, 2, 3]
})
print(dicionario3) # Resultado: {'classe': 'primeira', 1: 
[1, 2, 3]}
dicionario4 = dict([ # Criado com uma sequência de tuplas
 (1, 'teste1'),
 (2, 'teste2')
])
print(dicionario4) # Resultado: {1: 'teste1', 2: 'teste2'}
19Variáveis, tipos de dados e operadores de algoritmos em Python
Identificação interna do documento 1IHNVHPA5P-YPKWV71
3 Operadores em Python
Como muitas outras linguagens de programação, o Python também reserva 
alguns caracteres especiais para atuar como operadores (PYTHON SOF-
TWARE FOUNDATION, 2019d). Todo operador realiza algumas operações, 
como adição e multiplicação, para manipular dados e variáveis. As variáveis 
passadas como entrada para um operador são conhecidas como “operandos”.
Operadores aritméticos
São os símbolos que representam operações matemáticas aritméticas. Com 
operadores aritméticos, é possível realizar várias operações aritméticas, como 
adição, subtração, multiplicação, divisão, módulo, expoente, etc. O Python 
fornece várias maneiras para cálculos aritméticos, como função eval(), declarar 
variável e calcular ou mesmo chamar funções. No Quadro 2, a seguir, veja 
uma lista dos operadores aritméticos.
Operador Propósito Uso
+ Adição a + b
– Subtração a – b
* Multiplicação a * b
/ Divisão a / b
// Inteiro da divisão a // b
% Módulo a % b
** Expoente a ** b
 Quadro 2. Lista dos operadores aritméticos 
Operadores de comparação
Na programação Python, os operadores de comparação permitem determinar 
se dois valores são iguais ou se um é maior do que o outro, e então tomar 
uma decisão com base no resultado. O Quadro 3 descreve os operadores de 
comparação internos no Python.
Variáveis, tipos de dados e operadores de algoritmos em Python20
Identificação interna do documento 1IHNVHPA5P-YPKWV71
Operador Propósito Uso
> Maior que a > b
< Menor que a < b
== Igual a a == b
!= Diferente de a != b
>= Maior ou igual a a >= b
<= Menor ou igual a a <= b
 Quadro 3. Lista dos operadores de comparação 
Operadores lógicos
Os operadores lógicos do Python permitem a tomada de decisões com base 
em várias condições. Os operandos agem como condições que podem resultar 
em um valor verdadeiro ou falso. O resultado dessa operação é verdadeiro ou 
falso (ou seja, um valor booleano). No entanto, nem todos esses operadores 
retornam um resultado booleano. Os operadores an e or retornam um de seus 
operandos em vez do valor booleano puro. Já o operador not sempre fornece 
um resultado booleano real. No Quadro 4, veja um exemplo que mostra como 
esses operadores funcionam no Python.
Operador Propósito Uso
and Se “a” for falso, então “a”; caso contrário, “b” a and b
or Se “a” for falso, então “b”; caso contrário, “a” a or b
not Se “a” for falso, então True; caso contrário, False not a
 Quadro 4. Lista dos operadores lógicos 
21Variáveis, tipos de dados e operadores de algoritmos em Python
Identificação interna do documento 1IHNVHPA5P-YPKWV71
Operadores bit a bit
Os operadores de bit a bit do Python processam os bits individuais de va-
lores inteiros. Eles os tratam como sequências de bits binários. É possível 
usar operadores bit a bit para verifi car se um bit específi co está defi nido. 
Por exemplo, os sensores geralmente trabalham com bits específi cos queindicam se determinada função está ativa ou não. Em situações similares, 
esses operadores binários podem ajudar. No Quadro 5, veja uma lista dos 
operadores binários.
Operador Propósito Uso
& Retorna 1 se ambos os bits correspondentes forem 1 a & b
| Retorna 1 se algum dos bits correspondentes for 1 a | b
~ Inverte todos os bits em um único operando ~ a
^ Retorna 1 se algum dos bits correspondentes 
for 1, mas não os dois
a ^ b
>> Desloca os bits de “a” para a direita, “b” número de vezes a >> b
<< Desloca os bits de “a” para a esquerda, 
“b” número de vezes
a << b
 Quadro 5. Lista dos operadores binários 
Operadores de atribuição
No Python, é possível usar operadores de atribuição para defi nir valores em 
variáveis. Por exemplo, a instrução “a = 4” usa um operador de atribuição pri-
mitivo que atribui o valor “4” ao operando esquerdo da instrução. No Quadro 6, 
está a lista de operadores compostos disponíveis no Python. Por exemplo, a 
instrução “a += 1” é adicionada à variável e, em seguida, atribui essa mesma 
variável. O operador será avaliado como “a = a + 1”.
Variáveis, tipos de dados e operadores de algoritmos em Python22
Identificação interna do documento 1IHNVHPA5P-YPKWV71
Operador Exemplo Mesmo que
= a = 1 a = 1
+= a += 1 a = a + 1
–= a –= 1 a = a – 1
*= a *= 1 a = a * 1
/= a /= 1 a = a / 1
%= a %= 1 a = a % 1
**= a **= 1 a = a ** 1
&= a &= 1 a = a & 1
|= a |= 1 a = a | 1
^= a ^= 1 a = a ^ 1
>>= a >>= 1 a = a >> 1
<<= a <<= 1 a = a << 1
 Quadro 6. Lista dos operadores de atribuição 
Operadores avançados
O Python também tem alguns operadores para fi ns especiais. Eles são conhe-
cidos como “operadores avançados Python” e são os operadores de identidade 
e os operadores de associação. Veja a seguir.
Operadores de identidade
Esses operadores permitem comparar os locais de memória de dois objetos 
Python. Além disso, permitem saber se os objetos Python compartilham o 
mesmo endereço de memória. As variáveis com valores iguais não são ne-
cessariamente idênticas. Como alternativa, é possível usar esses operadores 
para determinar se um valor é de uma classe ou tipo específi co. Consulte o 
Quadro 7 para entender mais sobre eles.
23Variáveis, tipos de dados e operadores de algoritmos em Python
Identificação interna do documento 1IHNVHPA5P-YPKWV71
Operador Propósito Uso
is Retorna True se os operandos referenciam o 
mesmo objeto
a is b
is not Retorna True se os operandos não referenciam o 
mesmo objeto
a is not b
 Quadro 7. Lista dos operadores de identidade 
Operadores de associação
Os operadores de associação permitem testar se um valor é membro de outros 
objetos Python, como strings, listas ou tuplas. Além disso, esse operador 
também pode testar em um dicionário, mas apenas para a chave, não para o 
valor. No Quadro 8, veja os operadores de associação.
Operador Propósito Uso
in Retorna True se o valor 
existe na sequência
1 in [1, 2, 3]
not in Retorna True se o valor 
não existe na sequência
4 not in {1:2, 2:7, 3:9}
 Quadro 8. Lista dos operadores de associação 
Precedência de operadores em Python
Quando é agrupado um conjunto de valores, variáveis, operadores ou chamadas 
de função, é necessário ter uma ordem em que as operações e operadores são 
avaliados. Por exemplo: “3 + 4” é uma expressão simples em Python e con-
tém apenas um operador e dois operandos. No entanto, uma expressão mais 
complexa pode incluir vários operadores, por exemplo, “2 * 4**4 + 5”. Para 
Variáveis, tipos de dados e operadores de algoritmos em Python24
Identificação interna do documento 1IHNVHPA5P-YPKWV71
avaliar expressões complexas, o Python estabelece a regra de precedência, 
que governa a ordem em que as operações ocorrem. A seguir está a lista da 
precedência dos operadores, da maior para a menor.
1. (**) — expoente
2. (~x) — bit a bit de negação
3. (+x, -x) — positivo, negativo
4. (*, /, %) — produto, divisão, resto
5. (+, –) — adição, subtração
6. (<<, >>) — deslocamento para a esquerda/direita
7. (&) — bit a bit AND
8. (̂ ) — bit a bit XOR
9. (|) — bit a bit OR
10. (in, not in, is, is not, <, <=, >, >=, !=, ==) — comparação, associação, 
identidade
11. (not x) — booleano NOT
12. (and) — booleano AND
13. (or) — booleano OR
Os operadores na parte inferior da lista têm a menor precedência, e aqueles 
na parte superior da lista têm a mais alta precedência. Quaisquer operadores no 
mesmo item da lista têm a mesma precedência. Está claro que a multiplicação 
é realizada antes da adição, pois tem precedência mais alta, conforme a lista 
anterior. Da mesma forma, a potência tem a precedência mais alta entre todos 
os itens da lista. Por exemplo, na expressão “2 * 4**4 + 5”, primeiramente será 
avaliada a potência, depois será avaliado o produto e, por fim, será avaliada 
a adição. Na matemática, seria algo assim: {[2 * (4**4)] + 5}.
Ao longo do capítulo, você viu como ocorrem o gerenciamento de memória 
e o gerenciamento de variáveis em Python, além dos tipos de dados suportados 
e operadores disponíveis nesta linguagem de programação. Esperamos que 
você tenha gostado, continue a estudar e a implementar soluções algorítmicas 
para manipulação dos mais variados tipos de dados em Python!
25Variáveis, tipos de dados e operadores de algoritmos em Python
Identificação interna do documento 1IHNVHPA5P-YPKWV71
PYTHON SOFTWARE FOUNDATION. Data types. [2019a]. Disponível em: https://docs.
python.org/3/library/datatypes.html. Acesso em: 30 dez. 2019.
PYTHON SOFTWARE FOUNDATION. Glossary. [2019b]. Disponível em: https://docs.
python.org/3/glossary.html#term-bytecode. Acesso em: 30 dez. 2019.
PYTHON SOFTWARE FOUNDATION. Identifiers and keywords. [2019c]. Disponível em: 
https://docs.python.org/3/reference/lexical_analysis.html#identifiers. Acesso em: 30 
dez. 2019.
PYTHON SOFTWARE FOUNDATION. Standard operators as functions. [2019d]. Disponível 
em: https://docs.python.org/3.8/library/operator.html. Acesso em: 30 dez. 2019.
Os links para sites da web fornecidos neste capítulo foram todos testados, e seu fun-
cionamento foi comprovado no momento da publicação do material. No entanto, a 
rede é extremamente dinâmica; suas páginas estão constantemente mudando de 
local e conteúdo. Assim, os editores declaram não ter qualquer responsabilidade 
sobre qualidade, precisão ou integralidade das informações referidas em tais links.
Variáveis, tipos de dados e operadores de algoritmos em Python26
Identificação interna do documento 1IHNVHPA5P-YPKWV71
Conteúdo: 
[illJ__ 
� 
SOLUÇÕES 
EDUCACIONAIS 
INTEGRADAS 
 
DICA DO PROFESSOR
Python tem várias estruturas de dados disponíveis para casos distintos. Uma das mais utilizadas 
é, sem dúvida, o dicionário (dict). Dicionários são dinâmicos e, em Python, é o tipo que mais rep
resenta o conceito de banco de dados, pois trata-se de uma coleção associativa. A associação, ou 
mapeamento, é feita a partir de uma chave, que pode ser qualquer tipo imutável, para um valor, 
podendo ser qualquer objeto de dados do Python.
Nesta Dica do Professor, você verá como dicionários são criados em Python, como os elementos 
são adicionados, acessados e removidos, entre outros métodos internos dessa estrutura.
Aponte a câmera para o código e acesse o link do vídeo ou clique no código para acessar.
EXERCÍCIOS
1) Os elementos de um dicionário são compostos por dois atributos, sendo eles a chave e 
o valor. Cada chave mapeia exclusivamente um determinado valor.
Considere o seguinte código em Python:
dicionario = {
'Love': 'Amor',
'Paz': 'Peace',
5: 'Five',
True: 'True',
False: 'Falso'
}
 
Com base no dicionário acima, pode-se afirmar que está correto:
https://fast.player.liquidplatform.com/pApiv2/embed/cee29914fad5b594d8f5918df1e801fd/1a044141082ec655305bcfe1320f3f67
A) 
print( dicionario[ Paz ] )
B) 
print( dicionario[ 'True' ] )
C) 
print( dicionario[ '5' ] )
D) 
print( dicionario[ 'False' ] )
E) 
print( dicionario[ 'Love' ] )
2) As estruturas de dados, em Python, se diferenciam quanto à sintaxe paraa criação de 
cada uma delas. Por exemplo, uma lista é criada com colchetes, uma tupla com parên
teses e um dicionário com chaves.
a = (1, 2, 3)
b = [2, 3, 4]
c = {"1": 1, "2": 2, "3": 3}
A sintaxe correta para acessar valores são:
A) 
a[2], b[2] e c["2"].
B) 
a[3], b[3] e c[3].
C) 
a[2], b[2] e c[2].
D) 
a[3], b[4] e c[3].
E) 
a[1], b[2] e c[1].
3) Sabe-se que, em Python, as variáveis não precisam ser declaradas, porém precisam se
r inicializadas antes do uso. O nome de objetos, também chamado identificadores, po
ssui algumas regras a serem observadas no momento de defini-los.
Qual identificador está adequado e atende às regras de sintaxe de Python?
A) 
nome+sobrenome = "Edson Campos"
B) 
1_teste = True
C) 
teste_2 = False
D) 
aceleração = 9.8
E) 
proporção áurea = 0.618
4) A precedência de operadores determina qual operador é executado primeiro, em uma 
expressão com mais de um operador cujas prioridades são diferentes. Observe a segu
inte expressão em Python:
a + b * c ** d / e - f
Para forçar a precedencia dos operadores, pode-se escrevê-la de que forma?
A) 
( ( a + ( b * ( c * * d ) ) / e ) - f )
B) 
( ( ( a + b ) * ( c * * d ) ) / e ) ) - f )
C) 
( ( a + ( ( b * ( ( c * * d ) ) / ( e - f ) )
D) 
( ( a + ( ( b * ( c ** d ) ) / e ) ) - f )
E) 
( ( a + ( ( b * c ) * * d ) ) / e ) ) - f )
5) Quanto aos dicionários em Python, sabe-se que é uma estrutura de dados dinâmica, q
ue pode ter seus valores alterados, e que cada chave mapeia um valor específico. Qua
nto às chaves que um dicionário pode ter, sabe-se, também, que somente objetos que 
podem ser gerados um hash daquele objeto são permitidos.
Quanto aos tipos que podem ser usados para as chaves de um dicionário, qual alteran
tiva é a correta?
A) 
1, 'a', (1,2), True
B) 
1, 'a', [1,2], True
C) 
1, 'a', (1,2), {1:2}
D) 
1, ' a', (1,2), {[1,2]}
E) 
1, ' a', ([1,2]), True
NA PRÁTICA
Em programação, para cada situação, é fundamental a escolha certa de estruturas e seus tipos de 
dados. Ou seja, como o software foi idealizado e projetado. Os tipos tuplas e listas são extrema
mente úteis e podem ajudar bastante na organização dos dados em um algoritmo. Porém, muitas 
vezes, é necessário um tipo mais especializado, que possa realizar um mapeamento para valores 
– por exemplo, o dicionário.
Esse tipo de notação é muito utilizado para as respostas de serviços nas requisições Web. Os ser
viços da Web também podem utilizar a estrutura XML como formato para transmissão de dado
s, mas, desde que o JSON surgiu, ele tem se tornado o formato preferido, pois é mais leve e sua 
notação é mais simples que o formato XML.
SAIBA +
Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professo
r:
Pythonclub
Este portal foi criado pela comunidade e para a comunidade. Sua finalidade é unir, em um único 
lugar, tudo sobre a linguagem Python e tecnologias relacionadas.
Aponte a câmera para o código e acesse o link do vídeo ou clique no código para acessar.
Estruturas de dados
Este livro explica uma série de outras estruturas de dados que podem ser usadas na Computação. 
Boa leitura!
Aponte a câmera para o código e acesse o link do vídeo ou clique no código para acessar.
Comunidade Python Brasil
A comunidade Python Brasil reúne grupos de usuários, em todo o Brasil, interessados em difund
ir e divulgar a linguagem de programação Python. Abriga, em seu domínio, todo o material edita
do sobre Python em português brasileiro.
Aponte a câmera para o código e acesse o link do vídeo ou clique no código para acessar.
http://pythonclub.com.br/
https://viewer.bibliotecaa.binpar.com/viewer/9788577804504/ 
https://wiki.python.org.br/IntroPython#Tipos_simples

Outros materiais