0% acharam este documento útil (0 voto)
1 visualizações

Algoritmos e Programação Em Python eBook

O documento é um livro intitulado 'Algoritmos e Programação em Python para o Ensino Técnico Integrado', escrito por Elanne Cristina Oliveira dos Santos, publicado pelo Instituto Federal de Educação, Ciência e Tecnologia do Piauí em 2022. Ele aborda conceitos fundamentais de programação utilizando a linguagem Python, incluindo variáveis, estruturas de decisão, repetição, listas, dicionários e funções, com exercícios práticos para facilitar o aprendizado. A obra é licenciada sob uma Licença Creative Commons, permitindo a cópia e redistribuição do conteúdo.

Enviado por

lvzinhadab
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
1 visualizações

Algoritmos e Programação Em Python eBook

O documento é um livro intitulado 'Algoritmos e Programação em Python para o Ensino Técnico Integrado', escrito por Elanne Cristina Oliveira dos Santos, publicado pelo Instituto Federal de Educação, Ciência e Tecnologia do Piauí em 2022. Ele aborda conceitos fundamentais de programação utilizando a linguagem Python, incluindo variáveis, estruturas de decisão, repetição, listas, dicionários e funções, com exercícios práticos para facilitar o aprendizado. A obra é licenciada sob uma Licença Creative Commons, permitindo a cópia e redistribuição do conteúdo.

Enviado por

lvzinhadab
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 149

ALGORITMOS E PROGRAMAÇÃO

EM PYTHON PARA O ENSINO


TÉCNICO INTEGRADO
Elanne Cristina Oliveira dos Santos

ALGORITMOS E PROGRAMAÇÃO
EM PYTHON PARA O ENSINO
TÉCNICO INTEGRADO

1ª Edição
Teresina
2022
Ministério da Educação
Secretaria de Educação Profissional e Tecnológica
Instituto Federal de Educação, Ciência e Tecnologia do Piauí

Ministério da Educação
Secretaria de Educação Profissional e Tecnológica
Instituto Federal de Educação, Ciência e Tecnologia do Piauí

Reitor Paulo Borges da Cunha


Pró-Reitora de Administração Larissa Santiago de Amorim
Pró-Reitor de Ensino Odiomogenes Soares Lopes
Pró-Reitor de Pesquisa, Pós-Graduação e Inovação José Luís de Oliveira e Silva
Pró-Reitora de Extensão Divamélia de Oliveira Bezerra Gomes
Pró-Reitor de Desenvolvimento Institucional Paulo Henrique Gomes de Lima

Conselho Editorial
Prof. Dr. Ricardo Martins Ramos – Presidente
Prof. Me. Alan Elias Silva – Secretário-Geral
Prof. Dr. José Carlos Raulino Lopes – Membro
Profa. Ma. Inara Erice de Souza Alves Raulino Lopes – Membro
Prof. Me. Israel Alves Correa Noleto – Membro
Bibliotecária Me. Sindya Santos Melo – Membro
Bibliotecária Me. Sônia Oliveira Matos Moutinho – Membro

Diagramação: Danilo Silva Araujo


Capa: Ângela Rêgo
Ilustração da capa: Elanne Cristina Oliveira dos Santos
Revisão de Texto: Maira Danuse Santos de Oliveira

Dados Internacionais de Catalogação na Publicação (CIP) de acordo com ISBD


Santos, Elanne Cristina Oliveira dos
S237a
Algoritmos e programação em Python para o ensino técnico integrado
[recurso eletrônico] / Elanne Cristina Oliveira dos Santos. – Teresina: IFPI,
2022.
148 p. ; il. color.

ISBN versão impressa: 978-65-86592-46-7


ISBN versão digital: 978-65-86592-47-4
DOI: 10.51361/978-65-86592-47-4

1. Algoritmos. 2. Programação (Computadores). 3. Python (Linguagem de


programação de computador). I. Título.
CDD 005.1
Elaborado por Sindya Santos Melo CRB 3/1085

Esta obra é uma publicação do Instituto Federal de Educação, Ciência e Tecnologia do Piauí. Os textos assinados são
de responsabilidade exclusiva dos autores e não expressam a opinião do Conselho Editorial.

Esta obra está licenciada sob uma Licença Creative Commons. Os usuários têm permissão para
copiar e redistribuir os trabalhos por qualquer meio ou formato, e para, tendo como base o seu
conteúdo, reutilizar, transformar ou criar, com propósitos legais, até comerciais, desde que citada
a fonte.

Instituto Federal do Piauí


Avenida Presidente Jânio Quadros, 330 – Bairro: Santa Isabel
E-mail: conselho.editorial@ifpi.edu.br
www.ifpi.edu.br
Para meu pai,
que partiu e deixou essa saudade imensa no coração
de toda a família. Que me deu a oportunidade de
estudar e de amar ensinar o que eu aprendo. Para
seguir em frente, como ele sempre me ensinou,
comecei a escrever este livro.
Saudades do brilho dos seus olhos, verdinhos
brilhando cheios de esperança como duas estrelinhas
no céu, saudades do seu sorriso, todo feliz preparando
o jantar, saudades do seu cabelo branquinho feito
nuvem... Saudades do meu pai.

“Dentro da vastidão do tempo e da imensidão do


universo, é um imenso prazer pra mim dividir um
planeta e uma época com você.”

Carl Sagan
SUMÁRIO
LISTA DE FIGURAS..........................................................................
FIGURAS..........................................................................11
11
INTRODUÇÃO.................................................................................... 17
INTRODUÇÃO
1 - O QUE É PROGRAMAÇÃO?.
PROGRAMAÇÃO?....................................................19
.................................................. 19
1.1 Programação e o raciocínio lógico.........................................19

1.2 A linguagem de programação de Python.............................21

1.3 O que nós vimos neste capítulo?............................................ 25

2 - A LINGUAGEM PYTHON.......................................................
PYTHON.......................................................27
27
2.1 Por que usar a linguagem Python?.........................................27

2.2 Características de linguagens de programação..................27

2.2.1 O interpretador Python.........................................................27

2.2.2 Python é uma linguagem interpretada.............................31

2.2.3 Variáveis e tipos de variáveis............................................... 34

2.2.4 Verificando tipos com a função “type()”............................ 36

2.2.5 Python usa tipagem dinâmica.............................................37

2.2.6 Blocos de código e indentação em Python..................... 38

Exercícios............................................................................................ 43

3 - PYTHON BÁSICO: VARIÁVEIS, OPERADORES E


ENTRADA E SAÍDA DE DADOS.
DADOS............................................... 45
3.1 O que é uma variável?............................................................... 45

3.2 Regras para nomear variáveis.................................................47

3.3 Python é dinamicamente tipada............................................47

3.4 Manipulando strings (tipo “str” do Python)......................... 50

3.5 Operadores.................................................................................. 52
3.6 A função de entrada “input()” e a função de saída
“print()”...................................................................................................54

Exercícios............................................................................................ 58

4 - ESTRUTURA DE DECISÃO IF..............................................


IF..............................................61
61
4.1 O comando IF...............................................................................61

4.2 O comando IF...ELSE................................................................61

4.3 O comando IF... ELIF................................................................ 63

4.4 Sintaxe do comando de decisão IF....................................... 64

Exercícios............................................................................................ 65

5 - ESTRUTURA DE REPETIÇÃO.
REPETIÇÃO.............................................69
........................................... 69
5.1 O comando WHILE.................................................................. 69

Exercícios.............................................................................................79

5.2 O comando FOR........................................................................ 83

5.2.1 O uso da iteração com “range”............................................. 85

5.2.2 O uso de outros “iteratores”.................................................87

Exercícios usando comando de repetição FOR........................87

Exercícios usando comando de repetição WHILE e FOR.... 93

6 - LISTA..............................................................................................
LISTA.............................................................................................. 95
6.1 Criando uma lista........................................................................97

6.2 O tamanho da lista.................................................................... 98

6.3 Adicionando elementos à lista............................................... 98

6.4 Modificando elementos na lista............................................. 99

6.5 Apagando elementos na lista.................................................101

Exercícios.......................................................................................... 102
7 - DICIONÁRIOS.
DICIONÁRIOS............................................................................107
..........................................................................107
7.1 Criando um dicionário.............................................................107

7.2 Adicionando e modificando elementos em um


dicionário.......................................................................................... 109

7.3 Buscando as chaves de um dicionário................................110

7.4 Buscando os valores de um dicionário................................111

7.5 Verificando se uma chave pertence ao dicionário........... 112

7.6 Usando um “For Loop” para percorrer o dicionário........ 115

7.7 Apagando elementos de um dicionário...............................117

Exercícios........................................................................................... 118

8 - FUNÇÕES....................................................................................
FUNÇÕES....................................................................................125
125
8.1 Criando uma função................................................................ 126

8.2 Módulos.......................................................................................128

8.3 A variável __name__............................................................... 133

8.4 Passagem de parâmetros........................................................138

8.5 O comando “return”................................................................. 139

Exercícios........................................................................................... 141

REFERÊNCIAS..................................................................................147
REFERÊNCIAS ............................................................................... 147
SOBRE A AUTORA........................................................................
AUTORA........................................................................ 148
Lista de figuras
11

LISTA DE FIGURAS

Figura 1 – Sequência de passos de um raciocínio lógico......20

Figura 2 – Download da linguagem Python no site


oficial.................................................................................................... 22

Figura 3 – Programa escrito em Python com o objetivo de calcular


a operação (+5)x(-3-4) usando a propriedade distributiva.... 23

Figura 4 – Ao executar o passo “print(resultado)”, o


valor da variável “resultado” é apresentado na tela do
computador........................................................................................ 24

Figura 5 – Sequência de comandos e sua execução em


Python ................................................................................................ 25

Figura 6 – Janela inicial do IDLE................................................. 28

Figura 7 – Executando comandos na linha de comando do


interpretador IDLE.......................................................................... 28

Figura 8 – Usando o editor de textos do IDLE........................ 29

Figura 9 – Salvando o programa como o nome de


“alomundo”........................................................................................30

Figura 10– Opção de menu RUN usada para executar um


programa Python.............................................................................30

Figura 11 – Execução do programa “alomundo.py” na janela


do interpretador IDLE.....................................................................31

Figura 12 – Exemplo de um processo de tradução na vida


real........................................................................................................ 32

Figura 13 – Processo de compilação........................................... 32

Figura 14 – Processo de interpretação........................................ 33

Figura 15 – Declarando variáveis do tipo “int” no interpretador


do IDLE............................................................................................... 34
Algoritmos e programação em Python para o Ensino Técnico Integrado
12

Figura 16 – Declarando variáveis do tipo “float” no interpretador


do IDLE............................................................................................... 35

Figura 17 – Declarando variáveis do tipo “str” no interpretador


do IDLE............................................................................................... 35

Figura 18 – Declarando variáveis do tipo “bool“ no interpretador


do IDLE............................................................................................... 36

Figura 19 – Checando o tipo de variáveis e valores com a função


“type()”................................................................................................. 36

Figura 20 – O Python informa que a operação não


pode ser realizada, pois as variáveis “x” e “y” são de tipos
diferentes.............................................................................................37

Figura 21 – Fluxo de execução de comandos usando a


condição “se”...................................................................................... 39

Figura 22– Fluxo de execução de comandos usando o laço de


repetição “enquanto”....................................................................... 40

Figura 23 – Exemplo de indentação em Python..................... 41

Figura 24 – Inserindo comentários em uma linha................. 42

Figura 25 – Inserindo um comentário de mais de uma


linha...................................................................................................... 43

Figura 26 – Variáveis “a”, “b” e “c” definidas na janela do


interpretador IDLE.......................................................................... 46

Figura 27 – Variáveis “a”, “b” e “c” definidas no editor de textos


do IDLE............................................................................................... 46

Figura 28 – Comando de atribuição declara explicitamente a


variável “x”.......................................................................................... 48

Figura 29 – Usando a função “type()” para verificar o tipo da


variável “x”.......................................................................................... 48

Figura 30 – Mudando o valor e o tipo da variável “x”.......... 49


Lista de figuras
13

Figura 31 – Declarando a variável “x” com diferentes


tipos...................................................................................................... 49

Figura 32 – Executando o programa da Figura 31.................. 50

Figura 33 – Acessando elementos da “string”........................... 51

Figura 34 – Tentando modificar um caractere na “string”.... 51

Figura 35 – Verificando o tamanho da “string”......................... 51

Figura 36 – Usando a função “input()”........................................55

Figura 37 – Usando a função “input()” para ler um valor do tipo


“int”........................................................................................................ 56

Figura 38 – Usando a função “input()” para ler um valor do


tipo “float”........................................................................................... 56

Figura 39– Bloco de repetição no exemplo “a soma dos números


inteiros de 1 a 10”.............................................................................. 69

Figura 40 – O comando de repetição “while” no exemplo de


“a soma dos números inteiros de 1 a 10”.................................... 70

Figura 41 – Exemplo de um programa em “loop infinito”... 70

Figura 42 – Execução do programa em “loop infinito”.......... 71

Figura 43 – Código em Python com o exemplo 1...................72

Figura 44 – Execução do exemplo 1.............................................72

Figura 45 – Código em Python com o exemplo 2...................73

Figura 46 – Execução do exemplo 2............................................73

Figura 47– E rro de exceção após modificação no


exemplo 2............................................................................................74

Figura 48 – Código em Python com o exemplo 3...................75

Figura 49– Código em Python com o exemplo 4....................76

Figura 50 – Execução do exemplo 4............................................76


Algoritmos e programação em Python para o Ensino Técnico Integrado
14

Figura 51 – Código em Python com o exemplo 5................... 77

Figura 52 – Código em Python com o exemplo 6...................78

Figura 53 – Código em Python com o exemplo 7...................78

Figura 54 – Mostrando os números pares de 0 a 20 (usando


repetição “while”).............................................................................. 84

Figura 55 – Mostrando os números pares de 0 a 20 (primeira


solução usando repetição “for”)................................................... 86

Figura 56 – Mostrando os números pares de 0 a 20 (segunda


solução usando repetição “for”).................................................... 86

Figura 57 – Acessando os caracteres da variável “binário” (do


tipo “str”) por meio de índices...................................................... 96

Figura 58 – Verificando o tipo dos caracteres da variável “binário”


(do tipo “str”) por meio do comando “type” do Python........97

Figura 59 – Verificando o tipo dos caracteres da variável “binário”


(do tipo “str”) por meio do comando “type” do Python........97

Figura 60 – Verificando o tamanho da lista com o comando


“len()”..................................................................................................... 98

Figura 61 – Modificando um elemento da lista.....................100

Figura 62 – Erro indica que o usuário tentou acessar um índice


não existente na lista......................................................................100

Figura 63 – Erro ao tentar apagar um elemento que não existe


na lista.................................................................................................101

Figura 64 – Criando um dicionário em Python com o uso de


chaves (“{}”)........................................................................................107

Figura 65– Criando um dicionário em Python com o uso da


palavra-reservada “dict”................................................................ 108

Figura 66 – Verificando as chaves de um dicionário usando o


comando “keys”................................................................................110
Lista de figuras
15

Figura 67 – Verificando os valores de um dicionário usando o


comando “values”.............................................................................111

Figura 68 – Verificando os valores de um dicionário usando o


comando “values”............................................................................ 112

Figura 69 – O programa tenta imprimir o valor contido na


chave “c”............................................................................................. 113

Figura 70 – Mensagem de erro emitida pelo Python após o


programa tentar acessar uma chave que não existe.............. 114

Figura 71 – O programa verifica se a chave existe no


dicionário e, somente se ela existir, imprime o valor associado
a ela...................................................................................................... 114

Figura 72 – O programa verifica se a chave existe no dicionário,


e se ela não existe, ele imprime a mensagem “a chave não existe
no dicionário”................................................................................... 115

Figura 73 – Resultado da execução do programa escrito na


Figura 71............................................................................................. 115

Figura 74 – Resultado da execução do programa escrito na


Figura 71............................................................................................. 116

Figura 75 – Resultado da execução do programa escrito na


Figura 73............................................................................................. 116

Figura 76 – Erro ao tentar apagar um elemento associado a


uma chave não presente no dicionário..................................... 118

Figura 77 – Listagem de funções embutidas no Python......125

Figura 78 – Exemplo de código que efetua as operações de


soma, subtração, multiplicação e divisão................................ 126

Figura 79 – Código definindo quatro funções (soma, subtração,


multiplicação e divisão), em que cada uma delas executa uma
operação matemática específica.................................................. 127

Figura 80 – Código realizando a chamada das funções (soma,


subtração, multiplicação e divisão)............................................128
Algoritmos e programação em Python para o Ensino Técnico Integrado
16

Figura 81 – Módulo “saudacao.py”................................................129

Figura 82 – Importando o módulo “saudacao.py” no interpretador


IDLE................................................................................................... 130

Figura 83 – Importando o módulo “saudacao.py” no interpretador


IDLE.................................................................................................... 131

Figura 84 – Verificando o valor da variável __name__ do


módulo “saudacao”............................................................................ 131

Figura 85 – Importando o módulo “saudacao” usando


“from.. import..”...................................................................................132

Figura 86 – Módulo “calculadora”..............................................134

Figura 87 – Resultado da impressão do valor da variável


__name__.........................................................................................134

Figura 88 – Módulo é executado somente se o valor da variável


__name__for igual a “__main__”............................................135

Figura 89 – Módulo “calculadora.py” contendo somente as


definições de funções.................................................................... 136

Figura 90 – Uso de “import” para importar as funções definidas


em “calculadora.py”....................................................................... 136

Figura 91 – Uso de “from..import” para importar as funções


definidas em “calculadora.py”...................................................... 137

Figura 92 – Função “soma” definida com dois parâmetros.138

Figura 93 – Função “soma” recebendo as variáveis “x” e “y”


como argumentos.......................................................................... 139

Figura 94 – Função “soma” retornando o resultado da


operação............................................................................................ 140

Figura 95 – Função “compara” verificando se os valores “x” e


“y” são iguais.................................................................................... 140

Figura 96 – Resultado da execução da função “compara”


passando os valores 3 e 3............................................................... 141
Introdução
17

INTRODUÇÃO

Esta obra surgiu da necessidade de preparar um guia


de referência e/ou um livro didático sobre algoritmos de
programação para alunos do ensino técnico médio integrado
de informática do Instituto Federal do Piauí (IFPI). A disciplina
Algoritmos de programação é ministrada no 1º ano do ensino
médio, e propõe apresentar aos alunos o conceito de algoritmos
e programação, e como desenvolvê-los na resolução de
problemas.
Neste livro, para o desenvolvimento de algoritmos,
trabalharemos com a linguagem Python, versão 3.x (versão
3 ou superior). O objetivo aqui não é constituir um guia
aprofundado, mas um material didático que possa ser utilizado
como roteiro de estudo e em sala de aula, com atividades
comuns a serem executadas por professores e alunos. Para ter
acesso à documentação da linguagem, o leitor pode visitar o
endereço: https://www.python.org/doc/.
Os capítulos foram organizados com o intuito de apresentar
os conceitos básicos de algoritmos e programação, os quais são
desenvolvidos utilizando recursos da linguagem Python. Ao
término de cada capítulo (exceto o capítulo 1), estão dispostas
atividades complementares, a fim de que o leitor teste seus
conhecimentos e seu domínio sobre o conteúdo oportunizado.
Algoritmos e programação em Python para o Ensino Técnico Integrado
18
Capítulo 1 - O que é programação?
19

O QUE É PROGRAMAÇÃO?

1.1 PROGRAMAÇÃO E O RACIOCÍNIO LÓGICO

Quando nos deparamos com o desafio de programar,


imaginamos que essa é uma atividade complexa e nunca,
antes, executada por nós. No entanto, para começar a falar
em programação, podemos mencionar uma atividade que
executamos todos os dias, a todo momento em nossas vidas,
que é o raciocínio lógico.
O raciocínio lógico é executado constantemente em
nossas vidas, pois em simples ações, como tarefas do dia a
dia, utilizamos o raciocínio. Um exemplo prático disso seria
o raciocínio que você desenvolve todos os dias para realizar
a tarefa de ir à escola; ou, ainda, o que você desenvolve para
realizar a soma total de suas compras no supermercado, e/ou
do valor máximo que você tem disponível para gastar nessa
compra.
Portanto, o raciocínio lógico está na tarefa de fazer um
bolo, como misturar os ingredientes, definir em quanto tempo
se deve colocá-lo no fogo, e assim por diante.
Então, com o objetivo de executar uma tarefa específica,
você pensa em pequenos passos sequenciados que o levarão
ao objetivo final. É assim que você trabalha mentalmente na
resolução de pequenos problemas do dia a dia. É dessa forma
também que você trabalha mentalmente para solucionar um
problema de matemática, por exemplo.
Como fazemos isso? Imagine o seguinte problema de
matemática:
Utilizando a propriedade distributiva, efetue a operação
sem o auxílio da calculadora: (+5) x (-3-4).
Algoritmos e programação em Python para o Ensino Técnico Integrado
20

Lembrando que a propriedade distributiva é utilizada


quando um número está multiplicando uma adição ou subtração,
basta multiplicar em separado cada termo, e somar ou subtrair
o resultado.
Então, tente descrever o seu raciocínio em pequenos passos na
hora de realizar essa tarefa.
Vamos lá! Esse foi um raciocínio lógico utilizado para a
execução do problema:
Passo 1) (+5)x(-3) = -15
Passo 2) (+5)x(-4) = -20
Passo 3) -15-20= -35
Acima, observamos que para solucionar o problema,
devemos decompô-lo em três passos diferentes. Na Figura 1,
abaixo, você vê um esquema com a sequência de passos do
Formatado: Fonte: (P
raciocínio lógico, o objetivo desse raciocínio e o resultado
esperado.

Figura 1 – Sequência de passos de um raciocínio lógico

Fonte: elaborada pela autora (2021).

Na Figura 1, você consegue visualizar o raciocínio lógico


decomposto em passos, com o propósito de calcular o valor
da operação (+5) x (-3-4) usando a propriedade distributiva.
Verifique que após todos os passos serem executados, obtém-
se o resultado do raciocínio. No exemplo dado, o valor -35.
Capítulo 1 - O que é programação?
21

Assim como o problema de matemática apresentado


acima, que foi decomposto em três pequenos passos para ser
solucionado, você está o tempo todo resolvendo tarefas no seu
dia a dia, pensando sobre a melhor maneira de solucioná-las
e, possivelmente, decompondo essas tarefas em passos. Isso é
raciocínio lógico. E você utiliza-o o tempo todo.
Então, agora que falamos um pouco sobre raciocínio
lógico, podemos concluir que a atividade de programação
é uma atividade essencialmente de raciocínio lógico. Olha
que legal, você já está acostumado a usar o raciocínio lógico
automaticamente em quase todas as tarefas do seu dia a dia!

1.2 A LINGUAGEM DE PROGRAMAÇÃO DE PYTHON

Imagine agora que você pedirá para o computador executar


a mesma sequência de passos realizada no exemplo da Figura
1. Então, como explicar isso para o computador? Agora, o
problema é de comunicação. Você consegue traduzir para o seu
cérebro o problema e efetuar essa tarefa sozinho, mas como
explicar isso para que o computador execute essa tarefa? Para
realizar essa comunicação, você precisa de uma LINGUAGEM
DE PROGRAMAÇÃO, que determinará a forma como você
deve descrever os passos que o computador executará, bem
como o resultado que será apresentado.
Existem muitas linguagens de programação no mercado,
cada uma com suas características específicas e regras para
determinar essa comunicação. É como definir se você falará
português, inglês ou espanhol – depende muito de seu objetivo,
da mesma maneira, para cada uma das linguagens, existem
formas diferentes de definir os passos a serem executados.
Essa “forma” de definir os passos nós chamamos também
de SINTAXE, que é a maneira como se escreve. Por exemplo:
em português, você diz Bom dia; em inglês, Good morning, e
Algoritmos e programação em Python para o Ensino Técnico Integrado
22

assim por diante. Dessa forma, como a língua que você fala
possui uma sintaxe específica, a linguagem de computador que
você usa também possui sua própria sintaxe.
Logo, para que você faça um PROGRAMA DE
COMPUTADOR, você precisará usar uma LINGUAGEM DE
PROGRAMAÇÃO, e para usar essa linguagem de programação,
será necessário conhecer a sintaxe dessa linguagem.
A linguagem que utilizaremos neste livro é a linguagem de
programação Python versão 3.7. Você pode baixar gratuitamente
a linguagem Python no endereço https://www.python.org/
downloads/. No momento de criação desse material, a última
versão disponível no site era a 3.9.5, como visto na Figura 2.
Você pode baixar esta versão sem problemas. Qualquer versão
acima da 3 será compatível com as atividades realizadas neste
livro.

Figura 2 – Download da linguagem Python no site oficial

Fonte: (PYTHON, 2021).


Capítulo 1 - O que é programação?
23

Então, agora sabendo de que precisamos de uma


LINGUAGEM DE PROGRAMAÇÃO, que usaremos a
linguagem PYTHON e que o Python possui uma SINTAXE
específica, como fazer um programa em Python que peça
para o computador executar a operação (+5)x(-3-4), usando a
propriedade distributiva?
A Figura 3 ilustra os três passos para realizar a operação,
traduzidos para a sintaxe Python.

Figura 3 – Programa escrito em Python com o objetivo de calcular a


operação (+5)x(-3-4) usando a propriedade distributiva

Fonte: elaborada pela autora (2021).

Você não conseguiu entender totalmente os passos


realizados na Figura 3, acima? Tudo bem! Provavelmente, você
não está entendendo porque ainda não conhece a SINTAXE
da linguagem Python. Tentaremos agora traduzir cada um dos
passos realizados no programa:
Passo 1) valor1 = (+5)*(-3)
O cálculo será realizado e o resultado (o valor -15) será
guardado dentro de “valor1”.
Considere “valor1” como uma caixa onde você pode
armazenar valores. Na linguagem, chamamos esse recurso
de VARIÁVEL. Uma variável pode receber diferentes valores
durante a execução de um programa.
Passo 2) valor2 = (+5)*(-4)
O cálculo será realizado e o resultado (o valor -20) será
guardado dentro da VARIÁVEL “valor2”.
Passo 3) resultado = valor1+valor2
Algoritmos e programação em Python para o Ensino Técnico Integrado
24

A soma dos valores guardados em “valor1” e “valor2” é


realizada, e o resultado é guardado na VARIÁVEL “resultado”.
Passo 4) print(resultado)
Reparou que o passo 4 não existia na primeira solução? Os
passos anteriores realizaram as operações e usaram VARIÁVEIS
(“valor1”, ”valor2” e “resultado”) para guardar os resultados.
Mas em nenhum momento, esse resultado foi apresentado
na tela do computador. A FUNÇÃO “print()” é usada, em
Python, para imprimir um valor, este valor (chamado de
argumento) é definido entre os parênteses que acompanham
o nome da função. Logo, no exemplo, quando o programa for
executado, print(resultado) mostrará na tela do computador
o valor guardado na variável “resultado”, conforme mostra a
Figura 4.

Figura 4 – Ao executar o passo “print(resultado)”, o valor da variável


“resultado” é apresentado na tela do computador

Fonte: elaborada pela autora (2021).

Além da FUNÇÃO “print()”, existem várias outras funções


definidas na linguagem Python. Ainda sobre o exemplo da
Figura 4, até agora, vimos que para realizar a operação (+5)x(-
3-4) usando a linguagem Python, usamos VARIÁVEIS (“valor1”,
“valor2” e “resultado”) e uma FUNÇÃO (“print()”) . Além disso,
no Python, percorremos quatro passos para alcançar o objetivo
desejado.
Capítulo 1 - O que é programação?
25

A esses passos realizados você pode chamar de


COMANDOS. Os COMANDOS são executados, no exemplo
dado, linha a linha, um após o outro, ou seja, sequencialmente.
Para que os COMANDOS sejam executados corretamente,
vimos que é preciso conhecer a SINTAXE da linguagem Python,
isto é, a forma correta de escrever tais comandos.
Na linha de comando “print(resultado)”, é impresso o valor
da variável “resultado” na tela do computador. Logo, podemos
dizer que esse é um COMANDO DE SAÍDA DE DADOS.
Veja, na Figura 5, o novo esquema (agora usando a linguagem
Python), similar ao da Figura 1.

Figura 5 – Sequência de comandos e sua execução em Python

Fonte: elaborada pela autora (2021).

1.3 O QUE NÓS VIMOS NESTE CAPÍTULO?

Conversamos aqui sobre como programar tem muito


a ver com uma atividade básica do seu dia a dia: o uso do
raciocínio lógico. Falamos que para programar, precisamos usar
Algoritmos e programação em Python para o Ensino Técnico Integrado
26

o raciocínio lógico na resolução de problemas, assim como de


uma linguagem de programação. A linguagem de programação
que utilizaremos neste livro é a linguagem Python.
Falamos rapidamente também sobre alguns conceitos
usados em programação, tais como sintaxe, variáveis, a
função “print()” do Python, comandos e comandos de saída
de dados. Muita coisa? Não precisa ficar preocupado! Todos
esses conceitos serão discutidos de forma mais detalhada nos
próximos capítulos. Vamos continuar?
Capítulo 2 - A linguagem python
27

A LINGUAGEM PYTHON

2.1 POR QUE USAR A LINGUAGEM PYTHON?

Python é uma linguagem muito fácil de aprender: sua


sintaxe é muito simples e permite ao programador concentrar-
se mais na solução do problema e menos com regras de sintaxe
de linguagem. Esse é um dos principais motivos para Python ser
uma linguagem tão adequada ao uso no estudo de algoritmos
e linguagem de programação, tendo em vista que estamos
começando o desafio de aprender a programar.
Por sinal, Python é um software livre, ou seja, pode ser
usado gratuitamente. Além disso, pode ser usado em qualquer
arquitetura de computadores ou sistema operacional como,
por exemplo, Windows, Linux ou Mac.

2.2 CARACTERÍSTICAS DE LINGUAGENS DE


PROGRAMAÇÃO

2.2.1 O interpretador Python

Para começarmos a desenvolver programas utilizando a


linguagem Python, precisamos instalar o interpretador Python
no computador, que é o programa que permite executar todos
os comandos da linguagem. Para desenvolver os exemplos
apresentados neste livro, você pode instalar a versão 3.8 ou
superior. Você pode baixar o interpretador Python no site
oficial https://www.python.org/downloads/.
Quando você abrir o programa interpretador, verá a janela
inicial do IDLE. A sigla IDLE significa Integrated Developmentand
Learning Environment (Ambiente Integrado de Desenvolvimento
e Aprendizagem). O IDLE é uma interface gráfica utilizada
Algoritmos e programação em Python para o Ensino Técnico Integrado
28

pelo interpretador como um ambiente de desenvolvimento


integrado para a execução de programas e comandos escritos
em Python. A aplicação vem junto com a maioria das instalações
do Python e está presente na distribuição oficial, desde a versão
2.3. Veja a Figura 6.

Figura 6 – Janela inicial do IDLE

Fonte: elaborada pela autora (2021).

A janela inicial, na Figura 6, é a janela do interpretador.


Observe, ainda, que o cursor está posicionado dentro da janela,
e a linha de comando é iniciada pela sequência “>>> (também
chamada de prompt de comando). Você pode executar os
comandos Python linha a linha na janela do interpretador,
conforme mostra a Figura 7.

Figura 7 – Executando comandos na linha de comando do interpretador


IDLE

Fonte: elaborada pela autora (2021).


Capítulo 2 - A linguagem python
29

Na Figura 7, o interpretador está sendo usado para realizar


as operações matemáticas “3+3” e, logo em seguida, “3*2”.
Em Python, você pode utilizar qualquer editor de textos
disponível, mas o IDLE também possui um editor de textos
próprio. Com a janela do IDLE aberta, clique no menu FILE,
selecione a opção NEW FILE. Uma nova janela será aberta.
Nela, você pode escrever seu programa Python. Veja a Figura 8.

Figura 8 – Usando o editor de textos do IDLE

Fonte: elaborada pela autora (2021).

Na Figura 8, podemos visualizar duas janelas: uma é a do


interpretador (a mesma da Figura 6); a outra é a do editor de
textos. Para salvar seu programa escrito no editor, você pode
clicar no menu FILE, selecionar a opção SAVE ou SAVE AS
(salvar e modificar o nome do arquivo). O programa escrito
em Python será salvo com a extensão “.py” automaticamente.
Veja na Figura 9.
Algoritmos e programação em Python para o Ensino Técnico Integrado
30

Figura 9 – Salvando o programa como o nome de “alomundo”

Fonte: elaborada pela autora (2021).

Verifique, na Figura 9, que na parte inferior da janela


SALVAR COMO, existe a definição do nome do arquivo e, logo
em seguida, o tipo do arquivo. No exemplo dado, o nome do
arquivo foi definido como “alomundo”.
Ainda na Figura 9, observe que o tipo de arquivo é definido
automaticamente como um arquivo do tipo Python (na janela
descrito como “Python files”). Assim, o programa escrito em
Python será salvo com a extensão “.py”. No exemplo visto,
o nome do arquivo, juntamente com a sua extensão, será
“alomundo.py”. Para executar o programa “alomundo.py” no
IDLE, você pode clicar em menu RUN, opção RUN MODULE.
Veja a Figura 10. A execução do programa será apresentada
na janela inicial ( janela do interpretador), conforme mostra
a Figura 11.

Figura 10– Opção de menu RUN usada para executar um programa


Python

Fonte: elaborada pela autora (2021).


Capítulo 2 - A linguagem python
31

Figura 11 – Execução do programa “alomundo.py” na janela do


interpretador IDLE

Fonte: elaborada pela autora (2021).

2.2.2 Python é uma linguagem interpretada

Quando a sintaxe da linguagem é facilmente entendida


por nós, dizemos que ela é de alto nível. Isso posto, a linguagem
de programação simplifica o nosso trabalho, possibilitando que
nós, usuários programadores, possamos escrever um código-
fonte próximo da nossa própria linguagem e/ou entendimento.
Ocorre que o computador não consegue entender
diretamente o código-fonte escrito na linguagem de alto nível,
daí porque é necessária a tradução desse código para que o
computador possa executá-lo. Nesse processo, o código deve
ser transformado em um código mais próximo da linguagem
de máquina (imagine que o computador só entende sequências
de “0” e “1”, chamadas de código binário), ou seja, um código
que realmente o computador seja capaz de entender e executar.
Para realizar essa tradução, as linguagens de programação usam
diferentes estratégias.
O programa que você escreve (linguagem de alto nível),
segundo a sintaxe da linguagem, será lido e executado pelo
computador. Para que esse programa seja compreendido pela
máquina, antes, ele deve ser traduzido para uma forma que o
computador consiga entender.
Algoritmos e programação em Python para o Ensino Técnico Integrado
32

Você pode imaginar esse processo como algo semelhante


ao que acontece na vida real: imagine que você precisa se
comunicar com um nativo americano que acabou de chegar à
sua escola, mas você não entende uma única palavra em inglês
e ele, por sua vez, não entende nada em português. Você pedirá
ajuda a um amigo que domina o inglês e é capaz de traduzir
sua mensagem. Assim, seu amigo será seu tradutor, e o colega
americano conseguirá entender sua mensagem depois de
traduzida. Veja a Figura 12.

Figura 12 – Exemplo de um processo de tradução na vida real

Fonte: elaborada pela autora (2021).

Cada linguagem de programação usa um processo de


tradução. De acordo com o processo de tradução que uma
linguagem usa, ela pode ser classificada como compilada ou
interpretada.
Em uma linguagem compilada, o texto que você escreve
(chamado também de código-fonte do programa) é lido por
um tradutor, nomeado de compilador, ou seja, um programa
que lê o código-fonte e, a partir dele, cria outro arquivo, um
arquivo binário (igualmente chamado de arquivo executável).
Esse arquivo é a tradução do que foi escrito no código-fonte,
e uma vez realizada a tradução para o arquivo executável, ele
pode ser executado diretamente pelo seu computador. Veja a
Figura 13.

Figura 13 – Processo de compilação

Fonte: elaborada pela autora (2021).


Capítulo 2 - A linguagem python
33

No processo de compilação da Figura 13, para criar o


arquivo com o código executável, o programa compilador
executa os seguintes passos:
Cria um código-objeto: converte o código-fonte em
linguagem de máquina (linguagem entendida pelo hardware
do computador). Esse código só é criado quando não há erros
no código-fonte. A extensão do arquivo que contém o código-
fonte é .OBJ.
Logo em seguida, um ligador ou linkeditor “junta” o
código-fonte com outros arquivos necessários presentes na
linguagem (chamados de “bibliotecas”). As extensões dos
arquivos de bibliotecas, geralmente, são .DLL ou .LIB. Dessa
união, é criado o arquivo executável. O código executável pode
ser, então, executado pelo sistema operacional do computador.
Contudo, em uma linguagem interpretada, não é criado
um arquivo executável. Nesse caso, o arquivo de código-fonte
é executado por meio do uso de outro programa, chamado
de interpretador. Assim, toda vez que o programa for usado,
o interpretador entrará em ação e o traduzirá diretamente,
durante a sua execução. Veja a Figura 14.

Figura 14 – Processo de interpretação

Fonte: elaborada pela autora (2021).

O interpretador lê o programa escrito em código-fonte


(linguagem de alto nível) e executa-o. Assim, o interpretador
processa o programa um pouco de cada vez, alternadamente,
lendo as linhas de comando e realizando as operações, linha
a linha.
Algoritmos e programação em Python para o Ensino Técnico Integrado
34

2.2.3 Variáveis e tipos de variáveis

Você lembra que no capítulo anterior falamos sobre


variáveis? Que elas são como caixas onde você pode armazenar
valores? Pois bem, esses valores podem ser de vários tipos.
Abaixo seguem alguns tipos básicos usados em Python:
- Inteiro (“int”): armazena valores do tipo inteiro. Exemplo: 2,
10, 20 etc. A Figura 15 mostra os comandos sendo escritos no
prompt (“>>>”) do interpretador. Na primeira linha, a variável
“a” recebe o valor 2. Logo em seguida, “b” recebe o valor 10, e
x, o valor “20”. Em seguida, os valores armazenados em cada
um deles é impresso na tela.

Figura 15 – Declarando variáveis do tipo “int” no interpretador do IDLE

Fonte: elaborada pela autora (2021).

- Ponto flutuante ou decimal (“float”): armazena valores com


casas decimais. Exemplo: 2.3, 4.35, 6.5 etc. Veja a Figura 16.
- String (“str”): armazena strings, ou seja, uma cadeia de
caracteres. Os valores, nesse caso, são armazenados entre
aspas simples (‘ ’) ou aspas duplas (“ ”). Exemplo: “casa”, “1234”,
“Maria de Fatima” etc. Veja a Figura 17.
Capítulo 2 - A linguagem python
35

Figura 16 – Declarando variáveis do tipo “float” no interpretador do IDLE

Fonte: elaborada pela autora (2021).

Figura 17 – Declarando variáveis do tipo “str” no interpretador do IDLE

Fonte: elaborada pela autora (2021).

- Boolean (“bool”): armazenas valores booleanos, ou seja, valores


lógicos, os quais são representados por True (verdadeiro) ou
False (falso). Veja a Figura 18.
Algoritmos e programação em Python para o Ensino Técnico Integrado
36

Figura 18 – Declarando variáveis do tipo “bool“ no interpretador do IDLE

Fonte: elaborada pela autora (2021).

2.2.4 Verificando tipos com a função “type()”

No Python, para verificar o tipo de determinada variável


ou valor, você pode usar a função “type()”, conforme mostra o
exemplo na Figura 19.

Figura 19 – Checando o tipo de variáveis e valores com a função “type()”

Fonte: elaborada pela autora (2021).


Capítulo 2 - A linguagem python
37

2.2.5 Python usa tipagem dinâmica

Em algumas linguagens, antes de armazenarmos um valor


na variável, devemos declarar o tipo da variável. Por exemplo,
o código abaixo mostra a sintaxe na linguagem Java:

Na primeira linha, ele declara “x” do tipo “int”. Logo em


seguida, armazena o valor 2 (dois) em “x”. Na segunda linha,
ele declara “y” do tipo “float”, e nessa mesma linha, armazena o
valor 2.3 em “y”. Como antes de armazenar o valor na variável,
é necessário declarar explicitamente qual o tipo da variável,
dizemos que a linguagem Java usa tipagem estática.
Na linguagem Python, não precisamos declarar as variáveis
nem seus tipos, ou seja, dizemos que Python possui tipagem
dinâmica.
No Python, o tipo ao qual a variável está associada pode
variar durante a execução do programa. Mesmo não declarando
explicitamente as variáveis, elas sempre assumem um único tipo
em determinado momento (tipagem forte). Veja na Figura 20.

Figura 20 – O Python informa que a operação não pode ser realizada,


pois as variáveis “x” e “y” são de tipos diferentes

Fonte: elaborada pela autora (2021).


Algoritmos e programação em Python para o Ensino Técnico Integrado
38

Quando o tipo de dado não é bem definido, a linguagem


pode alterá-lo por alguma ação, sem intervenção direta do
programador. Nesse caso, dizemos que a linguagem possui
tipagem fraca. Veja o exemplo abaixo, feito na linguagem
Javascript:

2.2.6 Blocos de código e indentação em Python

Quando estamos construindo um programa, precisamos


organizar nosso código em blocos (subgrupos de códigos).
Blocos de código são pequenos trechos do programa que, para
serem executados, estão associados a alguma condição.
Na vida real, podemos verificar alguns exemplos de ações
que executamos durante o dia e que dependem das condições
da situação atual. No exemplo abaixo, descrevemos os passos
que devem ser executados na ação de ir para a escola:

Verifique, na Figura 21, as setas indicando o fluxo de


execução dos comandos.
Capítulo 2 - A linguagem python
39

Figura 21 – Fluxo de execução de comandos usando a condição “se”

Fonte: elaborada pela autora (2021).

Veja que os passos 1, 2 e 3 devem ser executados


independentemente de qualquer condição. No entanto, o passo
4.1 só acontecerá se o passo 4 for uma condição verdadeira (se
estiver chovendo). Dizemos que o passo 4.1 depende de um
comando condicional “se” (passo 4). Podemos usar essa analogia
para dizer que o passo 4.1 é um trecho de código (ou bloco de
código) que depende do passo 4 para acontecer. Nesse caso,
o trecho de código possui um único comando (comando 4.1).
Logo em seguida, o passo 5 é executado.
Vamos agora modificar um pouco mais o nosso exemplo:
Algoritmos e programação em Python para o Ensino Técnico Integrado
40

Agora, no passo 4, você deve ficar checando se ainda


está chovendo, pois enquanto estiver chovendo, você não
pode sair de casa. O passo 4.1 continua sendo o trecho de
código dependente do passo 4, só que agora você tem de ficar
verificando repetidas vezes se a chuva já passou ou não. Se a
chuva não passar, você não consegue continuar os demais passos,
ou seja, se a chuva não passar, você nunca executará o passo 5.
Dizemos que o passo 4.1 é um trecho de código (ou bloco
de código) que está dependendo de um comando de laço de
repetição “enquanto” (passo 4). Verifique na Figura 22 as setas
indicando o fluxo de execução dos comandos.

Figura 22– Fluxo de execução de comandos usando o laço de repetição


“enquanto”

Fonte: elaborada pela autora (2021).

Observe que tanto na Figura 21 (exemplo com o uso do


comando condicional “se”) quanto na Figura 22 (exemplo
com o uso do comando de repetição “enquanto”), o passo 4.1
é apresentado no código com um espaçamento a mais para
Capítulo 2 - A linguagem python
41

a direita. Dizemos que o passo 4.1 está indentado à direita,


indicando que ele depende de a condição do passo 4 ser
verdadeira.
O Python usa a indentação como uma forma de arrumar o
código, fazendo com que algumas linhas fiquem mais à direita
que outras, à medida que adicionamos espaços em seu início.
Veja, na Figura 23, a indentação em destaque.

Figura 23 – Exemplo de indentação em Python

Fonte: elaborada pela autora (2021).

Assim, em Python, os blocos são demarcados apenas


por espaços de indentação. Essa característica da linguagem
faz com que o código fique muito mais enxuto, uma vez que
contém menos instruções e símbolos, além de se tornar um
código mais claro e legível.
Algoritmos e programação em Python para o Ensino Técnico Integrado
42

2.2.7 Comentários em Python

Comentários são informações que podem ser adicionadas


ao programa, como o autor do programa, objetivo do programa
etc. O interpretador deve ser avisado de que essas linhas não
devem ser processadas, e para isso, o Python usa caracteres
especiais.
Existem dois tipos de comentários em Python, por
exemplo, para definir um comentário por linha o Python usa
o caractere “#”. Veja na Figura 24.

Figura 24 – Inserindo comentários em uma linha

Fonte: elaborada pela autora (2021).

No exemplo acima, existem três linhas de comentários,


cada uma das quais é definida como um comentário, por meio
do uso do caractere #.
Para definir um comentário de mais de uma linha, são
utilizadas três aspas duplas (“““) ou três aspas simples (‘‘‘) no
início do comentário e ao término dele. Veja no exemplo da
Figura 25.
Capítulo 2 - A linguagem python
43

Figura 25 – Inserindo um comentário de mais de uma linha

Fonte: elaborada pela autora (2021).

EXERCÍCIOS

1 . Defina o que você entende por programa de computador.

2 . Com base no que você leu até agora, o que você entende
por variáveis?

3 . Como você define o tipo de uma variável? Como você pode


verificar o tipo de uma variável no Python?

4 .A partir da versão 3.x da linguagem Python, o IDLE


é instalado juntamente com a linguagem Python no
computador. Marque V (Verdadeiro) ou F (Falso):

( ) A janela inicial do IDLE é conhecida como interpretador,


e pode ser usada para executar linhas de comando, tais como
comandos Python ou operações matemáticas.

( ) Na janela do interpretador, o comando deve ser digitado


logo após a sequência “>>>”, também conhecida como “prompt”
de comando do interpretador.
Algoritmos e programação em Python para o Ensino Técnico Integrado
44

( ) Para escrever um programa Python no IDLE, você deve,


inicialmente, acessar a opção de menu FILE/NEW FILE na
janela inicial e abrir uma nova janela, onde será escrito o
programa.

( ) Programas em Python podem ser salvos com qualquer


extensão.

( ) Programas em Python são salvos, automaticamente, com


a extensão “.py” no editor de texto do IDLE.

5 . Defina linguagem de alto nível.

6 . Define tipagem estática e tipagem dinâmica. Qual das duas


Python utiliza?

7 . Defina tipagem forte e tipagem fraca. Qual das duas Python


utiliza?

8 . Sobre a sequência de comandos abaixo:

Modifique a sequência e acrescente que se estiver frio, você


deve levar um casaco.

9 . Explique o que você entendeu por blocos de códigos e


indentação em Python.

10 . Pesquise na internet uma receita de bolo de chocolate.


Tente descrever em uma sequência de comandos a receita
que você encontrou.

11 . Tente descrever em uma sequência de comandos os passos


que devem ser realizados para trocar o pneu de um carro.
Capítulo 3 - Python básico: variáveis, operadores e entrada e saída de dados
45

PYTHON BÁSICO: VARIÁVEIS,


OPERADORES E ENTRADA E
SAÍDA DE DADOS

3.1 O QUE É UMA VARIÁVEL?

No Capítulo 2, falamos que variáveis são como caixas


onde você pode armazenar valores, lembra? Então, ao escrever
programas, você deparar-se-á com a necessidade de armazenar
e manipular valores de dados. Para armazenar e manipular
esses valores de dados, você precisará usar o que chamamos
de variáveis.
Uma variável é simplesmente um nome que faz referência
a algum local (chamamos de “endereço”) na memória do
computador, onde é guardado um determinado valor. Para
criar uma variável no Python, precisamos associá-la a um valor
(ou a outra variável) usando o comando de atribuição que
corresponde ao símbolo “=”, como no trecho abaixo:
Variável = valor
Os valores nas variáveis são guardados temporariamente,
e só existem enquanto o programa é executado. Durante a
execução de um programa, uma variável pode ter seu valor
modificado várias vezes. Quando a execução do programa
acaba, os valores armazenados nas variáveis são perdidos
automaticamente.
Veja, na Figura 26, a soma de dois valores sendo realizada
no interpretador e o resultado sendo apresentado logo em
seguida. Para realizar a operação, foram criadas três variáveis.
Algoritmos e programação em Python para o Ensino Técnico Integrado
46

Figura 26 – Variáveis “a”, “b” e “c” definidas na janela do interpretador


IDLE

Fonte: elaborada pela autora (2021).

No exemplo da Figura 26, três variáveis foram criadas


(“a”, “b” e “c”). Você lembra que ainda falamos no Capítulo 2
sobre os tipos de variáveis? No exemplo dado, as três variáveis
são do tipo “int” no Python, ou seja, guardam valores do tipo
inteiro. Revise, no Capítulo 2, os tipos básicos “int”, “float”, “str”
e “bool” (seção 2.2.3 Variáveis e tipos de variáveis).
O exemplo da Figura 26 foi realizado na janela do
interpretador. Vamos agora escrever um programa que realize
a soma entre dois valores no editor de textos do IDLE. Veja a
Figura 27.

Figura 27 – Variáveis “a”, “b” e “c” definidas no editor de textos do IDLE

Fonte: elaborada pela autora (2021).

Você notou alguma diferença entre a sequência de


comandos escrita na Figura 26 e na Figura 27? Qual?
Capítulo 3 - Python básico: variáveis, operadores e entrada e saída de dados
47

Verifique que no interpretador (Figura 26), a quarta linha


de comando está escrita apenas usando o nome da variável “c”.
Logo em seguida, o interpretador apresenta o resultado, “10”.
No interpretador, basta você escrever o nome da variável e o
valor dela será apresentado na tela. Quando você escreve o
programa no editor de textos, não é possível escrever somente
o nome da variável para obter o seu valor.
Para mostrar o valor guardado na variável, você deve usar
a função “print()”. Assim, na Figura 27, para mostrar o valor
armazenado na variável “c”, na quarta linha do programa, está
escrito “print(c)”. Falaremos mais sobre o função “print()” do
Python nas próximas seções.

3.2 REGRAS PARA NOMEAR VARIÁVEIS

Existem regras nas linguagens de programação na hora


de definir nomes de variáveis. No caso do Python:
- Nomes de variáveis devem começar com uma letra (maiúscula
ou minúscula) ou o caractere underline (_ ); o restante do nome
da variável pode ter letras, números e underline.
Exemplo de nomes de variáveis válidos: x, y , _valor , soma1,
Numero1 ....
Exemplo de nomes de variáveis inválidos: 2x, 4valor....
- Python é case-sensitive, ou seja, a linguagem faz diferença
entre letras maiúsculas e minúscula.
Exemplo: “Valor” e “valor” são considerados pelo Python coisas
diferentes, por causa da diferença maiúscula (na primeira
palavra) e minúscula (na segunda palavra) na letra “v”.

3.3 PYTHON É DINAMICAMENTE TIPADA

Em Pyton, você não precisa declarar as variáveis (dizer


explicitamente de que tipo a variável é) antes de usá-las. Veja
a Figura 28.
Algoritmos e programação em Python para o Ensino Técnico Integrado
48

Figura 28 – Comando de atribuição declara explicitamente a variável “x”

Fonte: elaborada pela autora (2021).

No exemplo da Figura 28, uma variável “x” recebe o valor


10. Com esse comando de atribuição de valor, automaticamente,
a variável “x” é criada no Python, e o valor do tipo inteiro 10 é
atribuído. O Python verifica o valor atribuído, 10, identifica que
ele é um inteiro, e dinamicamente, atribui o tipo int a variável
“x”. Logo, você não precisa explicitar que a variável “x” é do
tipo int, pois a linguagem Python é dinamicamente tipada e
resolve isso automaticamente para o programador.
Na Figura 29, usamos o função “type()” para checar o tipo
da variável “x”. Verifique que “x” é definida pela linguagem
como do tipo “int”.

Figura 29 – Usando a função “type()” para verificar o tipo da variável “x”

Fonte: elaborada pela autora (2021).

O tipo definido dinamicamente pode mudar, dependendo


dos valores que são atribuídos à variável. Na Figura 30, após
receber o valor inteiro 10, a variável “x” recebeu o valor “olá”
(Relembrando: os valores definidos entre aspas simples (‘ ‘) ou
Capítulo 3 - Python básico: variáveis, operadores e entrada e saída de dados
49

duplas (“ “) são considerados cadeias de caracteres e definidos


como do tipo “str”). Então, “x” passa a ser uma variável do tipo
“str”.

Figura 30 – Mudando o valor e o tipo da variável “x”

Fonte: elaborada pela autora (2021).

Agora veja, na Figura 31, o exemplo escrito no editor IDLE.


Nele, inicialmente, o comando de atribuição “x=2” atribui o valor
2 à variável “x”. Logo em seguida, usa-se a função “print(x)” para
imprimir o valor de x e “print(type(x))” para imprimir o tipo da
variável “x”. Verifique a execução do programa na Figura 32.

Figura 31 – Declarando a variável “x” com diferentes tipos

Fonte: elaborada pela autora (2021).


Algoritmos e programação em Python para o Ensino Técnico Integrado
50

Figura 32 – Executando o programa da Figura 31

Fonte: elaborada pela autora (2021).

3.4 MANIPULANDO STRINGS (TIPO “STR” DO PYTHON)

Uma string – tipo definido “str” no Python –, como já


vimos, pode ser definida como uma cadeia de caracteres, e
é possível acessar individualmente cada um dos elementos
dessa cadeia, os quais contém uma posição, por meio da qual
é possível acessar um elemento particular.
Exemplo: nome = “maria”
A primeira posição da cadeia começa com 0 (zero), logo:

nome[0] ‘m’

nome[1] ‘a’

nome[2] ‘r’

nome[3] ‘i’

nome[4] ‘a’

Assim, você também pode verificar um intervalo qualquer


dentro da cadeia de caracteres. Por exemplo, ao solicitar [2:4],
é retornado o intervalo “ri” dentro da cadeia. Isso acontece
porque o primeiro valor indica o início da cadeia e o segundo,
o fim dela – sendo que o valor nessa posição não é incluído na
seleção. Veja na Figura 33.
Capítulo 3 - Python básico: variáveis, operadores e entrada e saída de dados
51

Figura 33 – Acessando elementos da “string”

Fonte: elaborada pela autora (2021).

Outra característica do tipo string é que se trata de uma


sequência imutável, ou seja, não pode ter seu valor modificado.
Veja na Figura 34 a mensagem de erro apresentada ao usuário,
ao tentar modificar um caractere da string. A mensagem
apresentada em vermelho diz que o tipo “str” não suporta
atribuição de valores.

Figura 34 – Tentando modificar um caractere na “string”

Fonte: elaborada pela autora (2021).

O tamanho de uma variável “str” no Python pode ser


verificado a partir do comando “len()”. Veja na Figura 35.

Figura 35 – Verificando o tamanho da “string”

Fonte: elaborada pela autora (2021).


Algoritmos e programação em Python para o Ensino Técnico Integrado
52

3.5 Operadores

Quadro 1 – Operadores no Python

OPERAÇÃO OPERADOR (ES) EXEMPLO


UTILIZADO (S)
Adição + >> 2+2
>> 4
>> x = “teste”
>> y = “segundo teste”
>>x+y
>> “testesegundo teste”
Subtração - >> 10 – 5
>>5

Multiplicação * >>10*5
>>50
Divisão / >>10/5
>>2

>>5/2
>>2.5

Se desejar só resultado inteiro da divisão:

>>int(5/2)
>>2

O “int” captura somente a parte inteira da


divisão, ou seja, o valor sem casas
decimais.

Importante: Não é possível divisão por 0


(zero), a execução dessa operação causará
um erro no programa:

>>> 5/0
Traceback (mostrecentcalllast):
File "<pyshell#2>", line 1, in <module>
5/0
ZeroDivisionError: division by zero

Atribuição = >> x = 10
(assign men t) >> x = 20

Condicional de == >> x=10


Igualdade >> y=20
Usado em uma >> x==y
expressão booleana >>False
aonde:
>>x=10
Se os elementos forem >>y=10
iguais retorna >>x==y
verdadeiro (Tru e). >>True
Capítulo 3 - Python básico: variáveis, operadores e entrada e saída de dados
53

Se os elementos forem >>5==5


diferentes retorna falso >>True
(F alse).
Condicional de != >>x=10
diferença >>y=14
Usado em uma >>x!=y
expressão booleana >>True
aonde:
>>x=10
Se os elementos forem >>y=10
Compara
diferentestodas as
retorna OBS:
>>x!=y(4==4) é True e (4<5) é True, logo o
expressões (Tru e).
verdadeiro booleanas de resultado
>>False é True.
uma sentença:
Se os elementos forem >>5!=5 and (4<5)
>>(4!=4)
-iguais retorna
Se todas falso
as expressões >>False
(F alse).verdadeiras,
forem
Comparação retorna
< (menor) verdadeiro OBS:
>> 4 <(4!=4)
5 é False e (4<5) é True, logo o
(True).
> (maior) resultado
>>True é False.
<= (menor ou igual)
-Se pelo menos
>= (maior uma das
ou igual) >>(4==4)
>> 4 <= 5 and (4<5) and (2!=2)
expressões for falsa, >>False
>>True
retorna falso (False).
>> 4 >(4==4)
OBS: 5 é True, (4<5) é True e (2!=2) é
Fazendo a tabela de False,
>>Falselogo o resultado é False.
Usados em uma
combinações possíveis
podemos
expressãover:
booleana, >> 4 >= 5
retornando verdadeiro >> False
(True)and
True ou True=
Falso (False),
True
de acordo com o >> 4>=4
resultado
True da
and False = False >>True
comparação.
False and True= False >> 4<=4
>>False
False and False= False
Lógico (or) or >>(4==4) or (4>5)
Lógica(not) not
Compara todas as >>not(True)
>>True
expressões booleanas de >>False
modifica
uma um valor
sentença: OBS: (4==4) é True e (4>5) é False, logo o
booleano >>not(False)
resultado é True.
- Se pelo menos uma >>True
das expressões for >>(4!=4) or (4>5)
verdadeira, retorna >>x=True
>>False
verdadeiro (True). >>not(x)
>>False
OBS: (4!=4) é False e (4>5) é False, logo o
-Se todas as expressões resultado é False.
Lógico (and) and
forem falsas, retorna >>(4==4) and (4<5)
falso (False). >>True or (4<5) or (2!=2)
>>(4==4)
>>True
Compara todas as OBS: (4==4) é True e (4<5) é True, logo o
Fazendo a tabela de
expressões booleanas de resultado é True.
combinações possíveis OBS: (4==4) é True, (4<5) é True e (2!=2) é
uma sentença:
podemos ver: False, logo o resultado é True.
>>(4!=4) and (4<5)
- Se todas as expressões >>False
True or True = True
forem verdadeiras,
True or False = True
retorna verdadeiro OBS: (4!=4) é False e (4<5) é True, logo o
False or True = True
(True). resultado é False.
False or False = False
-Se pelo menos uma das >>(4==4) and (4<5) and (2!=2)
expressões for falsa, >>False
retorna falso (False).
OBS: (4==4) é True, (4<5) é True e (2!=2) é
Fazendo a tabela de False, logo o resultado é False.
combinações possíveis
podemos ver:
Fazendo a tabela de
expressões booleanas
combinações possíveisde resultado
OBS: é True.
(4==4) é True, (4<5) é True e (2!=2) é
uma sentença:
podemos ver: False, logo o resultado é True.
>>(4!=4) and (4<5)
Algoritmos e programação em Python para o Ensino Técnico Integrado
54 - Se todas
True or Trueas expressões
= True
foremorverdadeiras,
>>False
True False = True
retorna
False or verdadeiro
True = True OBS: (4!=4) é False e (4<5) é True, logo o
(True).
False or False = False resultado é False.

-Se pelo menos uma das >>(4==4) and (4<5) and (2!=2)
expressões for falsa, >>False
retorna falso (False).
OBS: (4==4) é True, (4<5) é True e (2!=2) é
Fazendo a tabela de False, logo o resultado é False.
combinações possíveis
podemos ver:

True and True= True

True and False = False

False and True= False

False and False= False


Lógico (or) or >>(4==4) or (4>5)
Compara todas as >>True
expressões booleanas de
uma sentença: OBS: (4==4) é True e (4>5) é False, logo o
resultado é True.
- Se pelo menos uma
das expressões for >>(4!=4) or (4>5)
verdadeira, retorna >>False
verdadeiro (True).
OBS: (4!=4) é False e (4>5) é False, logo o
-Se todas as expressões resultado é False.
forem falsas, retorna
falso (False). >>(4==4) or (4<5) or (2!=2)
>>True
Fazendo a tabela de
combinações possíveis OBS: (4==4) é True, (4<5) é True e (2!=2) é
podemos ver: False, logo o resultado é True.

True or True = True


True or False = True
False or True = True
False or False = False

Fonte: elaborada pela autora (2021).

3.6 A FUNÇÃO DE ENTRADA “INPUT()” E A FUNÇÃO DE


SAÍDA “PRINT()”

Já citamos aqui algumas funções existentes na linguagem


Python. Mas, afinal, o que é uma função? Podemos dizer que
uma função é uma sequência de comandos com determinado
nome que tem o objetivo de executar certa tarefa.
Capítulo 3 - Python básico: variáveis, operadores e entrada e saída de dados
55

Nesse sentido, Python possui várias funções definidas na


linguagem que o programador pode utilizar. Além disso, você
pode definir suas próprias funções. Nas seções anteriores, nós
usamos as funções “type()” e “print()” do Python. Nesta seção,
falaremos, especificamente, de duas funções de entrada e saída,
respectivamente: a função “input()” e a função “print()”.
A função “input()” é utilizada para ler valores a partir do
teclado do computador. Como você está recebendo valores a
partir do teclado, dizemos que essa é uma função de entrada
de dados. Veja no exemplo abaixo:

No exemplo, a função “input()“ escreve na tela do


computador a mensagem “digite o valor de x:” e aguarda o valor
ser digitado por meio do teclado. Esse valor, por sua vez, será
atribuído à variável “x”. Veja o exemplo na Figura 36, em que o
usuário digita o valor 10. Logo, 10 será atribuído à variável “x”.

Figura 36 – Usando a função “input()”

Fonte: elaborada pela autora (2021).

A função “input()” , a partir do Python 3.x, considera por


padrão que o valor lido é do tipo “str”. Assim, no exemplo da
Figura 31, “x” recebe o valor “10”, sendo tipada como sendo
uma variável do tipo “str”.
Algoritmos e programação em Python para o Ensino Técnico Integrado
56

Nas versões 2.x do Python, a função usada para fazer a


leitura de um valor do tipo “str” era chamada de raw_input(). A
partir das versões 3.x, a função raw_input() foi simplesmente
renomeada para input(). Portanto, a partir das versões 3.x do
Python, a função raw_input() não existe mais.
Então, como ler valores de tipos diferentes usando somente
a função input() no Python 3.x? Você pode usar conversão de
tipos para resolver esse problema. Por exemplo, para ler um
valor do tipo “int”, converta o valor “str” retornado pela função
input() para “int”. Veja na Figura 37.

Figura 37 – Usando a função “input()” para ler um valor do tipo “int”

Fonte: elaborada pela autora (2021).

Para ler um valor do tipo “float”, converta o valor “str”


retornado pela função input() para “float”. Veja na Figura 38,
abaixo.

Figura 38 – Usando a função “input()” para ler um valor do tipo “float”

Fonte: elaborada pela autora (2021).


Capítulo 3 - Python básico: variáveis, operadores e entrada e saída de dados
57

A função “print()”, por sua vez, é utilizada para apresentar


informações (cadeia de caracteres) e/ou valores na tela do
computador. Como você está apresentando dados a partir do
teclado, dizemos que essa é uma função de saída de dados.
Veja no exemplo abaixo:

Nesse exemplo, a mensagem “testando a saída de dados”


será impressa na tela. Observe que para apresentar uma
mensagem na forma de uma cadeia de caracteres (string), é
necessário colocar essa mensagem entre aspas (“ “ ou ‘ ‘) . No
caso da impressão de um valor de dados, as aspas não são
necessárias. Veja no exemplo:

Nesse exemplo, será apresentada a mensagem:

10

Ainda é possível combinar mensagem e valor em uma


mesma chamada da função “print()”. Veja no exemplo:

Nesse exemplo, será apresentada a mensagem:

No caso de existir mais de um valor a ser apresentado, é


possível separar a cadeia de caracteres utilizando vírgulas (,).
Veja no exemplo:
Algoritmos e programação em Python para o Ensino Técnico Integrado
58

Outra forma de combinar uma cadeia de caracteres com


valores é a utilização da função “format()”, que em Python, serve,
basicamente, para criar uma string que contém campos entre
chaves que são substituídos pelos argumentos de “format()”.
Portanto, repare que os campos de substituição na string que
estão entre chaves ‘{}’ estão associadas aos parâmetros do
método “format()”.
Vamos reconstruir o último exemplo, agora, usando
“format()”:

No caso de existir mais de um argumento, é possível


indicar a sequência do que será apresentado na cadeia. Veja
no exemplo:

EXERCÍCIOS

1 . Qual o valor final das variáveis A e B, após a execução das


instruções abaixo?

A = 2
B = A*5
A = B+2
B = A-5
Valor A: ___________
Valor B:____________
Capítulo 3 - Python básico: variáveis, operadores e entrada e saída de dados
59

2 . Mostre o que será impresso pelo seguinte algoritmo:

B=28
A= (B*2)
C=A-B
print(A)
print(C)
print(“C”)
Resposta: ___________________________________

3 . Faça um programa que receba dois números e, ao término,


mostre a soma, subtração, multiplicação e divisão dos
números lidos.

4 . Uma loja está vendendo seus produtos em cinco prestações


sem juros. Faça um programa que leia o valor de uma compra
e mostre o valor das prestações.

5 . Faça um programa que receba o preço de custo de um


produto e mostre o valor de venda. Sabe-se que o preço de
custo recebe um acréscimo de acordo com o percentual
informado pelo usuário.

6 . Leia uma velocidade em m/s, calcule-a e escreva-a em


km/h. (Vkm/h = Vm/s * 3.6).

7 . Leia um valor em horas e um valor em minutos, calcule e


escreva o equivalente em minutos.

8 . Leia o valor do dólar e um valor em dólar, calcule e escreva


o equivalente em real (R$).

9 . Leia um número inteiro (três dígitos), calcule e escreva a


soma de seus elementos (C + D + U).

10 . Leia uma velocidade em km/h, calcule-a e escreva-a em


m/s. (Vm/s = Vkm/h / 3.6)
Algoritmos e programação em Python para o Ensino Técnico Integrado
60
Capítulo 4 - Estrutura de decisão if
61

ESTRUTURA DE DECISÃO IF

4.1 O COMANDO IF

O comando “if” (“se”) serve para selecionar uma parte de


um código que deverá ser executada. Por exemplo, o programa
a seguir informa que um aluno está aprovado por média se a
nota dele for maior ou igual a 7.0.
Exemplo: Teste o programa com valores diversos entre
0 e 10, e veja o resultado.

No exemplo acima, no primeiro “if”, a expressão “nota>=7.0”


é testada. Seu resultado deve retornar verdadeiro (True) ou falso
(False). Somente se a expressão for verdadeira, o programa
executará a linha de código “print(“Você está aprovado por média.”)”.
No segundo “if”, a expressão “nota<7.0” é testada. Somente
se o resultado da expressão for verdadeiro (True), o programa
executará a linha de código “print(“Você não está aprovado por
média.”)”.

4.2 O COMANDO IF...ELSE

Outra forma de escrever o exemplo anterior é utilizar


o “if” combinado com o comando “else” (“então”). O “else” é
executado se a expressão dentro do “if” for falsa (False). Veja
a seguir:
Algoritmos e programação em Python para o Ensino Técnico Integrado
62

Observe que ao utilizar o “else”, não foi mais preciso utilizar


o segundo “if” do exemplo anterior.
Imagine agora que você precisa verificar, ainda, duas
situações:
• se a nota é menor (<) do que 4 (quatro), deve ser
informado que o aluno está reprovado;
• se a nota é maior ou igual (>=) a 4 (quatro), deve ser
informado que o aluno fará prova final.
Observe que as duas situações podem acontecer quando
o programa entrar no bloco “else” do programa. Então, é lá que
você pode realizar essa modificação. Veja como ficou agora:

Agora, dentro do bloco “else”, temos 2 (dois) “ifs” seguidos.


Podemos, novamente, usar o “else” e retirar o segundo “if” do
código. Veja:
Capítulo 4 - Estrutura de decisão if
63

Repare que você tem, agora, um bloco “if-else” mais


interno dentro de um bloco “else”, ou seja, para que o bloco
“if-else” mais interno seja executado, o resultado na expressão
“nota >=7” precisa ser falso (False).

4.3 O COMANDO IF... ELIF

Ainda existe outra estrutura do Python, além do “else”, que


pode ser utilizada combinada com o “if”. Seu nome é “elif”, e
nela combinam-se um comando “else” e um comando “if”, ou
seja, ao executar o comando “else”, efetua-se, igualmente, um
teste para uma nova expressão. Vamos modificar novamente o
exemplo anterior e usar essa estrutura. Veja abaixo como ficou:

Verifique que agora, não existe mais um bloco interno


“if” dentro do “else”. Seu programa, agora, contém uma única
estrutura “if” e associada a ela, existem os blocos “elif” e “else”.
Se a expressão “nota>=7” for falsa (False) o programa desvia
Algoritmos e programação em Python para o Ensino Técnico Integrado
64

a execução para a linha do “elif”, se a expressão “nota<4” for


verdadeira (True), o programa executa a linha “print(“Você
está reprovado!!”)” e depois encerra a execução. Se a expressão
“nota<4” for falsa (False), o programa executa a linha “print(“
Você ainda vai fazer prova final!!! ” )” e depois encerra a execução.
Ainda é possível usar o “elif” sem que, necessariamente,
ele seja seguido de “else”. A opção “elif” é interessante quando
existe mais de uma situação a ser testadas pelo programa. Veja
no exemplo abaixo:

4.4 SINTAXE DO COMANDO DE DECISÃO IF

Assim, a sintaxe do comando de decisão “if” é a seguinte:


Capítulo 4 - Estrutura de decisão if
65

As regras básicas são:


- a estrutura deve começar sempre com um IF;
- só é possível ter um ELSE na estrutura, isto é, o ELSE não
é obrigatório, mas se ele for usado, só pode estar uma única
vez na estrutura;
- depois do IF, é possível colocar quantos ELIFs forem desejados,
bem como terminar a estrutura com um ELIF.
- observe, também, que a indentação é necessária para cada
bloco de código contido dentro da estrutura.

EXERCÍCIOS

1 . O que será impresso após a execução das instruções abaixo?

A = 2
B = A*5
B = A-5
if A>2:
print(“o valor é “,A)
else:
print(“A é menor que 2!“)

Reposta: ________________________________

2 . O que será impresso após a execução das instruções abaixo?

A = 10
B = A*5
B = A-5
if A>=2:
print(“o valor é ”,A)
elif B<0:
print(“B é menor que 0!“)
Algoritmos e programação em Python para o Ensino Técnico Integrado
66

Reposta: ________________________________

3 . O que será impresso após a execução das instruções abaixo?

A = 0
B = A*5
B = A-5
if A>=2:
print(“o valor é “,A)
elif B<0:
print(“B é menor que 0!“)
else:
print(“Nenhuma das alternativas anteriores!“)

Reposta: ________________________________

4 . Leia dois números e em seguida, verifique e escreva o


menor e o maior dentre os números lidos.

5 . Leia duas notas de um aluno e escreva na tela a palavra


“Aprovado” se a média das duas notas for maior ou igual a 7,0.
Caso a média seja inferior a 7,0, escreva “O aluno deve fazer
a prova final!”, logo em seguida, o programa deve ler a nota
da prova final e calcular a média final. Se a média final for
maior ou igual a 6,0, o programa deve escrever “Aprovado!”;
caso contrário, deve escrever “Reprovado!”.

6 . Leia dois valores e a operação matemática que deve ser


executada entre eles. Para definir a operação matemática
use as seguintes opções: “ Digite: 1 (Adição) / 2 (Subtração) / 3
(Multiplicação) / 4 (Divisão)”. Em seguida, calcule e escreva o
resultado dessa operação sobre os dois valores lidos.

7 . Leia um número e mostre na tela se ele é positivo ou


negativo.
Capítulo 4 - Estrutura de decisão if
67

8 . Leia uma letra e verifique se ela é igual a “F”, se for escreva


“F – Feminino”; se ela for igual a “M” e escreva “M– Masculino”.
Se ela não for igual a nenhuma das duas opções escreva “O
valor digitado é inválido!!”.

9 . Leia o preço de três produtos e informe qual deles deve ser


comprado, sabendo que a decisão é sempre pelo mais barato.

10 . Leia o turno em que um aluno estuda, sendo “M” para


matutino, “V” para Vespertino e “N” para Noturno, e escreva
a mensagem “Bom Dia!”, “Boa Tarde!” ou “Boa Noite!”, ou “Valor
Inválido!”, conforme o caso.

11 . Leia um número inteiro e imprima se ele é par e divisível


por 3.

12 . Faça um algoritmo no Python que leia o nome e a idade


de uma pessoa e em seguida:

- Imprima o nome da pessoa;

- Se a pessoa tem 18 anos, imprima “A pessoa tem 18 anos!!”;

- Se a pessoa tem mais de 18 anos, imprima “A pessoa tem mais


de 18 anos!!!”;

- Se a pessoa tem menos de 18 anos, imprima “A pessoa tem


menos de 18 anos!!!”.

13 . A loja “Computadores e Cia” está vendendo seus produtos


em cinco prestações, sem juros. Na compra à vista, a loja dá
um desconto de 10%. Faça um algoritmo que receba o valor
de uma compra, mostre ao usuário como ficaria o valor das
prestações (para o caso de compra à prazo) e como ficaria o
valor à vista. Em seguida, o usuário deve escolher entre as
opções:
Algoritmos e programação em Python para o Ensino Técnico Integrado
68

Opção <1> - Realizar compra a prazo


Opção <2> - Realizar compra à vista
Opção <3> - Cancelar
Após a escolha:

- Se o usuário escolheu opção <1> ou <2>, mostre na tela do


computador o valor da compra (no caso da compra a prazo,
mostre o valor total, o valor e quantidade de cada parcela).

- Se o usuário escolheu opção <3>, mostre na tela do computador


a mensagem: “Você não realizou a compra!!”
Capítulo 5 - Estrutura de repetição
69

ESTRUTURA DE REPETIÇÃO
As estruturas de repetição, normalmente, são usadas
quando é necessário repetir determinada parte do código de
um número N de vezes. Um exemplo bem simples seria a soma
de todos os números inteiros de 1 a 10. Nesse problema, temos
uma soma que deve ser realizada dez vezes. Veja a Figura 39.

Figura 39– Bloco de repetição no exemplo “a soma dos números inteiros


de 1 a 10”

Fonte: elaborada pela autora (2021).

No exemplo acima, as linhas 3 e 4 irão se repetir (chamamos


também de “loop” de repetição ou laço de repetição) enquanto
o valor de “num” for menor ou igual a 10.
Neste capítulo, estudaremos as duas estruturas de repetição
existentes na linguagem Python, a saber:
• while
• for

5.1 O COMANDO WHILE

A estrutura “while” (“enquanto”) tem como objetivo repetir


a execução de um bloco de código enquanto determinada
condição é válida, ou seja, enquanto uma condição for verdadeira
Algoritmos e programação em Python para o Ensino Técnico Integrado
70

(True), um bloco de código será executado repetidas vezes. No


momento em que a condição for falsa (False), o processamento
da rotina será desviado para fora do laço de repetição.
Assim, refazendo o exemplo da Figura 39, podemos
reescrever esse código em Python, utilizando a estrutura “while”.
Veja na Figura 40.

Figura 40 – O comando de repetição “while” no exemplo de “a soma dos


números inteiros de 1 a 10”

Fonte: elaborada pela autora (2021).

No exemplo da Figura 40, o comando de repetição “while”


verifica a condição “num<=10”. E enquanto ela for verdadeira
(True), um bloco de código (contendo as linhas de comando
“soma = soma + num” e “num = num + 1”) será executado repetidas
vezes (dez vezes).
É importante observar que ao utilizar um comando de
repetição em um programa, a condição, em algum momento,
precisa ser false (False) para que o bloco de repetição possa ter
um “ponto de parada”. Se a condição sempre for verdadeira
(True), o laço de repetição repetir-se-á indefinidamente no
programa. Chamamos essa situação de “loop infinito”, e ela
causa um erro de semântica no programa. Veja na Figura 41.

Figura 41 – Exemplo de um programa em “loop infinito”


Capítulo 5 - Estrutura de repetição
71

Fonte: elaborada pela autora (2021).

Na Figura 41, a condição do comando “while” é sempre


verdadeira (True), o que faz com que o programa entre em loop
infinito. Veja a execução do programa na Figura 42.

Figura 42 – Execução do programa em “loop infinito”

Fonte: elaborada pela autora (2021).

Logo, para que a repetição pare de ser executada, em


algum momento, a condição envolvida deve passar a ser falsa
(False). Com isso, é possível garantir que existirá um ponto de
parada para a repetição.
A sintaxe do comando de repetição “while” é a seguinte:

A seguir, mostraremos mais alguns exemplos usando o


comando de repetição “while”:
IMPORTANTE: nos exemplos 1, 2, 3 e 4, a seguir, observe que
não é possível saber, antes da execução do programa, quantas
vezes o bloco de código irá se repetir, pois a quantidade de
repetições depende do valor digitado pelo usuário.
EXEMPLO 1: enquanto o usuário digitar a opção 1 o programa
executará o bloco de repetição. Se um valor diferente de 1 for
digitado, o programa encerrará a execução. Veja na Figura 43.
Algoritmos e programação em Python para o Ensino Técnico Integrado
72

Figura 43 – Código em Python com o exemplo 1

Fonte: elaborada pela autora (2021).

Veja na Figura 44 a execução do exemplo 1.

Figura 44 – Execução do exemplo 1

Fonte: elaborada pela autora (2021).

Veja, na Figura 44, que enquanto o usuário digita 1 (um), o


bloco de código associado ao “while” continua a ser executado.
O “ponto de parada”, nesse caso, é quando o valor de “op” for
diferente de 1 (nesse momento, o resultado da condição (op==1)
retornará falso (False), e o programa desvia, então, a execução
para o próximo comando (após o bloco de repetição “while”).

EXEMPLO 2: enquanto o usuário digitar “S” ou “s” (indica


“SIM”, sinalizando que o usuário quer continuar no programa),
este executará o bloco de repetição. Se um valor diferente de
“s” ou “S” for digitado, o programa encerrará a execução. Veja
na Figura 45.
Capítulo 5 - Estrutura de repetição
73

Figura 45 – Código em Python com o exemplo 2

Fonte: elaborada pela autora (2021).

No exemplo 2, a condição (op.upper()==”S”) será falsa


(False) quando op for diferente de “s” ou “S”. Observe que o
uso da função “upper()” faz com que o valor contido na variável
“op” seja colocado em caixa alta (maiúscula). Para transformar
caracteres em maiúsculo, no Python, você pode usar a função
“upper()”. Da mesma forma, para transformar caracteres em
minúsculo, você pode usar a função “lower()”.
Veja na Figura 46 a execução do exemplo 2.

Figura 46 – Execução do exemplo 2

Fonte: elaborada pela autora (2021).

Observe que tanto no exemplo 1 quanto no exemplo 2,


foi necessário, antes de executar o laço de repetição, inicializar
o valor da variável “op”. No primeiro caso, “op” é inicializado
com 1, e no segundo, “op”, com “S”. A inicialização de valor é
Algoritmos e programação em Python para o Ensino Técnico Integrado
74

necessária para que a condição associada ao comando “while”


seja verdadeira (True) e, pelo menos uma vez, o laço de repetição
seja executado.
Suponha a retirada do valor inicial de “op” tanto no
exemplo 1 quanto no exemplo 2.
No exemplo 1, modifique para:

No exemplo 2, modifique para:

O que aconteceria na execução dos programas? Ambos


apresentariam um erro na execução, indicando que é impossível
verificar as condições porque a variável “op” (em ambos os
exemplos) não foi definida.
Veja o resultado da execução do exemplo 2, após a
modificação, na Figura 47.

Figura 47– Erro de exceção após modificação no exemplo 2

Fonte: elaborada pela autora (2021).

Verifique que em ambos os casos (exemplo 1 e exemplo 2),


é necessário um valor prévio para a variável “op”, caso contrário,
o programa sofrerá um erro de exceção (um erro de exceção
em Python força a saída automática do programa).
Capítulo 5 - Estrutura de repetição
75

Veja, na Figura 47, a informação, em vermelho, na linha


de exceção (“NameError: name ‘op’ is not defined”), indicando
que a variável “op” não foi definida previamente, e por isso,
foi impossível verificar o valor da condição (op.upper()== “S”).

EXEMPLO 3: usando um loop infinito para definir que enquanto


o usuário digitar a “S” (indica “SIM”, sinalizando que ele quer
continuar no programa), o programa executará o bloco de
repetição. Se um valor diferente de “s” ou “S” for digitado, o
programa encerrará a execução. Veja na Figura 48.

Figura 48 – Código em Python com o exemplo 3

Fonte: elaborada pela autora (2021).

No exemplo 3, realiza-se um comando “if” dentro do laço


de repetição. A função da condicional “if”, nesse caso, é “forçar”
um ponto de parada, ou seja, quando a condição (op.upper()!=
“S”) for verdadeira (True), indica que o usuário digitou um
valor diferente de “S” ou “s”, e o programa executará a linha
de código com o comando “break”. O comando “break” força a
saída do laço de repetição, e então, o programa é encerrado.
Antes de conferir o próximo exemplo, tente modificar
o exemplo 1 e defina agora nele um loop infinito. O ponto de
parada deve ser quando o valor de “op” for diferente de 1.
EXEMPLO 4: no exemplo 3 anterior, verifique que o usuário
pode digitar quaisquer valores diferentes de “S” ou “s”. Vamos
modificar o programa do exemplo 3 de maneira que agora, o
programa só aceite ler valores contidos no conjunto [“S”, “s”, “N”,
Algoritmos e programação em Python para o Ensino Técnico Integrado
76

“n”]. Para quaisquer valores diferentes que forem digitados, o


programa deve informar que o valor informado pelo usuário
é inválido. Veja na Figura 49.

Figura 49– Código em Python com o exemplo 4

Fonte: elaborada pela autora (2021).

Veja o resultado da execução do exemplo 4 na Figura 50.

Figura 50 – Execução do exemplo 4

Fonte: elaborada pela autora (2021).

IMPORTANTE: observe agora que nos exemplos 5, 6 e 7, a


seguir, é possível saber, antes da execução do programa, quantas
vezes o bloco de repetição se repetirá, pois a quantidade de
repetições é definida previamente.
Capítulo 5 - Estrutura de repetição
77

EXEMPLO 5: o programa deve mostrar todos os números


pares entre 1 e 20. Veja na Figura 51.

Figura 51 – Código em Python com o exemplo 5

Fonte: elaborada pela autora (2021).

No exemplo 5, acima, temos um bloco de 20 (vinte)


repetições. Dentro do “while”, temos o seguinte bloco de
comandos:

Na expressão “num%2==0”, ele verifica se o resto da divisão


de “num” por 2 é igual a 0. Se for, então, o número é par, o
programa entra no bloco de código associado ao “if” e imprime
o valor na tela do computador (print(num)).
Na linha “num+=1”, o valor de “num” é incrementado de 1.
Na linha “cont+=1”, o valor de “cont” é incrementado de 1.
A variável “cont” é usada na linha “while cont<=20:” como
um “contador”, ou seja, ela controla a quantidade de vezes que
o laço de repetição acontece. Note que é preciso, no caso do
comando “while”, que o contador seja inicializado antes dele
para que a expressão possa ser avaliada pela primeira vez.
Além disso, é necessária a atualização do valor de “cont” a
cada repetição do laço. Nessa solução, o laço de repetição é
executado 20 (vinte) vezes.
Algoritmos e programação em Python para o Ensino Técnico Integrado
78

EXEMPLO 6: usando outra solução para um programa que


mostra todos os números pares entre 1 e 20. Veja na Figura 52.

Figura 52 – Código em Python com o exemplo 6

Fonte: elaborada pela autora (2021).

Note que agora, usamos uma única variável (“num”),


que é usada como contador e controla a quantidade de vezes
que o laço se repete. Ela é inicializada antes do “while”, com
o valor 0 (zero) (“num = 0”), e dentro do laço de repetição,
é incrementada de 2 (“num +=2”). Nessa solução, o laço de
repetição é executado dez vezes.
EXEMPLO 7: faça um programa que mostre a soma dos 30
(trinta) primeiros números inteiros divisíveis por 5. Veja na
Figura 53.

Figura 53 – Código em Python com o exemplo 7

Fonte: elaborada pela autora (2021).

Observe que a variável “num” (usada como contador) é


inicializada com 0 (zero) na linha “num = 0”, e dentro do laço
de repetição, é incrementada de 5 (cinco). A variável “soma”, a
cada repetição do laço, atualiza o valor da soma dos números
(“soma = soma + num”).
Capítulo 5 - Estrutura de repetição
79

Perceba o comando “print” será executado somente uma


vez, pois está fora do laço de repetição do comando “while”.
Nessa solução, o laço de repetição é executado 6 (seis) vezes.

EXERCÍCIOS

1 . De acordo com o código abaixo, responda às questões:

a) Qual a condição?

b) Quantas vezes o laço de repetição “while” se repete?

c) Por que esse laço de repetição é também chamado de “loop


infinito”?

2 . De acordo com o código abaixo, responda às questões:

a) Qual a condição?

b) A condição é verdadeira ou falsa (True or False)?

c) O que será impresso?

d) Quantas vezes o laço de repetição “while” é executado?

3 . De acordo com o código abaixo, responda às questões:


Algoritmos e programação em Python para o Ensino Técnico Integrado
80

a) Qual o último valor impresso ao término do programa?

b) Qual o último valor de “cont”, ao término do programa?

c) Preencha a tabela:

Observação: a quantidade de LINHAS na tabela NÃO SIGNIFICA


A QUANTIDADE DE REPETIÇÕES. Você PODE INCLUIR
LINHAS, SE NECESSÁRIO, ou ignorar LINHAS A MAIS.

4 . De acordo com o código abaixo, responda às questões:

a) Qual a condição?

b) A condição é verdadeira ou falsa (True or False)?

c) O que será impresso?

d) Quantas vezes o laço de repetição “while” é executado?

e) Qual o valor de “x” no fim do programa?


Capítulo 5 - Estrutura de repetição
81

5 . De acordo com o código abaixo, responda às questões:

a) Qual a condição?

b) A condição é verdadeira ou falsa (True or False)?

c) O que será impresso?

d) Quantas vezes o laço de repetição “while” é executado?

e) Qual o valor de “x” no fim do programa?

6 . De acordo com o código abaixo, responda às questões:

a) Qual a condição?

b) A condição é verdadeira ou falsa (True or False)?

c) O que será impresso?

d) Quantas vezes o laço de repetição “while” é executado?

e) Qual o valor de “x” no fim do programa?

f) Existe algum erro no programa acima? Se sim, explique


qual o erro?

7 . De acordo com o código a seguir, responda às questões:


Algoritmos e programação em Python para o Ensino Técnico Integrado
82

a) Qual a condição?

b) Quantas vezes o laço de repetição “while” é executado?

c) Preencha a tabela a seguir:

Observação: a quantidade de LINHAS na tabela NÃO SIGNIFICA


A QUANTIDADE DE REPETIÇÕES. Você PODE INCLUIR
LINHAS, SE NECESSÁRIO, ou ignorar LINHAS A MAIS.

8. De acordo com o código abaixo, responda às questões:

a) Qual a condição?
Capítulo 5 - Estrutura de repetição
83

b) Quantas vezes o laço de repetição “while” é executado?

c) Preencha a tabela a seguir:

Observação: a quantidade de LINHAS na tabela NÃO SIGNIFICA


A QUANTIDADE DE REPETIÇÕES. Você PODE INCLUIR
LINHAS, SE NECESSÁRIO, ou ignorar LINHAS A MAIS.

5.2 O COMANDO FOR

O comando “for” também é utilizado para criar uma


estrutura de repetição, no entanto existem algumas diferenças
em relação ao comando “while” visto anteriormente. Ao usar
o “for”:
- não existe a necessidade de inicializar uma variável (contador)
antes do início do laço de repetição;
- não existe a necessidade de, dentro do laço de repetição,
existir o incremento do valor da variável (contador).
A sintaxe do comando de repetição “for” é a seguinte:
Algoritmos e programação em Python para o Ensino Técnico Integrado
84

Onde <var> é o nome de uma variável, e <iteração> é a


iteração que será executada. A <iteração> pode ser considerada
como um conjunto de valores. A cada volta do comando de
repetição, <var> assume um dos valores do conjunto.
É comum surgir dúvidas tais como: Qual dos 2 (dois)
comandos utilizar: “while” ou “for”? Quando usar um ou o
outro?
Normalmente, é possível usar qualquer dos 2 (dois) laços
de repetição, mas podemos dizer que o uso do comando de
repetição “for” pode ser mais apropriado para os casos em
que o programador conhece, antes da execução do laço de
repetição, quantas vezes a repetição deve acontecer.
Por exemplo, se o problema é mostrar todos os números
pares de 0 (zero) a 20 (vinte), já é possível supor, antes da
execução do programa, que a repetição acontecerá em um
intervalo de 0 (zero) a 20 (vinte). O problema pode ser resolvido
usando um laço de repetição “while”, mas empregar o laço de
repetição “for”, nesse caso, pode tornar o problema menor e
mais legível. Veja, na Figura 54, a solução usando um laço de
repetição “while”.

Figura 54 – Mostrando os números pares de 0 a 20


(usando repetição “while”)

Fonte: elaborada pela autora (2021).

Para escrever o programa da Figura 54 usando a repetição


“for”, inicialmente, precisamos entender outro conceito muito
ligado à construção do comando “for” na linguagem Python:
o uso da iteração com o comando “range”.
Capítulo 5 - Estrutura de repetição
85

5.2.1 O uso da iteração com “range”

O comando “range” é usado para iterar um intervalo de


valores, gerando listas contendo progressões aritméticas. Veja
nos exemplos:
• range(4)
Abrange o intervalo [0,1,2,3]
• range(1,8)
Abrange o intervalo [1,2,3,4,5,6,7]
• range(0,10,2)
Abrange o intervalo [0,2,4,6,8]
Existem várias maneiras possíveis de usar o comando
“range”:
• range(<fim_do_intervalo>)
Nesse caso, o Python supõe, como padrão, que o início
do intervalo é o valor 0 (zero) e que o incremento de valor (a
cada repetição efetuada) é igual a 1.
O <fim_do_intervalo> não participa do intervalo. A
repetição acontece sempre até o <fim_do_intervalo> - 1.
Ex.: range(6) é referente ao intervalo [0,1,2,3,4,5]

• range(<inicio_do_intervalo>,<fim_do_intervalo>)
Nesse caso, o Python assume <inicio_do_intervalo> como
valor inicial do intervalo. Como padrão, o incremento de valor
(a cada repetição efetuada) é igual a 1.
O <fim_do_intervalo> não participa do intervalo. A
repetição acontece sempre até o <fim_do_intervalo> - 1.
Ex.: range(1,8) é referente ao intervalo [1,2,3,4,5,6,7]

• range(<inicio_do_intervalo>,<fim_do_
intervalo>,<incremento>)
Nesse caso, além do <inicio_do_intervalo> e <fim_do_
intervalo>, o Python assume também o valor <incremento>
como sendo o valor que será incrementado a cada repetição
do laço.
Algoritmos e programação em Python para o Ensino Técnico Integrado
86

O <fim_do_intervalo> não participa do intervalo. A


repetição acontece sempre até o <fim_do_intervalo> - 1.
Ex.: range(1,8,2) é referente ao intervalor [1,3,5,7]
Agora, conhecendo o comando “range”, podemos escrever
o programa da Figura 55 usando a repetição “for” combinada
com o intervalo definido pelo “range”. Veja na Figura a seguir.

Figura 55 – Mostrando os números pares de 0 a 20 (primeira solução


usando repetição “for”)

Fonte: elaborada pela autora (2021).

Na solução da Figura 55, o laço de repetição repete-se


21 (vinte e uma) vezes. Vamos ver na Figura 56 outra solução,
também usando o “for”.

Figura 56 – Mostrando os números pares de 0 a 20 (segunda solução


usando repetição “for”)

Fonte: elaborada pela autora (2021).

Na solução da Figura 56, o laço de repetição repete-se 11


(onze) vezes. Verifique que nessa solução, o valor do incremento
é de 2 (dois), e que, assim, não existe mais a necessidade de
usar o comando “if” para testar se o valor é par ou ímpar, pois
somente os números pares entrarão no intervalo.
Capítulo 5 - Estrutura de repetição
87

5.2.2 O uso de outros “iteratores”

Podemos observar, ainda, sobre o comando “for”, que ele


não precisa de uma condição (como no caso do “while”). Ele
precisa, simplesmente, de um argumento iterável e de uma
variável para repassar o item de cada iteração.
O comando “for”, além de iterar sobre progressões
aritméticas (como no caso do uso do “range”) em Python, pode
iterar sobre os itens de uma sequência (ex.: uma lista ou uma
cadeia de caracteres), na ordem em que aparecem na sequência.
Veja os exemplos abaixo:
• iteração em uma cadeia de caracteres:

• iteração em uma lista:

EXERCÍCIOS

USANDO COMANDO DE REPETIÇÃO FOR

1 . De acordo com os códigos abaixo, verifique o que será


impresso e preencha na tabela ao lado:

Obs. 1: todos os exemplos dessa questão estão relacionados ao


comando de repetição FOR.

Obs.2: a quantidade de LINHAS na tabela NÃO SIGNIFICA


A QUANTIDADE DE REPETIÇÕES, você PODE INCLUIR
LINHAS SE NECESSÁRIO ou ignorar LINHAS A MAIS.
Algoritmos e programação em Python para o Ensino Técnico Integrado
88

a)

for x in range(5):
print(x**2)

b)

for x in range(4):
print(x)
Capítulo 5 - Estrutura de repetição
89

c)

for b in range(1,9):
print(b+1)

d)

for b in range(3):
print(x)
Algoritmos e programação em Python para o Ensino Técnico Integrado
90

e)

for x in range(2,7):
print(“x“)
print(x)

f)

for x in range(0,12,2):
print(x)
Capítulo 5 - Estrutura de repetição
91

g)

for y in range(0,12,3):
print(“o valor é “,y)

h)

for x in range(1,12,2):
print(“x é “,x)
Algoritmos e programação em Python para o Ensino Técnico Integrado
92

i)

for x in range(20,10,-2):
print(x)

j)

for x in range(10,1,-1):
print(“x é “,x)
Capítulo 5 - Estrutura de repetição
93

2 . De acordo com o código abaixo:

Obs: nessa questão, observe o uso do “end” dentro do comando


“print” e verifique o que ele faz.

for x in range(5):
print(x*2,end= “ “)

2.1 Ao término da execução do código, quais valores serão


impressos?

a. ( ) 0 1 4 9 16

b. ( ) 0 1 4 9 16 25

c. ( ) 0 2 4 6 8

d. ( ) 0 2 4 6 8 16

2.2 Você entendeu qual a finalidade do uso do “end” neste


código? Explique.

EXERCÍCIOS
USANDO COMANDO DE REPETIÇÃO WHILE E FOR

Leia atentamente o enunciado das questões e construa o


programa em Python. Você pode usar o comando de repetição
WHILE e/ou usar o comando de repetição FOR para solucionar
as questões.

1 . Faça um algoritmo que leia diversos números positivos e


escreva, para cada um, o dobro de seu valor. O programa
deve ser executado até que o usuário informe que não deseja
mais continuar.

2 . Faça um algoritmo que leia um número binário e


transforme-o em decimal.
Algoritmos e programação em Python para o Ensino Técnico Integrado
94

3 . Escreva um programa que leia o valor da série de Fibonacci


que o usuário deseja imprimir. Imprima o valor da série
de Fibonacci solicitada pelo usuário. O programa deve ser
executado até que o usuário informe que não deseja mais
continuar.

OBS: na série de Fibonacci, começando de 1, essa sequência é


formada somando cada numeral com o numeral que o antecede:
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
Por exemplo, na sequência acima, o 4º termo da série é 3.

4 . Escreva um algoritmo para ler as notas de uma prova de


matemática de cinco alunos. Calcule a média da turma. O
programa deve imprimir o valor da média e o valor da maior
nota do aluno.

5 . Escreva um algoritmo para ler as notas de uma prova de


matemática de um grupo de alunos. O programa deve ser
executado até que o usuário informe que não deseja mais
continuar (todos as notas foram lidas). Calcule a média da
turma. O programa deve imprimir o valor da média e o valor
da menor nota do aluno.

6 . Faça um algoritmo no Python que mostre os dez primeiros


números ímpares.

7 . Leia dez números e exiba a soma dos números pares.

8 . Leia dez números e exiba qual o maior e qual o menor.

9 . Faça um algoritmo que leia diversos números. O programa


deve ser executado até que o usuário informe que não deseja
mais continuar. Ao término, exiba qual o maior e qual o
menor número lido.

10 . Faça um algoritmo que leia dez números e informe, para


cada um deles, se ele é positivo ou negativo.
Capítulo 6 - Lista
95

LISTA
Uma “lista” é uma das estruturas de dados disponíveis em
Python. Por meio dela, você pode armazenar um conjunto de
valores. Imagine uma lista no mundo real:
• uma lista de supermercado informa o conjunto de
itens que você deseja comprar;
• uma lista de alunos informa os dados dos alunos de
uma turma;
• uma lista de tarefas para serem executadas informa
a quantidade de tarefas que você deseja realizar durante
um dia, por exemplo.
As listas são sequências mutáveis. É possível, em uma lista no
Python, armazenar dados heterogêneos, mas ela é normalmente
usada para armazenar coleções de itens homogêneos (o grau
preciso de similaridade variará de acordo com a aplicação).
As listas em Python têm o mesmo significado das listas
no mundo real. Então, por que usar listas? Sempre que for
necessário representar um conjunto de valores, uma opção é
você usar uma lista para representar isso em Python.
Exemplos de conjuntos de valores:
Conjunto finito das vogais = {a,e,i,o,u}
Conjunto infinito dos números pares ={2,4,6,8,10,12....}
Conjunto finito A = {1,2,3,4}
Conjunto finito B = {3,4,5,6,7}
Conjunto finito A ∩ B = {3,4}
Uma lista é um conjunto ordenado de valores. Ela tem
características semelhantes a um tipo “str”. Você lembra como
se identifica, individualmente, os elementos de uma variável
do tipo “str”? Exemplo: cada elemento da “str” é reconhecido
com um índice que vai de 0 (zero) até o seu tamanho – 1.
Algoritmos e programação em Python para o Ensino Técnico Integrado
96

Na Figura 57, a variável de nome “binário” do tipo “str”


possui tamanho 5 (cinco) e os índices 0, 1, 2, 3 e 4 para cada
um dos caracteres envolvidos.

Figura 57 – Acessando os caracteres da variável “binário” (do tipo “str”) por


meio de índices

Fonte: elaborada pela autora (2021).

As listas são similares as strings “str” do Pyton, que são


conjuntos ordenados de caracteres, com a diferença de que
os elementos de uma lista podem possuir QUALQUER TIPO.
Em um “str”, cada um de seus caracteres também é um “str”.
Na Figura 58, é usado o comando “type“ do Python para
verificar o tipo dos caracteres da variável “binário“ do tipo “str“.
Veja que todos os caracteres de “binário“ também são do tipo
“str“.
Capítulo 6 - Lista
97

Figura 58 – Verificando o tipo dos caracteres da variável “binário” (do tipo


“str”) por meio do comando “type” do Python

Fonte: elaborada pela autora (2021).

Já sabemos, então, que ao contrário de um “str“, os


elementos de uma lista podem possuir QUALQUER TIPO.
A lista pode conter elementos de tipos diferentes, incluindo
até outras listas. Dessa forma, veremos agora como criar uma
lista no Python.

6.1 CRIANDO UMA LISTA


Para criar uma lista no Python, utilize os sinais [] ou a
palavra reservada list(). Veja a Figura 59.

Figura 59 – Verificando o tipo dos caracteres da variável “binário” (do tipo


“str”) por meio do comando “type” do Python

Fonte: elaborada pela autora (2021).


Algoritmos e programação em Python para o Ensino Técnico Integrado
98

Verifique na Figura 58 a lista “b” criada. Quais os elementos


encontrados? Quem são os elementos b[0], b[1], b[2] e b[3]? De
que tipo cada um deles são? Quem são os elementos lista[0] e
lista[1]? De que tipo são eles?

6.2 O TAMANHO DA LISTA

Você pode observar o tamanho de uma lista no Python da


mesma maneira como se verifica o tamanho de um “str”: por
meio da função “len()” do Python. Veja na Figura 60.

Figura 60 – Verificando o tamanho da lista com o comando “len()”

Fonte: elaborada pela autora (2021).

Na Figura 60, o comando “len()” é usado para verificar o


tamanho da variável “binário” (do tipo “str“) e para verificar o
tamanho da variável “lista” (do tipo “list“).
Ainda sobre a Figura 60, responda:
- Quais os elementos binario[0], binário[1], binario[2] e
binario[3]? De que tipo são cada um desses elementos?
- Quais os elementos lista[0], lista[1], lista[2] e lista[3]? De que
tipo são cada um desses elementos?

6.3 ADICIONANDO ELEMENTOS À LISTA

Para adicionar elementos a uma lista, existe mais de uma


opção. Vamos citar essas opções usando uma lista chamada de
“c“ nos exemplos a seguir:
1º) No momento de criação da lista:
Capítulo 6 - Lista
99

A lista “c” já é criada com três elementos. São eles: “maria”,


“joao” e “carlos”. Veja abaixo:
Ex.:

2º) APPEND: o comando “append()” adiciona elementos ao


fim da lista. Veja abaixo:
Ex.:

O resultado da lista “c” agora será:

3º) EXTEND: adiciona vários elementos, de uma só vez, ao


fim da lista. Veja abaixo:
Ex.:

O resultado da lista “c” da agora será:

4º) INSERT: com ele, você só insere um elemento por vez. E


é necessário indicar a posição do elemento na lista.
Ex.:

O resultado da lista “c” da agora será:

OBSERVAÇÃO IMPORTANTE: ao usar o comando “insert()”,


se você indicar um índice que NÃO EXISTE, o elemento será
adicionado ao fim da lista.

6.4 MODIFICANDO ELEMENTOS NA LISTA

Para modificar um elemento na lista, basta atribuir ao


índice o novo valor. Veja a Figura 61.
Algoritmos e programação em Python para o Ensino Técnico Integrado
100

Figura 61 – Modificando um elemento da lista

Fonte: elaborada pela autora (2021).

Observação importante: cuidado na hora de indicar o índice!


Qualquer referência a um índice NÃO EXISTENTE na lista
ocasionará um ERRO ao seu programa. Veja na Figura 62.

Figura 62 – Erro indica que o usuário tentou acessar um índice não


existente na lista

Fonte: elaborada pela autora (2021).


Capítulo 6 - Lista
101

6.5 APAGANDO ELEMENTOS NA LISTA

• del
Apaga um elemento específico na lista.
Ex.:

• pop()
Apaga um elemento específico na lista e retorna o valor
removido.
Ex.:

Observe que ao tentar apagar um elemento associado


não existente na lista, um erro será emitido pelo Python. Veja
na Figura 63.

Figura 63 – Erro ao tentar apagar um elemento que não existe na lista

Fonte: elaborada pela autora (2021).


Algoritmos e programação em Python para o Ensino Técnico Integrado
102

EXERCÍCIOS

1 . De acordo com o código abaixo:

Ao término da execução do código, quais valores serão impressos?

a) ( ) [0, 2, 4, 6]

b) ( ) [0, 1, 2, 3,4]

c) ( ) [0, 1, 4, 9]

d) ( ) [0, 2, 4, 6,8]

2 . De acordo com o código abaixo:

Ao término da execução do código, quais valores serão impressos?

a) ( ) [2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

b) ( ) [2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

c) ( ) [2, 3, 4, 5, 6, 7, 8, 9, 10]

d) ( ) [2, 3, 4, 5, 6, 7, 8, 9, 10]
Capítulo 6 - Lista
103

3 . De acordo com o código abaixo:

Ao término da execução do código, quais valores serão impressos?

a) ( ) [0, 1, 2, 3]

b) ( ) [0, 1, 2, 3,4]

c) ( ) [0, 1, 2, 3,4,5]

d) ( ) NDA

4 . Sobre o código abaixo, marque as alternativas verdadeiras:

l=[]
for i in range(3):
l.append([i,i+1,i+2])
print(l)

a) ( ) Todos os elementos da lista “l” é do tipo “list”.

b) ( ) Ao término da execução do código, será impresso [[0, 1,


2], [1, 2, 3], [2, 3, 4]].

c) ( ) Alguns elementos da lista “l” são tipo “list” e alguns são


do tipo “int”.

d) ( ) Ao término da execução do código será impresso [[0, 1,


2], [3, 4, 5], [6, 7, 8]].
Algoritmos e programação em Python para o Ensino Técnico Integrado
104

5 . De acordo com o código abaixo:

Ao término da execução do código, quais valores serão impressos?

a) ( ) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

b) ( ) [0, 1, 2, ‘ana maria’, 3, 4, 5, 6, 7, 8, 9]

c) ( ) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10]

d) ( ) [0, 1, ‘ana maria’, 2, 3, 4, 5, 6, 7, 8, 9,10]

6 . Sobre o código abaixo, marque as alternativas verdadeiras:

a) ( ) Ao término da execução do programa, será impresso


[0, 1, 2, 3, ‘ana maria’]

b) ( ) Ao término da execução do programa, será impresso


[0, 1, 2, 3]
Capítulo 6 - Lista
105

c) ( ) Um erro acontecerá durante a execução do programa,


pois o índice 5 não existe na lista.

d) ( ) Um erro acontecerá durante a execução do programa,


pois o valor “ana maria” é do tipo “str”, e a lista “l” só armazena
valores do tipo “int”.

7 . Faça um programa que leia os nomes dos alunos da turma


e os inclua em uma lista. O programa deve ser executado até
que o usuário informe que não deseja mais continuar.

8 . O algoritmo abaixo armazena em “turma” os dados


[nome,nota] dos meninos e das meninas de uma turma. Se
o aluno for do sexo feminino, ele armazena [nome,nota]
no índice 0 da lista de “turma”; se for do sexo masculino,
armazena [nome,nota] no índice 1 da lista de “turma”:
Algoritmos e programação em Python para o Ensino Técnico Integrado
106

a) Baseado no algoritmo acima, complete o algoritmo de


maneira que ele mostre os dados [nome,nota] somente dos
meninos da turma.

b) Baseado no algoritmo acima, complete o algoritmo de


maneira que ele mostre os dados [nome,nota] somente das
meninas aprovadas da turma (QUE OBTIVERAM NOTA
ACIMA OU IGUAL A 7).
Capítulo 7 - Dicionários
107

DICIONÁRIOS
Outra estrutura de dados disponível em Python é
chamada de “dicionário”. Com um dicionário, você também
pode armazenar um conjunto de valores, tal como vimos
anteriormente, usando listas. No entanto, o dicionário tem uma
característica particular: ele relaciona a cada valor específico
uma chave de acesso.
Diferentemente das listas, em que o índice é um número
(o índice, em listas, é usado para acessar determinado valor),
dicionários utilizam suas chaves para acessar os valores. Assim,
podemos dizer que o dicionário é um tipo de mapeamento, ou
seja, ele mapeia valores (chaves) para outros valores arbitrários
(conteúdos). Mapeamentos são mutáveis. Em Python, existe, no
momento, apenas um tipo de mapeamento padrão, o dicionário.

7.1 CRIANDO UM DICIONÁRIO

Um exemplo no mundo real que pode ser adaptado para


a estrutura de dicionários seria o nome do aluno, usado como
valor, e sua matrícula, utilizada como chave de acesso. Veja na
Figura 64.

Figura 64 – Criando um dicionário em Python com o uso de chaves (“{}”)

Fonte: elaborada pela autora (2021).


Algoritmos e programação em Python para o Ensino Técnico Integrado
108

Na Figura 64, o dicionário de nome “alunos” é definido por


meio do uso das chaves “{}”. O uso desses caracteres define um
dicionário vazio. Ainda na Figura 64, em seguida, adiciona-se
ao dicionário a aluna de nome “maria dos santos silva”, com
matrícula igual a 123. Observe que não é necessário o uso do
comando “append” para incluir elementos, como fazíamos com
o uso das listas. Para incluir um novo elemento ao dicionário,
basta definir a chave relacionada entre colchetes e associá-la
(por meio do caractere “=”) ao valor correspondente. Assim,
no exemplo acima, a chave é 123 (matrícula), e o valor é “maria
dos santos silva” (nome).
Outra forma de você definir um dicionário vazio é usando
a palavra reservada “dict”. No exemplo abaixo, obtemos o
mesmo resultado que na Figura 63.

No exemplo da Figura 65, são criados dois dicionários,


“a” e “b” (como uso de “{}” e “dict()”, respectivamente). Ao usar
o comando “type”, podemos constatar que ambas as variáveis,
“a” e “b”, são do mesmo tipo, “dict”:

Figura 65– Criando um dicionário em Python com o uso da palavra-


reservada “dict”

Fonte: elaborada pela autora (2021).


Capítulo 7 - Dicionários
109

7.2 ADICIONANDO E MODIFICANDO ELEMENTOS EM


UM DICIONÁRIO

Vimos que para incluir novos elementos em um dicionário,


basta definir a chave entre colchetes e associá-la (por meio do
caractere “=”) ao valor correspondente. Se essa chave já existir,
o valor será modificado. Veja no exemplo abaixo:

>>> letra={}
>>> letra[‘a’]=’abrigo’
>>> letra[‘b’]=’bola’
>>> letra[‘c’]=’carro’
>>> letra
{‘a’: ‘abrigo’, ‘b’: ‘bola’, ‘c’: ‘carro’}
>>> letra[‘c’]=’casa’
>>> letra
{‘a’: ‘abrigo’, ‘b’: ‘bola’, ‘c’: ‘casa’}

Vimos o dicionário “letra” ser criado, e incluídos três


elementos ao dicionário ({‘a’: ‘abrigo’, ‘b’: ‘bola’, ‘c’: ‘carro’}).
Logo em seguida, realiza-se uma modificação no conteúdo
da chave ‘c’ (letra[‘c’]= ‘casa’). Para verificar um valor dentro
do dicionário, a pesquisa deve ser feita utilizando a chave
procurada. Exemplo:

>>> letra[‘a’]

‘abrigo’

Se a chave procurada não existir, o Python imprimirá uma


mensagem de erro. Ainda considerando o dicionário “letra”,
criado anteriormente, veja abaixo:
Algoritmos e programação em Python para o Ensino Técnico Integrado
110

7.3 BUSCANDO AS CHAVES DE UM DICIONÁRIO

Para verificar somente quais são as chaves de um dicionário,


use o comando “keys”. Veja o exemplo na Figura 66.

Figura 66 – Verificando as chaves de um dicionário usando o comando


“keys”

Fonte: elaborada pela autora (2021).

Na Figura 66, o dicionário “d” é criado e, logo em seguida,


dois elementos são inseridos no dicionário. Na sequência, para
verificar todos os elementos do dicionário “d”, usamos somente
o nome do dicionário:

Ainda na Figura 66, para verificar somente as chaves do


dicionário “d”, usamos o comando “keys”:
Capítulo 7 - Dicionários
111

7.4 BUSCANDO OS VALORES DE UM DICIONÁRIO

Para verificar somente quais são os valores de um dicionário,


use o comando “values”. Veja o exemplo na Figura 67.

Figura 67 – Verificando os valores de um dicionário usando o comando


“values”

Fonte: elaborada pela autora (2021).

Na Figura 67, o dicionário “d” é criado e, logo em seguida,


dois elementos são inseridos no dicionário. A seguir, para
verificar todos os elementos do dicionário “d”, usamos somente
o nome do dicionário:

Ainda, na Figura 67, para verificar somente os valores do


dicionário “d”, usamos o comando “values”:

>>> d.values()
dict_values([‘alfa‘, ‘beta‘])
Algoritmos e programação em Python para o Ensino Técnico Integrado
112

7.5 VERIFICANDO SE UMA CHAVE PERTENCE AO


DICIONÁRIO

Para verificar se uma chave está presente em um dicionário,


usamos o comando “in”.
A sintaxe utilizada é:
<chave> in <dict>
O resultado dessa operação retorna verdadeiro (True) se
a chave estiver presente no dicionário, ou retorna falso (False)
se ela não estiver presente. Veja na Figura 68.

Figura 68 – Verificando os valores de um dicionário usando o comando


“values”

Fonte: elaborada pela autora (2021).

No exemplo da Figura 68, o dicionário “d” é criado e,


logo em seguida, dois elementos são inseridos nele. Após isso,
é verificada a existência das chaves no dicionário, usando o
comando “in”,
a. Verifica-se se a chave “a” existe em “d”. Como a chave
existe no dicionário, a expressão retorna verdadeiro
(True):

>>> ‘a‘ in d
True
Capítulo 7 - Dicionários
113

b. Verifica-se se a chave “b” existe em “d”. Como a chave


existe no dicionário, a expressão retorna verdadeiro
(True):
>>> ‘b‘ in d
True

c. Verifica-se se a chave “c” existe em “d”. Como a


chave não existe no dicionário, a expressão retorna falso
(False):
>>> ‘c‘ in d
False

Uma boa estratégia é antes de tentar acessar determinada


chave no dicionário, utilizar o comando “in” para verificar
se ela realmente existe – isso evita que o Python envie uma
mensagem de erro e encerre a execução do programa, caso a
chave não exista. Veja na Figura 69.

Figura 69 – O programa tenta imprimir o valor contido na chave “c”

Fonte: elaborada pela autora (2021).

Na última linha do programa, na Figura 69, o programa


tenta imprimir o valor contido na chave “c” (print(d[‘c’])).
Como a chave “c” não existe no dicionário, o Python emite
uma mensagem de erro e sai da execução do programa. Veja
na Figura 70.
Algoritmos e programação em Python para o Ensino Técnico Integrado
114

Figura 70 – Mensagem de erro emitida pelo Python após o programa


tentar acessar uma chave que não existe

Fonte: elaborada pela autora (2021).

Para evitar o problema apresentado acima, podemos


modificar o programa e incluir o comando “in” para verificar
se a chave realmente existe, antes de tentar acessá-la. Veja na
Figura 71.

Figura 71 – O programa verifica se a chave existe no dicionário e, somente


se ela existir, imprime o valor associado a ela

Fonte: elaborada pela autora (2021).

Agora, na Figura 71, na penúltima linha, o programa


verifica se a chave “c” existe no dicionário “d”. Em caso positivo,
ele imprime o valor associado à chave. Se ela não existir, o
programa não executa mais nenhum comando. Em uma segunda
modificação, podemos emitir uma mensagem informando que
a chave não existe no dicionário. Veja na Figura 72.
Capítulo 7 - Dicionários
115

Figura 72 – O programa verifica se a chave existe no dicionário, e se ela


não existe, ele imprime a mensagem “a chave não existe no dicionário”

Fonte: elaborada pela autora (2021).

Verifique, agora, na Figura 73, o resultado da execução


do programa.

Figura 73 – Resultado da execução do programa escrito na Figura 71

Fonte: elaborada pela autora (2021).

7.6 USANDO UM “FOR LOOP” PARA PERCORRER O


DICIONÁRIO

Um “for loop” em Python pode ser utilizado para realizar


uma iteração por meio de uma sequência (lista, dicionário
etc.). Nesta seção, usaremos o “for loop” para iterar os valores
contidos em um dicionário.
A sintaxe usada é:
for <i> in <dict>
em que <i> representa cada uma das chaves do dicionário
percorridas durante a iteração, e <dict> representa o dicionário.
Algoritmos e programação em Python para o Ensino Técnico Integrado
116

Na Figura 74, usamos o “for” para percorrer os elementos


do dicionário “d”. O valor de “i”, a cada volta do laço de repetição
“for”, armazena uma chave contida no dicionário.

Figura 74 – Resultado da execução do programa escrito na Figura 71

Fonte: elaborada pela autora (2021).

Na Figura 74, o resultado da execução do programa


será a impressão das chaves existentes no dicionário “d”. Na
primeira volta do “for loop”, o valor de i será igual a “a”. Assim,
ao executar o comando “print(i)”, será impresso o valor “a”.
Logo depois, o laço voltará a ser executado. Na segunda volta
do “for loop”, o valor de i será igual a “b”. Assim, ao executar o
comando “print(i)”, será impresso agora o valor “b”. Nessa fase,
todos os elementos do dicionário já foram percorridos. Logo,
o “for loop” é encerrado.
Veja o resultado da execução do programa na Figura 75.

Figura 75 – Resultado da execução do programa escrito na Figura 73

Fonte: elaborada pela autora (2021).


Capítulo 7 - Dicionários
117

No programa anterior, o “for loop” foi usado para iterar o


dicionário “d”, e a cada volta do laço “for”, os valores da chaves
do dicionário foram impressos. Para imprimir agora os valores
associados a cada uma das chaves, podemos modificar o trecho
“for loop” do programa da seguinte maneira:

for i in d:
print(d[i])

Assim, os valores impressos ao executar o programa agora


seriam:

alfa
beta

7.7 APAGANDO ELEMENTOS DE UM DICIONÁRIO

Para apagar um elemento do dicionário, você pode usar


duas diferentes abordagens. São elas:
• del
Apaga um elemento específico no dicionário.
Ex.:

• pop()
Apaga um elemento específico no dicionário e retorna o
valor removido.
Ex.:
Algoritmos e programação em Python para o Ensino Técnico Integrado
118

Observe que ao tentar apagar um elemento associado a


uma chave não existente no dicionário, um erro será emitido
pelo Python. Veja na Figura 76.

Figura 76 – Erro ao tentar apagar um elemento associado a uma chave


não presente no dicionário

Fonte: elaborada pela autora (2021).

EXERCÍCIOS

1 . De acordo com o código abaixo:

Ao término da execução do código, quais valores serão impressos?

a) ( ) {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, 10: 10}

b) ( ) {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9}

c) ( ) [0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, 10: 10]

d) ( ) [0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9]
Capítulo 7 - Dicionários
119

2 . Sobre a execução do código abaixo, é verdadeiro afirmar:

a) ( ) Um erro ocorrerá durante a execução do programa,


pois o dicionário “letras” não existe.

b) ( ) Um erro ocorrerá durante a execução do programa,


pois a chave “c” no dicionário “letras” não existe.

c) ( ) O programa executará corretamente, e nada será


impresso, pois a chave “c” não existe no dicionário “letras”.

d) ( ) O programa executará corretamente e será impresso


o valor associado à chave “c” no dicionário “letras”.

3 . De acordo com o código abaixo:

Ao término da execução do código, quais valores serão impressos?

a) ( )1
ana maria
2
joao batista
3
fabio

b) ( ) ana maria
joao batista
fabio
Algoritmos e programação em Python para o Ensino Técnico Integrado
120

c) ( )1
2
3

d) ( ) ana maria
1
joao batista
2
fabio 3

4 . Sobre o código abaixo:

Considerando que o usuário digitou os seguintes valores de


entrada:
Capítulo 7 - Dicionários
121

Ao término da execução do código, quais valores serão impressos?

a) ( ) [1: ‘azul’, 2: ‘amarelo’, 3: ‘vermelho’]

b) ( ) {1: ‘azul’, 2: ‘amarelo’, 3: ‘vermelho’}

c) ( ) [‘azul’, ‘amarelo’, ‘vermelho’]

d) ( ) {‘azul’, ‘amarelo’, ‘vermelho’}

5 . Sobre o código abaixo:

Considerando que o usuário digitou os seguintes valores de


entrada:
Algoritmos e programação em Python para o Ensino Técnico Integrado
122

Ao término da execução do código, quais valores serão impressos?

a) ( )ABC

b) ( ) A ANA CLAUDIA B BETHANIA SANTOS C CARLOS


ALBERTO

c) ( ) ANA CLAUDIA BETHANIA SANTOS CARLOS ALBERTO

d) ( ) NDA

6 . Sobre o código abaixo:

Considerando que o usuário digitou os seguintes valores de


entrada:
Capítulo 7 - Dicionários
123

Ao término da execução do código, quais valores serão


impressos?

a) ( ) {‘MARIA’, ‘CARLOS’, ‘JOAO’, ‘MARCOS’}

b) ( ) {‘MARIA’: ‘32322020’, ‘CARLOS’: ‘99875544’, ‘JOAO’:


‘94562323’, ‘MARCOS’: ‘49241212’}

c) ( ) [‘MARIA’, ‘CARLOS’, ‘JOAO’, ‘MARCOS’]

d) ( ) NDA

7 . Sobre o código abaixo:

Marque a(s) alternativa(s) verdadeira(s):

a) ( ) Um erro de execução ocorrerá se o programa tentar


acessar um valor não existente no dicionário “agenda” .
Algoritmos e programação em Python para o Ensino Técnico Integrado
124

b) ( ) O programa executará normalmente se acessar um valor


existente no dicionário “agenda”.

c) ( ) Por meio da linha de comando “print(agenda[chave])”, o


programa tenta acessar o valor associado a uma chave específica
do dicionário e imprimir esse valor.

d) ( ) O programa executará normalmente se tentar acessar


um valor não existente no dicionário “agenda” .

8 . Ainda sobre o código de programa da questão 7, você


identificou algum erro no programa? Se SIM, reescreva o
programa de forma a corrigir esse erro.
Capítulo 8 - Funções
125

FUNÇÕES
Uma função é um bloco de código contendo início e
fim, sendo que esse bloco de código só é executado quando é
chamado.
Existem, na verdade, duas possibilidades de objetos função:
funções embutidas e funções definidas pelo usuário. Uma
função embutida é aquela pré-definida pela linguagem.
A propósito, o Python apresenta várias funções embutidas,
algumas das quais já vimos no decorrer deste livro, tais como:
type(), len(), range() etc. Uma função embutida é executada
quando é chamada pelo seu nome. Assim, se a função já existe
na linguagem, basta ao programador fazer a chamada dessa
função para executá-la.
O interpretador do Python possui várias funções e
múltiplos tipos embutidos que sempre estão disponíveis. Na
Figura 77, estão todas as funções, em ordem alfabética.

Figura 77 – Listagem de funções embutidas no Python

Fonte: Disponível em: https://docs.python.org/pt-br/3/library/functions.


html. Acesso em: 20 out. 2021.
Algoritmos e programação em Python para o Ensino Técnico Integrado
126

8.1 CRIANDO UMA FUNÇÃO

Uma função definida pelo usuário é aquela criada pelo


próprio usuário. Nesse caso, ele deve, primeiro, criar a função
para depois executá-la. Uma função definida pelo usuário
também é executada quando é chamada pelo seu nome.
Veja o exemplo no código da Figura 78 abaixo, em que
todas as operações (soma, subtração, multiplicação e divisão)
estão sendo executadas no mesmo programa.

Figura 78 – Exemplo de código que efetua as operações de soma,


subtração, multiplicação e divisão

Fonte: elaborada pela autora (2021).

O exemplo da Figura 78 pode ser modificado de maneira


que cada uma das operações será definida em diferentes
módulos/blocos de programas (funções). Para criar uma função
no Python, usa-se a palavra-reservada “def”. Veja no exemplo
da Figura 79.
Capítulo 8 - Funções
127

Figura 79 – Código definindo quatro funções (soma, subtração,


multiplicação e divisão), em que cada uma delas executa uma operação
matemática específica

Fonte: elaborada pela autora (2021).

As funções expostas na Figura 79 foram declaradas, mas


não foram chamadas. Vimos que para que as funções sejam
executadas, elas precisam ser chamadas. Para chamar uma
função, usamos o nome dela seguido por parênteses. Veja, na
Figura 80, a modificação do programa, agora chamando as
funções na seguinte ordem: soma(), subtração(), multiplicação()
e divisao() .
Algoritmos e programação em Python para o Ensino Técnico Integrado
128

Figura 80 – Código realizando a chamada das funções (soma, subtração,


multiplicação e divisão)

Fonte: elaborada pela autora (2021).

Observe que na Figura 80, a indentação utilizada nas quatro


últimas linhas onde as funções são chamadas faz um recuo no
texto até o início da margem do editor. Indicamos, com essa
indentação, que as chamadas das funções não dependem de
nenhum outro comando anterior para serem executadas, e estão
no que comumente chamamos de programa principal (main),
que é a parte do programa que será executada quando você
o chamar. Podemos dizer, então, que na Figura 80, quando o
programa for chamado, ele começará a executar a partir do
programa principal.
No exemplo da Figura 80, somente as funções chamadas
no programa principal serão executadas, na sequência em que
forem chamadas. Assim, ele executa as funções na seguinte
ordem: soma(), subtração(), multiplicação() e por fim, divisão().

8.2 MÓDULOS

É uma boa prática de programação, quando o programa se


torna grande e/ou se propõe a resolver mais de um problema
(por exemplo, uma calculadora deve resolver problemas como
Capítulo 8 - Funções
129

adição, subtração, multiplicação, divisão, entre outros), dividi-lo


em arquivos menores (de modo que cada um realize uma tarefa
específica) para torná-lo mais legível e facilitar a manutenção.
Da mesma forma, é preferível usar um arquivo separado
para funções que você escreveria em vários programas diferentes
para não copiar a definição de função em cada um deles.
Para permitir isso, o Python tem uma maneira de colocar as
definições em um arquivo e, então, usá-las em um script1 ou
em uma execução interativa do interpretador. Tal arquivo
é chamado de módulo. Um módulo é um arquivo contendo
definições e comandos (instruções) Python. O nome do arquivo
é o nome do módulo acrescido do sufixo .py.
Definições de um módulo podem ser importadas para
outros módulos ou para o módulo principal (a coleção de
variáveis acessadas em um script executado como um programa
ou acessadas diretamente no interpretador IDE do Python),
ou seja, o módulo principal (vamos chamá-lo neste capítulo
também de programa principal) é o responsável por executar
um conjunto de comandos (instruções) e/ou um conjunto
de funções (que podem ter sido definidas nele ou em outros
módulos), como mostra o exemplo da Figura 81.

Figura 81 – Módulo “saudacao.py”

Fonte: elaborada pela autora (2021).

1 Os scripts provêm de sequências de códigos de uma linguagem de


programação. O instalador Python associa automaticamente os arquivos .py
com o python.exe, de forma que um clique duplo em um arquivo Python o
executará como um script.
Algoritmos e programação em Python para o Ensino Técnico Integrado
130

Existem duas maneiras de importar um módulo: “import”


e “from..import”. O “import” importa todas as funções do módulo,
enquanto o “from...import” pode importar todas as funções ou
somente aquelas desejadas pelo programador.
O exemplo da Figura 82 mostra o módulo sendo importado
com o comando “import”. Observe a importação do módulo
“saudacao.py” (“import saudacao”) e, logo em seguida, a chamada,
no interpretador IDLE, da função “alo”, presente no módulo.

Figura 82 – Importando o módulo “saudacao.py” no interpretador IDLE

Fonte: elaborada pela autora (2021).

Na Figura 82, observe que para chamar a função “alo“,


antes foi necessário indicar o nome do módulo ao qual ela
pertencia, seguido do caractere ponto (.):

saudacao.alo()

Quando usamos o “import“, devemos fazer a chamada das


funções sempre com o nome do módulo seguido do nome da
função. Assim, a sintaxe para a importação do módulo e da
chamada da função, respectivamente, é:

import <nome do módulo>


<nome do módulo>.<nome da função>
Capítulo 8 - Funções
131

Caso você queira saber quais funções estão presentes em


um módulo, pode usar o comando “dir“. A Figura 83 apresenta
a utilização da função “dir()“ e mostra como resultado uma lista
de “str“ com o nome de todas as funções definidas dentro do
módulo “saudacao”.

Figura 83 – Importando o módulo “saudacao.py” no interpretador IDLE

Fonte: elaborada pela autora (2021).

Observe, na Figura 83, que além da função “alo“, definida


no módulo, o resultado do comando “dir” apresenta outros
componentes do módulo. Todos estão precedidos dos caracteres
“__” e sucedidos dos caracteres “___”. O Python geralmente
usa esses caracteres para definir variáveis ou funções especiais.
Falaremos agora de um desses componentes apresentados
na lista: a variável __name__. A variável __name__ (variável
do tipo “str”) é responsável por guardar o nome do módulo.
Veja na Figura 84.

Figura 84 – Verificando o valor da variável __name__ do módulo


“saudacao”

Fonte: elaborada pela autora (2021).


Algoritmos e programação em Python para o Ensino Técnico Integrado
132

Vamos agora importar o módulo “saudacao”, usando o


comando “from..import“. Veja na Figura 85.

Figura 85 – Importando o módulo “saudacao” usando “from.. import..”

Fonte: elaborada pela autora (2021).

Na Figura 85, o módulo “saudacao” é importado da seguinte


maneira:

from saudacao import *

O uso do caractere asterisco (*) está informando que você


deseja importar todas as funções do módulo.
Suponha que você só desejasse importar a função “alo“ do
módulo. Você poderia definir o comando da seguinte maneira:

from saudacao import alo

Ainda no exemplo da Figura 85, observe que para chamar


a função “alo”, agora, é possível chamar somente o nome da
função, sem que seja necessário esse nome ser precedido do
nome do módulo:

alo()

A sintaxe para importar todas as funções do módulo e da


chamada da função, respectivamente, é:

from <nome do módulo> import *

<nome da função>()
Capítulo 8 - Funções
133

A sintaxe para importar funções específicas do módulo e


da chamada da função, respectivamente, é:

from <nome do módulo> import <nome da função>


<nome da função>()

Ainda, se você quiser importar mais de uma função:

from <nome do módulo> import <nome da função 1>,<nome


da função 2>... <nome da função n>

8.3 A VARIÁVEL __NAME__

Ainda sobre o programa principal (main()), no Python,


vimos que cada arquivo com extensão .py é chamado de módulo.
Cada módulo pode ser executado diretamente, como um
programa em si, ou o módulo pode ser importado por outro
módulo (nesse caso, o programa é chamado por outro módulo).
No caso de um programa contendo mais de um módulo,
é necessário identificar o módulo principal (programa que é
executado) e quais módulos são importados por outros módulos.
No exemplo anterior, da Figura 84, vimos o módulo “saudacao”
ser importado, e logo em seguida, vimos que o valor da variável
__name__ era o nome do próprio módulo (“saudacao”). Assim,
quando o módulo é importado, o valor da variável __name__ é
igual ao nome do módulo. Por outro lado, quando o programa
é executado por si só, __name__ é definida com o valor igual a
“__main__”. A Figura 86 ilustra esta situação. Com o objetivo
de verificar o valor da variável __name__, incluímos a linha
“print(__name__)”.
Algoritmos e programação em Python para o Ensino Técnico Integrado
134

Figura 86 – Módulo “calculadora”

Fonte: elaborada pela autora (2021).

Veja o resultado da execução do programa na Figura 87.

Figura 87 – Resultado da impressão do valor da variável __name__

Fonte: elaborada pela autora (2021).

Na Figura 87, notamos que o resultado da impressão da


variável __name__ foi o valor “__main__”, indicando que o
módulo é executado por si só como um programa. É possível,
assim, identificar se um módulo deve ser executado ou não. Se
Capítulo 8 - Funções
135

o módulo estiver sendo importado, ele não deve ser executado


diretamente, e suas funções só devem ser executadas se forem
chamadas pelo programa que importou o módulo.
Veja a modificação no módulo “calculadora” realizada na
Figura 88.

Figura 88 – Módulo é executado somente se o valor da variável __


name__for igual a “__main__”

Fonte: elaborada pela autora (2021).

O código mostrado na Figura 88, antes de executar o


programa principal, verifica se o valor da variável __name__
é igual a “main”. Se a afirmação for verdadeira, o código
chama as funções soma(), subtração(), multiplicacao() e divisao(),
respectivamente nessa ordem. Caso contrário, nenhuma das
funções será chamada. Essa é uma estratégia possível de ser
utilizada quando o seu programa tem mais de um módulo de
programa. Dessa forma, você pode identificar qual é o módulo
principal.
Inicialmente, podemos imaginar que todas as vezes que
tivermos mais de um módulo no programa, podemos utilizar
essa estratégia para verificar qual programa principal deve ser
realmente executado. Porém, o recomendado para programas
que contenham mais de um módulo é que exista um nível
maior de organização, de maneira que em alguns módulos
Algoritmos e programação em Python para o Ensino Técnico Integrado
136

compreendam somente as definições de funções, e em seguida,


esses módulos de funções sejam importados para aqueles que
as executarão.
Veja nas Figuras 89 e 90.

Figura 89 – Módulo “calculadora.py” contendo somente as definições de


funções

Fonte: elaborada pela autora (2021).

Figura 90 – Uso de “import” para importar as funções definidas em


“calculadora.py”

Fonte: elaborada pela autora (2021).


Capítulo 8 - Funções
137

Na Figura 90, o módulo “calculadora.py” é importado


por intermédio do comando:

import calculadora

Escrito no início do módulo “principal.py”. Assim, é


possível ao módulo “principal.py” fazer a chamada de todas
as funções do módulo “calculadora.py”. Verifique que antes do
nome das funções, adiciona-se o nome do módulo “calculadora”,
seguido do caractere “.” – isso indica em que módulo estão
definidas as funções chamadas. Outra maneira de importar o
módulo “calculadora.py” é apresentada na Figura 91.

Figura 91 – Uso de “from..import” para importar as funções definidas em


“calculadora.py”

Fonte: elaborada pela autora (2021).

Na Figura 91, o módulo “calculadora.py” é importado por


meio do comando:

from calculadora import *

Escrito no início do módulo “principal.py”. O caractere “*”


indica que estamos importando todas as funções do módulo.
Supondo que só fosse necessário importar a função “soma”,
você poderia definir o comando da seguinte maneira:

from calculadora import soma


Algoritmos e programação em Python para o Ensino Técnico Integrado
138

8.4 PASSAGEM DE PARÂMETROS

Os exemplos de funções apresentados até agora não


possuem passagem de parâmetros. A passagem de parâmetro
significa que variáveis devem ser incluídas entre os parênteses
utilizados na chamada da função. Ver sintaxe:

<nome_da_função>()

Na sintaxe acima, a função possui o parâmetro “x”. Se


a função possuir mais de um parâmetro, eles devem ser
separados pelo caractere vírgula (,). Agora, veja a função com
dois parâmetros, “x” e “y”:

<nome_da_função>(x,y)

Os parâmetros são uma maneira de a função receber


valores e/ou variáveis de entrada que serão utilizadas no
processamento do bloco de função. Por exemplo, a soma de
dois números necessita, obrigatoriamente, de dois valores
de entrada, que serão somados. Esses dois valores podem ser
passados diretamente, por meio de parâmetros. Veja na Figura
92.

Figura 92 – Função “soma” definida com dois parâmetros

Fonte: elaborada pela autora (2021).


Capítulo 8 - Funções
139

Na Figura 92, a função “soma” recebe dois parâmetros,


“a” e “b”, os quais são usados como valores de entrada para a
realização da operação de soma. Na chamada da função, na
linha:

soma(2,3)

Os valores inteiros 2 e 3 são passados como valores para os


parâmetros “a” e “b”. Os valores passados para os parâmetros no
momento da chamada da função são chamados de argumentos.
No exemplo, o parâmetro “a“ recebe o valor 2, enquanto o
parâmetro “b“, o valor 3.
Veja na Figura 92 que estamos passando valores fixos (2,3)
como parâmetros para a função. É possível, também, passar
valores de variáveis para os parâmetros. Veja na Figura 93.

Figura 93 – Função “soma” recebendo as variáveis “x” e “y” como


argumentos

Fonte: elaborada pela autora (2021).

8.5 O COMANDO “RETURN”

O comando “return” no Python é uma instrução especial


que pode ser usada dentro de uma função para enviar o resultado
da função de volta ao programa chamador. A maneira de utilizar
o “return” é colocar o nome do comando seguido do valor que
se deseja retornar. Veja a sintaxe:

return <valor>
Algoritmos e programação em Python para o Ensino Técnico Integrado
140

O valor de retorno de uma função Python pode ser de


qualquer tipo. Podem ser retornados, por exemplo, números
(int, float etc.), valores booleanos (True ou False), sequências
(list, dict etc.). Veja o exemplo na Figura 94.

Figura 94 – Função “soma” retornando o resultado da operação

Fonte: elaborada pela autora (2021).

Na Figura 94, a função “soma” retorna o valor da soma dos


argumentos recebidos 3 e 2. O retorno do valor é impresso
pelo comando “print”. Logo, no exemplo, o valor impresso na
tela será 5.
É importante verificar que o comando “return” provoca
a saída imediata do bloco de função. Então, a sua localização
dentro do bloco da função deve ser cuidadosamente escolhida.
Normalmente, por esse motivo, o “return” é colocado como
última instrução da função, ou dentro de blocos “if.. elif” que
proponham mais de uma opção de execução de instruções
dentro do bloco de função.
Veja o exemplo na Figura 95.

Figura 95 – Função “compara” verificando se os valores “x” e “y” são iguais

Fonte: elaborada pela autora (2021).


Capítulo 8 - Funções
141

Na Figura 95, se os valores forem iguais, a função retorna


“True”. Caso contrário, a função retorna “False”. Observe que o
valor retornado da função é recebido pela variável “resultado”
e, logo em seguida, o valor dessa variável é impressa pelo
comando “print“.
Na Figura 96, veja o resultado da execução do programa.

Figura 96 – Resultado da execução da função “compara” passando os


valores 3 e 3

Fonte: elaborada pela autora (2021).

EXERCÍCIOS

1 . Sobre o código abaixo:

def c(x,y):
if x==y:
return True
else:
return False

resultado=c(4,3)
print(resultado)
Algoritmos e programação em Python para o Ensino Técnico Integrado
142

Marque a (s) alternativa (s) correta (s):

a. ( ) Ao término de sua execução, a função “c” retorna “True”


se os valores “x” e “y” forem iguais e “False” se os valores “x” e
“y” forem diferentes.

b. ( ) O valor impresso ao término da execução do programa


será “4” e “3”.

c. ( ) O valor impresso ao término da execução do programa


será “False”.

d. ( ) O valor impresso ao término da execução do programa


será “True”.

2 . Sobre o código abaixo, responda:

def w(x):
if x%2==0:
return True
else:
return False

print(w(4))
print(w(3))
print(w(2))
w(1)

Os valores impressos ao término da execução do programa são:

a. ( ) False False True

b. ( ) True False True

c. ( ) True False True False

d. ( ) True False True True


Capítulo 8 - Funções
143

3 . O objetivo do código a seguir é realizar o somatório dos


cinco primeiros números pares e, em seguida, imprimir
esse valor. Verifique se o código está correto e marque a(s)
alternativa(s) verdadeira(s):

def s():
soma=0
for i in range(0,10,2):
soma += i
print(s())

a. ( ) A função “s” realiza a soma dos cinco primeiros números


pares, mas no programa principal, a saída impressa será igual
a “None”, indicando que a função não retorna valor algum que
possa ser impresso.

b. ( ) A função “s” realiza a soma dos cinco primeiros números


pares, e no programa principal, a saída impressa será igual a
20, indicando que a função retorna um valor do tipo inteiro,
obtido na operação de adição realizada.

c. ( ) A função “s” não possui passagem de parâmetros.

d. ( ) A função “s” não retorna nenhum valor ao término de


sua execução.

4 . Verifique agora a modificação realizada no programa da


questão anterior e responda:

def s():
soma=0
for i in range(0,10,2):
soma += i
print(s())
Algoritmos e programação em Python para o Ensino Técnico Integrado
144

a. ( ) A função “s” realiza a soma dos cinco primeiros números


pares, e no programa principal, a saída impressa será igual a 20.

b. ( ) A função “s” realiza a soma dos cinco primeiros números


pares, mas no programa principal, a saída impressa será igual
a “None”, indicando que a função não retorna valor algum que
possa ser impresso.

c. ( ) A função “s” não possui passagem de parâmetros e não


retorna nenhum valor ao término de sua execução.

d. ( ) A função “s” não possui passagem de parâmetros e retorna


um valor do tipo inteiro ao término de sua execução.

5 . Faça um programa que leia dois números quaisquer,


chame uma função que os compare lidos e retorne se eles são
iguais ou diferentes. Se forem iguais, a função deve retornar
verdadeiro (True); se forem diferentes, a função deve retornar
falso (False). Ao final, o programa deve mostrar a mensagem
“Os números são iguais” se os números forem iguais; senão,
deve mostrar a mensagem “Os números são diferentes”.

6 . Faça um programa que leia dois números quaisquer, chame


uma função que os compare e mostre o maior número, o
menor ou se os números são iguais.

7 . Faça um programa que leia um número inteiro N, chame


uma função que mostre se ele é ímpar ou par. Se for par,
mostre a mensagem “O número N é par!”; se não, mostre a
mensagem “O número N é ímpar!”. Considere N o valor do
número lido.

8 . Faça um programa para ler um número N qualquer e


chamar uma função que mostra se ele é positivo, negativo ou
zero. Se N for positivo, mostre a mensagem “O número N é
Capítulo 8 - Funções
145

positivo!”; se for negativo, mostre a mensagem “O número


N é negativo!”; se N for igual a zero, mostre a mensagem “O
número é igual a zero!”. Considere N o valor do número lido.
9 . Faça um programa que leia um número inteiro N e chame
uma função que retorne o resultado da sequência:
1/2+1/4+....+1/2N

10 . Faça um programa que leia um número inteiro N e


chame uma função que retorne a sequência de Fibonacci
até o enésimo termo. A série de Fibonacci é formada pela
sequência: 1,1,3,5,8,13,21,34,..etc. Por exemplo, o quarto termo
da sequência é 5, o sétimo termo é 21, e assim por diante.
Observe que as sequência de Fibonacci é uma sucessão de
números que obedece a um padrão em que cada elemento
subsequente é o resultado da soma dos dois elementos
anteriores.
Algoritmos e programação em Python para o Ensino Técnico Integrado
146
Referências
147

REFERÊNCIAS

ALVES, Fábio Junior. Introdução à Linguagem de


Programação Python. Rio de Janeiro: Ed. Ciência Moderna
Ltda., 2013.

ORESTES, Yan. Python: O que significa if __name__ ==


‘__main__’? Alura. 2018. Disponível em: https://www.alura.
com.br/artigos/o-que-significa-if-name-main-no-python.
Acesso em: 10 out. 2021.

PYTHON. Download Python. Disponível em: https://www.


python.org/downloads/. Acesso em: 10 dez. 2021.

PYTHON Foundation. Tutorial Python 3.10.2. Disponível


em: https://docs.python.org/. Acesso em: 10 dez. 2021

W3SCHOOLS. Tutorial Python. Disponível em: https://www.


w3schools.com/python. Acesso em: 24 jan. 2022.
Algoritmos e programação em Python para o Ensino Técnico Integrado
148

SOBRE A AUTORA

Elanne Cristina Oliveira dos Santos

Possui graduação em Bacharelado em Ciências da


Computação pela Universidade Federal do Piauí (1998),
Doutorado em Ciências da Computação pela UFF (Universidade
Federal Fluminense), Mestrado em Ciências da Computação pela
Universidade Federal de Pernambuco, mestrado em Políticas
Públicas para a Educação (UNB) ,especialização em Educação
a Distância pela SENAC-MA. Professora no IFPI (Instituto
Federal de Educação, Ciência e Tecnologia do Piauí), atua nos
cursos Superior de ADS (Administração e Desenvolvimento de
Sistemas) e Ensino Médio Integrado de Informática. Membro
do Programa de Pós-Graduação ProfEPT/IFPI (Mestrado
Profissional em Educação Profissional e Tecnológica). Seus
interesses incluem: aprendizagem de programação, educação
profissional, tecnologias para educação e jogos digitais em
contextos educacionais.
Esta obra surgiu da necessidade de preparar
um guia de referência e/ou um livro didático
sobre algoritmos de programação para alunos do
ensino técnico médio integrado de informática
do Instituto Federal do Piauí (IFPI). A disciplina
Algoritmos de programação é ministrada no 1º
ano do ensino médio, e propõe apresentar aos
alunos o conceito de algoritmos e programação, e
como desenvolvê-los na resolução de problemas.
Neste livro, para o desenvolvimento de
algoritmos, trabalharemos com a linguagem
Python, versão 3.x (versão 3 ou superior).
O objetivo aqui não é constituir um guia
aprofundado, mas um material didático que
possa ser utilizado como roteiro de estudo e em
sala de aula, com atividades comuns a serem
executadas por professores e alunos.

Você também pode gostar