Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Conceitos básicos de algoritmos em Python
APRESENTAÇÃO
Todos os dias, as pessoas usam o pensamento lógico-algorítmico mesmo sem perceber. Quando 
você acorda pela manhã e segue um conjunto de passos bem definidos até estar pronto para sair 
para o trabalho, ou mesmo para ir à universidade, você está fazendo uso do pensamento lógico-a
lgorítmico. Assim, se as ações realizadas ao acordar – tais como levantar-se da cama, ir ao banh
eiro, escovar os dentes, tomar banho e tomar café – fossem colocadas dispostas em forma de list
a e na ordem correta, você teria um algoritmo.
Os algoritmos estão por toda parte em seu cotidiano e, quando você pensa em computadores, nã
o é diferente. Na computação, algoritmo pode ser descrito como um conjunto de passos bem def
inidos, usado por um programa de computador para a solução de um problema específico. Além 
disso, pode ser definido como uma sequência de etapas computacionais que transformam dados 
de entrada em dados de saída. Esses dados de saída são, na verdade, a informação resultante da t
ransformação dos dados de entrada em informação de valor para o usuário.
Nesta Unidade de Aprendizagem, você vai entender a estrutura básica de algoritmos, utilizando 
a linguagem de programação Python. Além disso, vai saber como analisar algoritmos da vida re
al e transformá-los em algoritmos computacionais, com o objetivo de resolver problemas utiliza
ndo programação.
Bons estudos.
Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados:
Descrever a estrutura básica de um algoritmo em Python.•
Analisar algoritmos e programas.•
Resolver problemas utilizando programação.•
DESAFIO
Na programação, instruções de repetição são usadas para executar um bloco de código específic
o uma ou mais vezes. A instrução while é utilizada para iterar sobre um bloco de código com ins
truções, desde que a expressão condicional seja verdadeira. Geralmente, esse tipo de instrução d
e repetição é usado quando não se sabe de antemão a quantidade exata de vezes para iterar. Alé
m disso, é uma estrutura muito recomendada para iterar sobre dados sequenciais.
Conteúdo interativo disponível na plataforma de ensino!
Joana pediu sua ajuda para completar seu algoritmo (as quatro linhas faltantes). Ele deve retorna
r (saída) o número mínimo de saltos necessários para percorrer as nuvens seguras de cada desafi
o. Assim, responda:
a) Que código deve ser inserido na primeira e na terceira linhas faltantes? Justifique a sua respos
ta.
b) Que código deve ser inserido na segunda linha faltante? Justifique a sua resposta.
c) Que código deve ser inserido na quarta linha faltante? Justifique a sua resposta.
INFOGRÁFICO
Em geral, um algoritmo se destina a resolver um problema específico. No entanto, mesmo antes 
de escolher uma linguagem de programação (por exemplo, Python) para construir o algoritmo, é 
comum descrever o fluxo de execução para entender todos os passos. Para essa descrição, utiliz
a-se uma forma próxima da linguagem natural, porém mais simplificada, chamada de pseudocód
igo. Além disso, também é comum usar fluxogramas para descrever a estrutura de um algoritm
o.
Neste Infográfico, você vai ver três formas de representar e descrever o mesmo algoritmo, sendo 
elas: pseudolinguagem (ou pseudocódigo), fluxograma e linguagem de programação Python.
CONTEÚDO DO LIVRO
Um algoritmo é formado por vários componentes que determinam como se dará o fluxo de exec
ução da tarefa, desde a inicialização até o encerramento. Trata-se de uma excelente ferramenta p
ara resolver problemas computacionais por meio de suas instruções e estruturas de controle de fl
uxo.
No capítulo Conceitos básicos de algoritmos em Python, da obra Raciocínio algorítmico, base te
órica desta Unidade de Aprendizagem, você vai ver conceitos básicos de algoritmos, tipos de da
dos, operadores e expressões, bem como exemplos de aplicação em linguagem de programação 
Python.
Boa leitura.
RACIOCÍNIO 
ALGORÍTMICO
Juliano Vieira Martins
Conceitos básicos de 
algoritmos em Python
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:
  Descrever a estrutura básica de um algoritmo em Python.
  Analisar algoritmos e programas.
  Resolver problemas utilizando programação.
Introdução
As pessoas usam o pensamento lógico constantemente, muitas vezes 
sem perceber. Por exemplo, quando você acorda de manhã e realiza uma 
sequência de etapas até estar pronto para sair para o trabalho ou ir até a 
universidade, você está utilizando o pensamento lógico-algorítmico. Se 
todas essas etapas fossem escritas, obedecendo certa ordem, no formato 
de itens de uma lista, haveria um algoritmo.
No seu cotidiano, sem se dar conta, você está continuamente resol-
vendo problemas por meio do pensamento lógico. Na computação, 
isso não é diferente, e questões computacionais também podem ser 
resolvidas por meio do pensamento lógico-algorítmico.
Neste capítulo, você vai estudar os conceitos básicos de algoritmos e 
ver como eles podem ser usados para resolver problemas computacio-
nais. Para a solução desses problemas, é necessário usar o pensamento 
lógico-algorítmico, aplicado na forma de instruções e com etapas bem 
definidas para atingir determinado objetivo. Assim, você também vai 
verificar como essas instruções podem ser representadas por meio 
de estruturas visuais ou, na forma escrita, por meio de pseudocódigo. 
Além disso, você vai ver exemplos de algoritmos na linguagem de 
programação Python.
Resolução de problemas com programação
No momento da concepção de um programa e para que haja coerência com o 
que se está propondo resolver, é necessária certa atenção para entender o pro-
blema e apresentar uma solução viável. Descobrir um método para solucionar 
determinado problema não é uma tarefa tão simples assim. Dessa forma, a 
construção de um programa pode ser melhor executada quando se levam em 
conta alguns itens importantes. Veja a seguir.
  Requisitos do programa: você deve compreender as informações 
fornecidas (a entrada) e os resultados que devem ser produzidos (a 
saída). É preciso escrever uma descrição rigorosa da entrada e da saída, 
que cubra todos os casos do programa.
  Arquitetura: na programação, sempre existe a possibilidade de lidar 
com vários tipos de objetos e dados diferentes, como um cálculo, uma 
lista, uma simulação, entre outras infinitas situações. Para cada caso, 
haverá algumas operações básicas a serem executadas, como imprimir 
algo, adicionar algo ou mesmo buscar algo. O ideal é escrever essas 
operações na forma de pequenos procedimentos de algoritmo para 
resolver o problema de acordo com os requisitos do programa. Também 
é possível utilizar uma notação de linguagem natural, chamada pseu-
docódigo, para fazer uma descrição narrativa dos passos e da ordem 
das instruções. Por sua vez, as instruções devem ser claras o bastante 
para determinar de forma única e completa as ações necessária em 
cada passo do programa.
O pseudocódigo (ou pseudolinguagem) é uma forma de representação 
algorítmica (GUIMARÃES; LAGES, 1985). Além disso, é praticamente um 
programa escrito em linguagem natural e que tem a possibilidade de ser 
transmitido ao computador, com uso de algumas ferramentas que leem pseu-
docódigos. Para escrever códigos em pseudocódigo, é necessário conhecer 
as instruções básicas de um pseudocódigo. A seguir, veja as instruções de 
uma pseudolinguagem.
a) ESCREVA (“ ”): essa instrução é usada para exibir uma mensagem 
na tela.
b) LEIA: essa instrução é usada para ler valores que são digitados no 
teclado.
c) <- (recebe): essa instrução é usada como comando de atribuição.
Conceitos básicos de algoritmos em Python2
d) INÍCIO: essa instrução é usada para iniciar o programa principal.
e) FIM: essa instrução é usada para finalizar o algoritmo principal.
f) VAR: essa instrução é usada para declarar variáveis.
g) ALGORITMO: essa instrução é usada para indicar o início doprograma.
h) FIM ALGORITMO: essa instrução é usada para indicar o final do 
programa.
i) ENQUANTO: essa instrução é usada para iterar enquanto uma condição 
for verdadeira.
j) PARA: essa instrução é usada também para iterar enquanto uma con-
dição for verdadeira.
k) FIM PARA: essa instrução é usada para indicar o final da instrução 
PARA.
l) SE ... ENTÃO: essa instrução é usada para avaliar se uma expressão 
é verdadeira ou falsa. Se for verdadeira, executa a instrução que está 
no corpo.
m) SENÃO SE: essa instrução também é usada para avaliar se uma ex-
pressão é verdadeira ou falsa. Se for verdadeira, executa a instrução 
que está no corpo.
n) SENÃO: essa instrução é usada para avaliar uma expressão caso as 
instruções SE ou SENÃO SE não sejam executadas.
o) FIM SE: essa instrução é usada para indicar o final da instrução SE.
Veja a seguir um exemplo de algoritmo em pseudocódigo:
ALGORITMO “somar e escrever se a soma é maior, menor ou 
igual a 10”
 VAR
 valor: real
 soma: real
 INÍCIO
 soma <- 0
 ESCREVA (“Digite um ‘valor’ ou 0 para parar:”)
 LEIA valor
3Conceitos básicos de algoritmos em Python
Além de serem representados pela pseudolinguagem, algoritmos também 
podem ser representados por símbolos que compõem uma notação visual. O 
conjunto desses símbolos dispostos de forma estruturada é conhecido como 
fluxograma. Um fluxograma é um diagrama que descreve um processo, 
sistema ou algoritmo de computador. Ele é amplamente utilizado em vários 
campos para documentar, estudar, planejar, melhorar e comunicar processos 
(às vezes) complexos em diagramas claros e fáceis de entender.
Os fluxogramas usam retângulos ovais, diamantes e outras formas para 
definir o tipo de etapa, juntamente com as setas de conexão para definir o fluxo 
e a sequência. Eles podem variar de gráficos simples e desenhados à mão a 
diagramas detalhados, desenhados por computador, representando várias etapas 
e rotas. Às vezes, os fluxogramas são chamados por nomes mais especializados, 
como fluxograma de processo, mapa de processos, fluxograma funcional, 
mapeamento de processos de negócios, modelagem e notação de processos de 
negócios (Business Process Model and Notation — BPMN) ou diagrama de 
fluxo de processos (Process Flow Diagram — PFD). Eles estão relacionados 
a outros diagramas populares, como Diagramas de Fluxo de Dados (DFDs) e 
diagramas de atividade da linguagem de modelagem unificada (Unified Modeling 
Language — UML). A seguir, veja os símbolos mais comuns de um fluxograma.
 ENQUANTO valor <> 0 FAÇA
 soma <- soma + valor
ESCREVA (“Soma atual: soma”)
ESCREVA (“Digite um ‘valor’ ou 0 para parar:”)
LEIA valor
 FIMENQUANTO
 SE soma > 10 ENTÃO
 ESCREVA (“Soma é maior que 10”)
 SENÃO SE soma < 10 ENTÃO
 ESCREVA (“Soma é menor que 10”)
 SENÃO
 ESCREVA (“Soma é igual a 10”)
 FIM SE
 FIM
FIM ALGORIMTO
Conceitos básicos de algoritmos em Python4
  Terminal: tem a forma oval e é usado para representar o início e o fim 
de um processo.
  Processo: tem a forma retangular e é obrigatório quando você inicia 
o fluxograma. Representa qualquer etapa do processo, como tarefas 
ou ações básicas.
  Seta (ou flecha): é usada para guiar o visualizador ao longo do caminho 
do fluxograma e indicar qual é a direção do fluxo de dados.
  Decisão: tem a forma de um diamante e simboliza que é necessária uma 
decisão para avançar. Pode ser uma escolha binária — por exemplo, sim 
ou não, verdadeiro ou falso — ou mesmo uma decisão mais complexa, 
com várias opções.
  Entrada/saída: tem a forma de um paralelogramo e simboliza a entrada 
ou a saída de dados.
Com esses cinco símbolos básicos, você tem quase tudo o que é necessário 
para diagramar um fluxograma simples (Figura 1).
Figura 1. Símbolos básicos de um fluxograma.
  Codificação: escolher adequadamente o que será utilizado para cada 
tipo de dado torna a solução do problema mais eficiente. É no momento 
da codificação que se escolhem as representações para os objetos de 
dados que serão utilizados no algoritmo. Quando já se tem um pseu-
docódigo para a solução do problema, a tradução do algoritmo para 
uma linguagem de programação é quase imediata. Na linguagem de 
programação Python, por exemplo, existem vários tipos de objetos que 
representam os conceitos de listas, matrizes, dicionários, filas, pilhas, 
entre outras estruturas.
5Conceitos básicos de algoritmos em Python
A seguir, veja o mesmo algoritmo apresentado em pseudocódigo, mas agora escrito 
na linguagem de programação Python.
# somar e escrever se a soma é maior, menor ou igual a 10
soma = 0
valor = float(input("Digite um 'valor' ou 0 para parar:"))
while valor != 0:
 soma += valor
print(f"Soma atual: {soma}")
valor = float(input("Digite um 'valor' ou 0 para parar:"))
if soma > 10:
 print("Soma é maior que 10")
elif soma < 10:
 print("Soma é menor que 10")
else:
 print("Soma é igual a 10")
Análise de algoritmos e programas
A razão mais objetiva para se analisar um algoritmo é descobrir suas carac-
terísticas a fi m de avaliar sua adequação a várias aplicações, ou compará-lo 
com outros algoritmos para a mesma aplicação. Além disso, a análise de um 
algoritmo pode ajudar o desenvolvedor a entendê-lo melhor e sugerir melhorias. 
Os algoritmos tendem a se tornar mais curtos, mais simples e mais elegantes 
durante o processo de análise.
Existe um ramo da ciência da computação teórica chamado complexidade 
de algoritmos, cujo objetivo é classificar os algoritmos de acordo com sua 
eficiência (SEDGEWICK; FLAJOLET, 2019). Do mesmo modo, um problema 
computacional comumente chamado de complexidade computacional é 
classificado de acordo com o seu nível de dificuldade. Essas classificações ge-
ralmente se concentram no desempenho do pior caso na ordem de crescimento.
Conceitos básicos de algoritmos em Python6
Um dos pontos principais da análise de um algoritmo é o tempo. Uma 
análise detalhada e completa do tempo de execução de um algoritmo envolve 
as etapas listadas a seguir.
1. Implementar o algoritmo completamente para a análise.
2. Determinar o tempo necessário para cada operação básica, tais como 
cálculos, repetições, instruções, etc.
3. Identificar quantidades desconhecidas que podem ser usadas para 
descrever a frequência de execução das operações básicas, como a 
quantidade de operações que crescem exponencialmente durante a 
execução do algoritmo.
4. Desenvolver um modelo realista para a entrada no programa.
5. Analisar as quantidades desconhecidas, assumindo a entrada modelada.
6. Calcular o tempo total de execução multiplicando o tempo pela frequên-
cia de cada operação e adicionando todos os produtos da soma ao final.
Os algoritmos geralmente são bem diferentes entre si, embora muitas 
vezes o objetivo deles seja o mesmo. Ao considerar um algoritmo para um 
problema específico, você deve começar a perceber os padrões, para que tipos 
de problemas semelhantes possam ser resolvidos com a ajuda desse algoritmo. 
Por exemplo, sabe-se que um conjunto de números pode ser classificado por 
meio de algoritmos diferentes. O número de comparações realizadas por um 
algoritmo pode ser diferente da quantidade de comparações realizadas por 
outro algoritmo, ainda que ambos sejam para a mesma entrada de dados. 
Portanto, a complexidade do tempo desses algoritmos pode ser diferente. Além 
disso, é necessário calcular o espaço de memória exigido por cada algoritmo. 
Assim, você deve levar em conta sob quais hipóteses o algoritmo vai operar. 
Geralmente, realizam-se os tipos de análise elencados a seguir.
  Pior caso: número máximo de etapas executadas em qualquer instância 
do algoritmo.
  Melhor caso: número mínimo de etapas executadas em qualquer ins-
tância do algoritmo.
  Caso médio: número médio de etapas executadas em qualquer instância 
do algoritmo.
Em resumo, a análise de algoritmo é oprocesso de analisar a capacidade de 
resolução de problemas do algoritmo em termos de tempo e tamanho necessá-
rios (o tamanho da memória para armazenamento durante a implementação).
7Conceitos básicos de algoritmos em Python
Para saber mais sobre o assunto deste capítulo, acesse o link a seguir (em inglês). Nele, 
você vai encontrar excelentes explicações sobre níveis mais avançados de análises de 
algoritmos, tais como análise assintótica e análise amortizada.
https://qrgo.page.link/RzqX5
Estrutura básica de algoritmo
A estrutura básica de um algoritmo é formada por vários componentes, co-
mumente encontrados na maioria dos algoritmos. Esses componentes deter-
minam como se dará o fl uxo de execução da tarefa, desde a inicialização até o 
encerramento (MOKARZEL; SOMA, 2008). Assim, pode haver determinado 
problema que, para ser resolvido, requer uma quantidade maior ou menor de 
componentes, dependendo da sua complexidade. Dessa forma, a execução de 
um programa pode ser mais efi ciente quando é levado em conta o comporta-
mento das estruturas básicas de algoritmos (Figura 2).
  Variáveis e constantes: esse componente de algoritmo possui conteúdo 
temporário e é usado para armazenar informações adicionais que uma 
instrução precisa para funcionar corretamente ou de forma efetiva. Seus 
valores podem variar conforme a execução do algoritmo progride, por 
isso o nome “variável”. Em contrapartida, as constantes armazenam 
valores que não são alterados durante a execução do algoritmo. Por 
exemplo, o valor PI usado para calcular a área do círculo é uma constante, 
já que seu valor não muda.
  Instruções: a instrução é um dos componentes principais de um algo-
ritmo. Um algoritmo contém em si mesmo uma série de subalgoritmos, 
sendo que cada um deles executa uma tarefa menor. Por exemplo, realizar 
o cálculo de uma equação pode ser uma tarefa muito grande para ser 
feita por apenas uma instrução. Assim, algumas tarefas, tais como 
adição, subtração, multiplicação e divisão, podem ser consideradas ins-
truções menores e auxiliam na tarefa principal, que, no caso, é calcular 
a equação. Dessa forma, todos os algoritmos podem ser, eventualmente, 
divididos ou fatorados em instruções menores.
Conceitos básicos de algoritmos em Python8
  Condicionais: em algum momento da execução de uma tarefa, alguns 
algoritmos podem ter de tomar determinadas decisões. Por exemplo, se a 
soma dos dois valores em questão for maior ou menor do que outro valor, 
quando comparados, a tarefa segue por determinado caminho de fluxo; 
caso contrário, a tarefa segue por outro caminho. Os componentes condi-
cionais permitem que um algoritmo execute instruções seletivamente com 
base em certas condições que devem ser satisfeitas, dependendo do caso.
  Repetições: esse componente de algoritmo permite executar determinadas 
instruções repetidas vezes, até que dada condição seja satisfeita. Existem 
casos, como uma lista, em que é necessário repetir uma instrução para 
cada elemento existente. Há também outros casos em que é preciso repetir 
um conjunto de instruções até um objetivo ser alcançado, ou até uma 
condição ser satisfeita. As repetições podem conter em si outras instruções, 
incluindo repetições comumente chamadas de “repetições aninhadas”.
Figura 2. Fluxograma das estruturas básicas de algoritmo para controle de fluxo de execução.
Estruturas básicas de algoritmo em Python
Antes de você se aprofundar no assunto das estruturas básicas em Python, 
deve entender o que realmente é essa linguagem e qual é o objeto pelo qual 
ela foi criada. Python é uma linguagem de programação e, como tal, possui 
algumas características ou atributos próprios. A seguir, veja o que, em síntese, 
esses atributos querem dizer.
  Tem sintaxe bonita: nesse atributo, estão em jogo as regras que determi-
nam os comandos, as palavras reservadas, as declarações, a indentação 
do código, as descrições formais, os operadores, etc.
9Conceitos básicos de algoritmos em Python
  Tem semântica inteligente: a semântica é o significado de cada item 
da sintaxe. Por exemplo, uma das instruções de repetição na linguagem 
de programação Python tem a sintaxe while, e a semântica dessa sintaxe 
é “repita enquanto a condição for verdadeira”.
  É uma linguagem interpretada: o interpretador do Python, que são os 
algoritmos internos da linguagem, executa o código-fonte diretamente, 
traduzindo cada linha de código para instruções de máquina.
  É de alto nível: o interpretador sabe lidar com os detalhes técnicos do 
computador. Assim, desenvolver um código é mais simples do que em 
linguagens de baixo nível, nas quais o programador deve se preocupar 
com detalhes da máquina, tais como quantidade de memória disponível, 
capacidade do processador, etc.
  É de propósito geral: o Python pode ser usado para desenvolver progra-
mas em diversas áreas, ao contrário de linguagens de domínio específico, 
que são especializadas e atendem somente a determinada aplicação.
  É dinamicamente tipada: não é necessário informar o tipo no momento 
da declaração da variável. O interpretador se encarrega de descobrir 
que tipo tem cada variável.
  É fortemente tipada: em Python, não é possível realizar operações 
com tipos diferentes. Por exemplo, na tentativa de somar um valor do 
tipo int (inteiro) com outro valor do tipo list (lista), o Python levantará 
uma exceção de erro.
Por essas e outras características, o Python consegue ser uma linguagem 
simples, de sintaxe bonita, legível e amigável. Além disso, muitas empresas, 
como a Nasa, o Google, o Facebook e a Amazon, utilizam o Python diariamente.
Para instalar a linguagem Python, primeiramente deve-se realizar o download do 
interpretador da linguagem, acessando o primeiro link listado a seguir. Essa página 
contém os links dos instaladores para variados tipos de sistemas operacionais, tais como 
Windows, Linux e Mac OS X. Para cada tipo de sistema operacional, é recomendado 
seguir o guia de instalação específico do Python, disponível no segundo link.
https://qrgo.page.link/2otU8
https://qrgo.page.link/oCyNg
Conceitos básicos de algoritmos em Python10
O desenvolvimento do Python começou no final da década de 1980, por 
Guido van Rossum. Ele decidiu usar esse nome porque estava lendo um ro-
teiro do Monty Python, um grupo de comédia britânico da década de 1970. 
Assim, a versão 1.0 do Python foi publicada em 1994, a versão 2.0, em 2000, 
e a versão 3.0, em 2008.
Há diversos ambientes integrados de desenvolvimento (no inglês Integrated Develop-
ment Environment — IDE) que dão suporte à linguagem de programação Python, 
sendo que alguns são mais simples e outros são mais complexos. Esses ambientes 
auxiliam significativamente nos seguintes quesitos: identificação das variáveis que 
foram declaradas; identificação dos erros no código; personalização do ambiente de 
trabalho; ocultação de parte do código para melhor visualização, etc. Ficam como 
dica alguns IDEs:
  PyCharm Edu
  Atom
  IDLE
  Spyder
Assim, você pode pesquisar as características de cada um deles no Google, fa-
zer o download no site do desenvolvedor do IDE e instalar o que você achar mais 
interessante.
Os algoritmos geralmente são criados usando pseudocódigo e são in-
dependentes das linguagens subjacentes, ou seja, um algoritmo pode ser 
implementado em mais de uma linguagem de programação. Da mesma forma, 
a maioria das linguagens de programação compartilha instruções básicas de 
código, como as repetições, os controles de fluxo, etc. Assim, quase todos 
os algoritmos têm a possiblidade de ser implementados na linguagem de 
programação Python.
No Python, as variáveis, funções e estruturas de dados são tratadas como 
objetos. Um identificador no Python é um nome usado para identificar 
esses objetos.
11Conceitos básicos de algoritmos em Python
A seguir, veja exemplos de identificadores para nomear objetos:
nome = "Paulo"
idade = 25
estado _ civil = "solteiro"
PI = 3.1415
Para declarar um identificador, vocêpode usar os conjuntos de letras (de 
A até Z e de a até z), os dígitos (de 0 a 9) e também o caractere especial subli-
nhado (_) (ROSSUM, 2001). O Python não permite caracteres especiais para 
identificadores, tais como os símbolos @, $ e %, pois alguns deles também 
são operadores aritméticos nessa linguagem.
O Python é uma linguagem de programação sensível ao caso (case-sensitive), ou seja, 
que faz distinção entre letras maiúsculas e letras minúsculas. Por exemplo, no Python, 
os objetos do tipo string “feliz” e “FELIZ” são diferentes entre si.
Algumas linguagens de programação, como o Java e o PHP, exigem que, 
para cada bloco de código, seja usado um par de chaves para indicar o corpo 
do bloco. No Python, não são necessárias essas chaves, pois os blocos de 
código são indicados por um recuo de linha, que é chamado de indentação 
(PYTHON SOFTWARE FOUNDATION, 2019a). A quantidade de espaços 
em branco na indentação é variável (geralmente quatro espaços), porém todas 
as instruções dentro do bloco devem ser recuadas com a mesma quantidade 
de espaços. Assim, todas as linhas recuadas com o mesmo número de espaços 
formam um bloco de código, e este termina quando a próxima linha tiver uma 
indentação diferente.
Conceitos básicos de algoritmos em Python12
Veja um exemplo de bloco de código com uma estrutura de controle de fluxo:
if 'a' == 'b':
 # início do bloco
 print('a é igual a b')
 a = 2 + 2
 b = 1 + 3
Um tipo de dado é na verdade um conjunto de valores com um conjunto de 
operações definidas para esses valores. O Python pode armazenar em memória 
diferentes tipos de dados, pois esses tipos estão embutidos nessa linguagem de 
programação. Por exemplo, imagine que seja necessário armazenar os dados 
do endereço de uma pessoa. Isso pode ser feito do seguinte modo: o número 
da casa da pessoa pode ser armazenado como um valor numérico, e o nome 
da rua em que a pessoa mora pode ser armazenado como texto. No Python, 
também é possível somar dois valores numéricos, mas não é possível somar 
um número e uma frase (texto). Os tipos de dados mais comuns que o Python 
possui são: numéricos, cadeias de caracteres (strings), listas, tuplas, conjuntos 
e dicionários (PYTHON SOFTWARE FOUNDATION, 2019b).
Veja a seguir um exemplo dos tipos de dados lista e dicionário:
lista = [1, 2, 3, 4]
dicionario = {
 'nome': 'Paulo', 
 'idade': 25, 
 'estado _ civil': 
 'solteiro'
}
13Conceitos básicos de algoritmos em Python
Operadores são estruturas que podem manipular os valores dos dados 
(PYTHON SOFTWARE FOUNDATION, 2019c). O Python dispõe de um 
vasto conjunto de operadores para realizar operações. Esses operadores tam-
bém são chamados de “operadores relacionais”. Por exemplo, os operadores 
de comparação analisam os valores em ambos os lados de uma expressão e 
decidem a relação entre eles. Os operadores mais comuns são os que realizam 
operações aritméticas, de comparação, lógicas, bit a bit, etc.
Veja um exemplo de alguns operadores aritméticos:
a = 2 + 2 # 4
b = 3 - 1 # 2
c = 4 * 3 # 12
d = 6 / 2 # 3
Estruturas de controle de fluxo avaliam expressões que produzem verda-
deiro ou falso como resultado. No Python, a tomada de decisão é de extrema 
importância, pois é a antecipação das condições que ocorrem durante a execu-
ção do programa. Com essas estruturas, é possível seguir determinado fluxo 
de execução e, de acordo com as condições (verdadeiro ou falso), tomar certas 
decisões (PYTHON SOFTWARE FOUNDATION, 2019d).
Veja a seguir um exemplo de algumas estruturas de controle para decisão:
if a > b:
 print('a é igual a b')
elif a < b:
 print('a é diferente de b')
else:
 print('a é b são iguais')
Conceitos básicos de algoritmos em Python14
Uma estrutura de repetição permite executar uma instrução ou grupo 
de instruções várias vezes. A linguagem de programação Python fornece 
algumas estruturas para lidar com os requisitos de repetição. Essas estruturas 
testam repetidamente a expressão e, se ela for verdade, executam o primeiro 
conjunto; se a expressão for falsa, o que pode ser verificado na primeira vez que 
ela é testada, o fluxo segue para o fim da repetição (PYTHON SOFTWARE 
FOUNDATION, 2019d).
Veja um exemplo de duas estruturas de repetição:
# while
i = 0
while i < 5:
 print(i)
 i += 1
# for
for i in range(5):
 print(i)
Nos links a seguir (em inglês), você pode consultar uma vasta gama de exemplos de 
estruturas em Python.
https://qrgo.page.link/MXfDk
https://qrgo.page.link/8yXEX
https://qrgo.page.link/qftMj
15Conceitos básicos de algoritmos em Python
GUIMARÃES, A. M.; LAGES, N. A. C., Algoritmos e estruturas de dados. Rio de Janeiro: 
LTC, 1985.
MOKARZEL, F.; SOMA, N. Introdução à ciência da computação. Rio de Janeiro: Elsevier, 
2008.
PYTHON SOFTWARE FOUNDATION. Built-in types. [2019c]. Disponível em: https://docs.
python.org/3/library/stdtypes.html. Acesso em: 30 dez. 2019.
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. Lexical analysis. [2019b]. Disponível em: https://
docs.python.org/3/reference/lexical_analysis.html?highlight=indent#indentation. 
Acesso em: 30 dez. 2019.
PYTHON SOFTWARE FOUNDATION. More control flow tools. [2019d]. Disponível em: 
https://docs.python.org/3/tutorial/controlflow.html?highlight=elif#more-control-
-flow-tools. Acesso em: 30 dez. 2019.
ROSSUM, G. PEP 8: style guide for Python code. 2001. Disponível em: https://www.
python.org/dev/peps/pep-0008/#naming-conventions. Acesso em: 30 dez. 2019.
SEDGEWICK, R.; FLAJOLET, P. An introduction to the analysis of algorithms. [2019]. Dispo-
nível em: https://aofa.cs.princeton.edu/home/. Acesso em: 30 dez. 2019.
Leituras recomendadas
PYTHON COURSE. Python3 tutorial. 2019. Disponível em: https://www.python-course.
eu/python3_course.php. Acesso em: 30 dez. 2019.
TUTORIALS POINT. DAA: methodology of analysis. 2019a. Disponível em: https://www.
tutorialspoint.com/design_and_analysis_of_algorithms/design_and_analysis_of_al-
gorithms_methodology.htm. Acesso em: 30 dez. 2019.
TUTORIALS POINT. Python tutorial. 2019b. Disponível em: https://www.tutorialspoint.
com/python/index.htm. Acesso em: 30 dez. 2019.
W3SCHOOLS. Python tutorial. 2019. Disponível em: https://www.w3schools.com/
python/. Acesso em: 30 dez. 2019.
Conceitos básicos de algoritmos em Python16
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.
17Conceitos básicos de algoritmos em Python
DICA DO PROFESSOR
Entender os conceitos básicos de algoritmos é de suma importância para desenvolver a habilidad
e de programação. Assim, é mais simples resolver problemas computacionais aplicando-se o pen
samento lógico.
Nesta Dica do Professor, você vai ver conceitos básicos de algoritmos em Python.
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) Instruções de comparação são essenciais para tomar decisões em um algoritmo. Depe
ndendo do resultado da comparação, o fluxo de execução segue para um ou outro blo
co de instruções. 
Nas expressões envolvendo comparação, qual é o tipo do valor que sempre é retornad
o?
A) 
Booleano.
B) 
Inteiro.
C) 
Lista.
D) 
String (texto).
E) 
Float (ponto flutuante).
Identificadores são os nomes de variáveis, funções e classes em Python. Para nomear 
variáveis nessa linguagem de programação, é preciso tomar certos cuidados para não 
2) 
https://fast.player.liquidplatform.com/pApiv2/embed/cee29914fad5b594d8f5918df1e801fd/3672b3e23b65ebe82110d30b1027a068
usar palavras reservadas, conhecidas comokeywords, bem como evitar usar caractere
s não permitidos.
Das alternativas a seguir, qual tem a variável nomeada com o identificador correto?
A) 
nome-aluno = "João Pedro"
B) 
data+nascimento = "23/07/2002"
C) 
ensino_medio = True
D) 
18_anos_completo = True
E) 
serviço_militar = False
3) Variáveis, como o próprio nome já diz, podem ter seus valores alterados durante a ex
ecução do programa.
Considere o seguinte código:
x = 10 
y = 20 
resultado = 30
if (not y >= 5) or (x > 5): 
resultado = x * y 
else: 
resultado += y
Qual será o valor da variável resultado ao final da sua execução?
A) 
10.
B) 
20.
C) 
50.
D) 
100.
E) 
200.
4) Declarações de encerramento prematuro são importantes para alterar o fluxo de repe
tição. Dependendo do caso, o programador deseja apenas seguir para o próximo laço 
de repetição ou que a repetição seja encerrada totalmente.
Considerando isso, qual é o objetivo da instrução de encerramento prematuro break?
A) 
Ler as linhas de código restantes e seguir para o próximo laço de repetição.
B) 
Não ler as linhas de código restantes e seguir para o próximo laço de repetição.
C) 
Ler as linhas de código restantes e seguir para a finalização completa da repetição.
D) 
Não ler as linhas de código restantes e seguir para a finalização completa da repetição.
E) 
Não ler as linhas de código restantes e, no próximo laço, seguir para a finalização complet
a da repetição.
5) A declaração while repete a execução de um bloco de código quantas vezes forem nec
essárias. Trata-se de uma excelente estrutura para se trabalhar com listas, contadore
s ou mesmo para repetir alguma instrução.
Uma instrução while será executada enquanto for atendida determinada condição. Q
ue condição é essa?
A) 
Enquanto a condição for igual.
B) 
Enquanto a condição for maior.
C) 
Enquanto a condição for menor.
D) 
Enquanto a condição for falsa.
E) 
Enquanto a condição for verdadeira.
NA PRÁTICA
Em algoritmos, a tomada de decisão é necessária, pois antecipa as condições que ocorrem durant
e a execução do programa. No Python, a instrução if, bem como a elif avaliam a expressão condi
cional e desviam para a execução do código que está no corpo da instrução somente se a express
ão avaliada for verdadeira. Se a expressão condicional for falsa, o bloco de código não é executa
do e o desvio da execução segue para a próxima instrução, por exemplo, a instrução else, caso es
teja presente.
Neste Na Prática, você vai ver a resolução de um problema, utilizando as instruções if, elif e else
.
SAIBA +
Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professo
r:
Python documentation
Aprender uma linguagem de programação requer um pouco de esforço e dedicação. Além disso, 
uma boa documentação faz diferença na hora do aprendizado. O segredo é buscar a informação 
na fonte. Acesse o site para saber mais (em inglês).
Aponte a câmera para o código e acesse o link do vídeo ou clique no código para acessar.
Scratch: ferramenta on-line para aprender lógica de programação
Se você quer se antecipar e aguçar seus conhecimentos em lógica de programação, acesse a ferra
menta a seguir. Com ela, você não vai aprender uma linguagem de programação em si, mas, si
m, treinar seu raciocínio lógico-algorítmico por meio da criação de jogos, histórias e animações. 
Clique no ícone do globo para selecionar o idioma.
Aponte a câmera para o código e acesse o link do vídeo ou clique no código para acessar.
Algoritmos e programação com exemplos em Pascal e C
Ter um livro como suporte de aprendizado é uma excelente escolha na hora de aprender. Lembr
e-se de que os autores já trilharam o caminho que você está percorrendo agora. Embora esse livr
o contenha exemplos em Pascal e C, você saberá facilmente implementar os exemplos em Pytho
n. Confira.
Conteúdo interativo disponível na plataforma de ensino!
Ciência da computação: uma visão abrangente
https://docs.python.org/3/
https://scratch.mit.edu/projects/editor/?tutorial=getStarted
Esta obra serve como uma primeira abordagem à computação. Inicialmente, são apresentados os 
conceitos básicos de um computador, de seus elementos e suas inter-relações em vários níveis. 
Você poderá estudar também os diversos tipos de informações a serem manipuladas por comput
adores, assim como a evolução do relacionamento do ser humano com o computador.
Conteúdo interativo disponível na plataforma de ensino!

Mais conteúdos dessa disciplina