Académique Documents
Professionnel Documents
Culture Documents
DESENVOLVIMENTO DE SOFTWARE II
1ª edição
2017
Av. Francisco Rodrigues Filho, 1233 - Mogilar
A Braz Cubas
Nascida em 1940, na cidade de Mogi das Cruzes, a Braz Cubas, que iniciou suas
atividades com um pequeno curso preparatório, conta hoje com cerca de 20 mil alu-
nos, entre as modalidades presencial e educação a distância.
A importante notícia veio valorizar a região de Mogi das Cruzes e premiar uma
longa carreira de bons serviços prestados à educação brasileira, formando profissio-
nais competentes e capacitados ao mercado de trabalho.
Missão
Visão
Valores
3
Guia de Estudos do Semestre
Você já sabe que em cada semestre terá 5 disciplinas para estudar, correto?
Mas, você não verá as 5 de uma única vez. Para que possa aproveitar ao máximo
cada uma delas, fizemos uma organização, que chamaremos de “Dinâmica das
Disciplinas”.
As 5 disciplinas, que nomearemos como “A”, “B”, “C”, “D” e “E”, foram dividas em
3 blocos.
Bloco 1
Período Disciplinas Conteúdo a ser estudado
1ª semana AeB Unidade I
2ª semana AeB Unidade II
Avaliação de Verificação
3ª semana AeB
(unidades I e II)
4ª semana AeB Unidade III
5ª semana AeB Unidade IV
Avaliação Presencial
6ª semana AeB
(unidades I, II, III e IV)
5
Guia de Estudos do Semestre
Bloco 2
Período Disciplinas Conteúdo a ser estudado
1ª semana CeD Unidade I
2ª semana CeD Unidade II
Avaliação de Verificação
3ª semana CeD
(unidades I e II)
4ª semana CeD Unidade III
5ª semana CeD Unidade IV
Avaliação Presencial
6ª semana CeD
(unidades I, II, III e IV)
Bloco 3
Período Disciplinas Conteúdo a ser estudado
1ª semana E Unidade I
2ª semana E Unidade II
Avaliação de Verificação
3ª semana E
(unidades I e II)
4ª semana E Unidade III
5ª semana E Unidade IV
Avaliação Presencial
6ª semana E
(unidades I, II, III e IV)
6
Sumário
Sumário
Apresentação 9
O Professor 11
Introdução 13
1Unidade I
Introdução à Linguagem de Programação 15
1.1 A evolução das linguagens de programação 15
1.2 Linguagens procedimentais x Linguagens orientadas a objetos 19
1.3 Linguagens de Scripting 21
1.4 Interpretação versus Compilação 22
1.5 Escolha da linguagem 26
1.6 O ranking das linguagens 29
Referências 32
2Unidade II
Linguagem de Programação Python 35
2.1 O mundo Python 35
2.2 Python e lógica de programação 38
2.3 Primeiros códigos e sintaxes em Python 40
2.3.1 Exibir mensagens e resultados 40
2.3.2 Armazenar em variáveis 43
2.3.3 Receber dados 44
2.4 Mãos à obra – Meu primeiro script em Python 45
2.4.1 Desafio 46
Referências 47
3Unidade III
Python – características e códigos essenciais 49
3.1 Características da linguagem 49
3.2 Por que Python? 52
3.3 Operadores 55
3.4 Funções string 57
3.5 Condições 59
3.6 Mãos à obra – Corretor ortográfico 63
3.7 Mãos à obra - Desafio 64
Referências 65
4Unidade IV
Python – avançando na codificação 67
4.1 Repetições com “while” 67
4.1.1 Cláusulas “break” e “continue” 71
4.2 Repetições com “for” 73
4.3 Repetições aninhadas 76
4.4 Funções 79
4.5 Mão à obra – Cálculo de média 80
4.5.1 Desafio 81
4.6 E agora? O que vem pela frente? 82
Referências 83
Apresentação
Apresentação
Olá aluno(a), que bom que você chegou até aqui! A essas alturas sei que já foi
inserido no universo computacional. Sabe bem diferenciar o mundo do hardware e
o mundo software, entende como o computador funciona internamente, CPU, Me-
mórias, bits e bytes, e mais do que isso, sabe que tudo é uma questão de cálculos e
lógica.
Podemos começar? Desejo que esse tempo seja proveitoso, que de fato acres-
cente profissionalmente, que te faça crescer, ser um profissional melhor e galgar
suas realizações no mercado de trabalho.
9
A Braz Cubas
Objetivo geral:
10
O Professor
O Professor
<https://goo.gl/g4eiyd>
11
Introdução
Introdução
Barack Obama, ex-presidente norte americano, que por oito anos governou
uma das nações mais influentes do nosso globo, disse em um oportuno discurso:
Esse apelo foi feito dentro de um contexto em que, embora programador seja
uma das profissões mais bem pagas nos Estados Unidos, em 2013 apenas 10% das
escolas ensinavam programação. Percebendo a lacuna, e o quanto um país pode
estar à frente de muitos outros pelo seu poderio tecnológico, ele convocou os jovens
estadunidenses a se tornarem desenvolvedores de sistemas. Será que esse também
não deve ser o nosso apelo nacional?
Aliás, por falar em poderio, um artigo extraído do site da casa branca (whi-
tehouse.gov), intitulado como “Segurança Nacional depende da Inteligência e da mi-
neração de dados”, mostra como as guerras atualmente têm sido travadas através
do âmbito computacional, softwares de inteligência artificial, e algoritmos de máqui-
nas de aprendizagem, rastreiam toda a web, e seus sistemas na nuvem em busca
de ações suspeitas. Ao invés de soldados, são os programadores e os cientistas de
dados, que formam o pelotão principal desse exército. Em uma das frases o autor do
artigo é pragmático em afirmar:
13
Introdução
Bom, é sempre difícil mensurar, mas quero que pense em números grandes,
e em crescimentos exponenciais!
14
Introdução à Linguagem de Programação Unidade 1
1 Unidade I
Pense agora em uma conversa entre duas pessoas. Ela só é possível através de
uma linguagem, que envolve um idioma comum, português, por exemplo, e mais um
conjunto de expressões, sinais e gestos. De modo igual, também é possível conver-
sar com as máquinas para que elas recebam nossas ordens e executem as funções
que desejamos. Máquinas computacionais entendem zeros e uns, as duas condições
de um bit, ligado ou desligado. Logo, para que um software execute um cálculo, ou
armazene um dado, disparamos em linguagem de máquina, uma infinidade de or-
dens, disparadas como você pode ver sendo feito pelo nosso perito desenvolvedor
da imagem:
15
Unidade 1 Introdução à Linguagem de Programação
A vida dos programadores na década de 40 não era nada fácil, simples ações
precisavam ser traduzidas através de longos códigos binários, um processo lento,
cansativo e como você pode já imaginar, sujeito a muitos erros. Embora o desenvol-
vedor da figura 1.1 pareça ter um teclado próprio para essa programação, sátiras a
parte, na verdade a codificação era inserida via cartões perfurados, como esse que
começou a ser utilizado em 1950 em computadores eletrônicos da IBM (figura 1.2).
Neles, os estados de 0 ou 1 eram representados pela ausência ou presença de furos:
16
Introdução à Linguagem de Programação Unidade 1
17
Unidade 1 Introdução à Linguagem de Programação
Todas linguagens de alto nível, ou seja, trabalham com ordens escritas na língua
inglesa, facilmente compreensíveis, e simples de serem lembradas.
Todas linguagens de alto nível, ou seja, trabalham com ordens escritas na lín-
gua inglesa, facilmente compreensíveis, e simples de serem lembradas.
Representações binárias
1ª - Linguagens de Máquina. Baixo
ou hexadecimais.
18
Introdução à Linguagem de Programação Unidade 1
19
Unidade 1 Introdução à Linguagem de Programação
Conheça mais:
20
Introdução à Linguagem de Programação Unidade 1
1.3 Linguagens de Scripting
Em Java:
System.out.println(“Olá Mundo”);
Em Python:
utilizar um método
criar a classe declarar o método de saída para exibir
“OlaMundo” “exibaOlaMundo()” a mensagem “Olá
Mundo”.
21
Unidade 1 Introdução à Linguagem de Programação
Já em Python, a função
print dá a ordem para que
a mensagem “Olá Mundo”
seja exibida na tela.
A questão é que existe uma lacuna, um gap, entre os dois mundos. É como
se um inglês estivesse tentando conversar com um chinês. Aliás, pensemos justa-
mente nesse último exemplo, o que seria possível fazer para que eles pudessem se
entender? Uma boa saída seria colocar um intérprete entre eles, que traduzisse as
palavras do inglês para o chinês e do chinês para o inglês.
22
Introdução à Linguagem de Programação Unidade 1
programa fonte
Compilador
programa objeto
23
Unidade 1 Introdução à Linguagem de Programação
programa fonte
Interpretador saída
entrada
É importante dizer que existem ainda linguagens cuja tradução é híbrida. Parte
compilada e parte interpretada. É o caso da linguagem Java. Na primeira tradução,
o programa fonte Java é compilado e transformado em um programa intermediário
conhecido como bytecodes. Na segunda tradução, os bytecodes são lidos por um
interpretador chamado de máquina virtual.
24
Introdução à Linguagem de Programação Unidade 1
programa fonte
Tradutor
código intermediária
Máquina
saída
entrada Virtual
C Compilação
C++ Compilação
C# Híbrida
Java Híbrida
Cobol Compilação
PHP Interpretação
Python Interpretação
JavaScript Interpretação
25
Unidade 1 Introdução à Linguagem de Programação
Basic Interpretação
Pascal Compilação
ASP Interpretação
SQL Interpretação
1.5 Escolha da linguagem
26
Introdução à Linguagem de Programação Unidade 1
Para Android, devo utilizar Java. Para iOS Swift. E para Windows Mo-
bile Visual C#.
O C++ seria uma excelente opção, por ser portável e ter ótimas in-
terfaces de programação para Desktop. Uma segunda opção seria o
C# ou mesmo o Java, ambas orientadas a objeto.
27
Unidade 1 Introdução à Linguagem de Programação
Conheça mais:
28
Introdução à Linguagem de Programação Unidade 1
Existem algumas métricas quanto ao uso das linguagens que podem nos dar
uma noção de relevância e popularidade. Um desses recursos é o índice TIOBE. Seu
mecanismo consiste em rastrear os sites de busca mais relevantes e medir a quanti-
dade de vezes que uma linguagem é pesquisada na web.
29
Unidade 1 Introdução à Linguagem de Programação
Ou ainda, saber qual foi a linguagem que teve o maior aumento de buscas por
ano:
30
Introdução à Linguagem de Programação Unidade 1
Conheça mais:
31
Unidade 1 Introdução à Linguagem de Programação
Aprendemos que:
Referências
AHO, A. V.; LAM, M. S.; SETHI, R., ULLMAN, J. D. Compiladores: Princípios, técnicas e
ferramentas. 2. ed. São Paulo: Pearson Addison-Wesley, 2008.
GITHUB. The state of the Octoverse 2016. Disponível em: < https://octoverse.github.
com/>. Acesso em: 04/05/2017.
SOLDERA, J. POO: reusabilidade e eficiência em seu código. Disponível em: < http://
www.devmedia.com.br/poo-reusabilidade-e-eficiencia-em-seu-codigo/31463>. Aces-
32
Introdução à Linguagem de Programação Unidade 1
so em: 02/05/2017.
33
Linguagem de Programação Python A Unidade
Braz Cubas
2
Unidade II
2
Muito bem, precioso (a) aluno (a), chegar até aqui indica que você adquiriu
bons fundamentos sobre linguagens de programação e já está pronto (a) para,
finalmente, começar a escrever seus primeiros códigos. Daqui a algumas páginas
você será oficialmente um Pythonist. Estranho esse termo, não é mesmo? Pois é,
você precisa saber que na cultura python existe termo para tudo, e que por mais geek
que isso possa parecer, na verdade, é um bom sinal. Indica que os desenvolvedores
nessa linguagem são amantes do que fazem, grandes entusiastas, e que esse é um
caminho sem volta. Você, também, quando menos esperar, fará parte de tudo isso.
Por falar em geek, Guido Van Rossum, um holandês nascido em 1956, que
trabalhava no CWI (em português, Centro de Matemática e Ciência da Computação)
em Amsterdã, local onde linguagens como o ABC e o Algol 68 foram desenvolvidas,
percebeu que no final da década de 80, início de 90, precisava de algo que fosse
simples, produtivo, mas robusto. Foi quando iniciou o desenvolvimento do Python.
35
A Unidade
Braz Cubas
2 Linguagem de Programação Python
À medida que Guido mudava de projeto, ele levava o Python consigo. Passou
pela start up BeOpen.Com, pela Zope, um bom tempo na Google, e recentemente
foi para o Dropbox. Para que a linguagem estivesse dentro de um ambiente
colaborativo, como se faz necessário em tudo que é open source, foi criado o site
python.org e a PSF (Python Software Foundation), uma organização sem fins lucrativos
que visa promover e proteger a linguagem, por meio de uma série de patrocinadores
importantes, tais como Google, Microsoft, Red Hat, entre outros. Atualmente, o Python
está na sua versão 3.6.1, e ocupa a quinta posição na maioria das classificações que
mensuram as linguagens mais utilizadas. É uma linguagem de propósito geral, ou
seja, pode ser utilizada para qualquer tipo de finalidade de software. E, embora tenha
sido desenvolvida em uma época em que pouco se falava sobre web e inteligência
artificial, tem sido muito utilizada para atender à essas necessidades.
36
Linguagem de Programação Python A Unidade
Braz Cubas
2
Essas boas práticas “pythonicas” ficam bem claras em algo que é conhecido como
o Zen do Phyton. Tim Peters, um programador importante da comunidade, o escreveu
em 1999. São 19 princípios relevantes a serem seguidos. Eles ficam “escondidos”
no interpretador da linguagem, e veremos logo mais nas videoaulas dessa unidade
como encontrá-los. Segue aqui uma tradução livre dessas boas práticas:
37
A Unidade
Braz Cubas
2 Linguagem de Programação Python
Conheça mais:
Separamos para você também alguns outros links legais, tais como o
blog do criador do Python e o depoimento de um experiente progra-
mador brasileiro.
Logo no início de seu curso, você aprendeu lógica de programação, por meio
de fluxos e também de pseudocódigos. Como já compreendido, o objetivo dos
códigos com comandos ainda em português é treinar o raciocínio computacional,
38
Linguagem de Programação Python A Unidade
Braz Cubas
2
39
A Unidade
Braz Cubas
2 Linguagem de Programação Python
40
Linguagem de Programação Python A Unidade
Braz Cubas
2
>>>
>>> print (`2017`)
2017
>>>>
Ou seja, sempre que um conteúdo estiver entre aspas, vai ser entendido como
uma mensagem e exibido de forma literal, tal como foi escrito.
41
A Unidade
Braz Cubas
2 Linguagem de Programação Python
>>>
>>> print (10+10)
20
>>>>
>>>
>>> print (`10+10`)
10+10
>>>>
>>>
>>> print (`10`+`10`)
1010
>>>>
Dica de Leitura:
42
Linguagem de Programação Python A Unidade
Braz Cubas
2
Logo, podemos refazer o código que testamos há pouco para exibir o resultado
da operação 10 + 10, armazenando os valores a serem somados em variáveis:
>>>
>>> a=10
>>> b=10
>>> print (a+b)
20
>>>>
Pense que, ao invés de 10, a variável, justamente em função de seu nome, está
pronta para receber qualquer tipo de valor, e pode ser utilizada em qualquer parte
do código, basta fazermos referência ao seu nome. Em nosso exemplo, parece uma
mudança simples, de pouco impacto, contudo, quero lembrá-lo(a) que códigos de
softwares mais robustos, como o Word, por exemplo, chegam a ter milhões de linhas
de comandos. E que em uma situação hipotética em que a operação 10+10 apareça
muitas vezes no código, em caso de necessidade de alteração, é muito mais prático
simplesmente alterar o início do código mudando o valor que “a” e “b” recebem, do
que localizar as linhas em que a soma acontece e alterar uma a uma.
Além disso, com variáveis, um usuário pode informar o valor que desejar, e
alterar esse valor sempre que voltar a utilizar um programa. Vejamos como seria a
sintaxe para receber valores via teclado em variáveis na próxima subunidade.
43
A Unidade
Braz Cubas
2 Linguagem de Programação Python
A função “input” abre na tela um espaço para que o usuário do programa possa
digitar o valor que desejar. Vamos simular a situação de um questionário, em que
perguntamos nome e idade. Veremos primeiro o script e depois o programa em
funcionamento:
44
Linguagem de Programação Python A Unidade
Braz Cubas
2
Figura 2.7 – Código no IDLE para receber valores numéricos e realizar a multiplicação.
Algumas boas práticas são importantes para evitar erro em nossos có-
digos. Assista à videoaula sobre o uso do IDLE, na qual aproveitamos
para dar algumas dicas quanto ao uso de espaço, maiúsculo/minús-
culo, nomes de variáveis, entre outros macetes.
Vamos construir nosso primeiro programa para dar suporte a uma locadora
de veículos. Em seu modelo de negócios a locadora cobra o valor da diária do veículo
45
A Unidade
Braz Cubas
2 Linguagem de Programação Python
2.4.1 Desafio
46
Linguagem de Programação Python A Unidade
Braz Cubas
2
Conheça mais:
Aprendemos que:
Referências
BORGES, Luiz Eduardo. Python para Desenvolvedores. 3. ed. São Paulo: Novatec,
2014.
47
A Unidade
Braz Cubas
2 Linguagem de Programação Python
ROSSUM, Guido Van. Guido van Rossum - Personal Home Page. Disponível em: < ht-
tps://gvanrossum.github.io//>. Acesso em: 06/06/2017.
48
Python – características e códigos essenciais A Unidade
Braz Cubas
3
Unidade III
3
3.1 Características da linguagem
Vamos começar pelo nome Python. De onde veio? A princípio somos todos leva-
dos a pensar que faz referência ao réptil da família pythonidade, uma serpente sem
dentes inoculadores de veneno, que aqui no Brasil recebe o nome de píton. Mas, na
realidade, Guido, quando escolheu esse nome estava fazendo referência a uma sé-
rie de humor britânica chamada de “Flying Circus” (em português traduzida para “os
malucos do circo”), e interpretada pelo grupo de comediantes Monty Python no início
da década de 70.
49
A Unidade
Braz Cubas
3 Python – características e códigos essenciais
Embora fosse essa a ideia original, e Guido tenha lutado para mantê-la, com o
tempo tornou-se inevitável não associar o nome da linguagem ao animal píton, até
mesmo porque a própria editora O’Reilly, que já tem uma inclinação para colocar
imagens de animais em suas capas, decidiu estampar a serpente na capa de seus
livros sobre o assunto.
50
Python – características e códigos essenciais A Unidade
Braz Cubas
3
Dica de Leitura:
51
A Unidade
Braz Cubas
3 Python – características e códigos essenciais
Dica de Leitura:
52
Python – características e códigos essenciais A Unidade
Braz Cubas
3
Além disso, são muitas as áreas que utilizam Python, justamente por ser de
propósito geral, o que significa que pode ser utilizado em scripts web, sistemas desk-
top, jogos, aplicativos mobile, entre outras aplicações. Contudo, vale ressaltar que
por comportar grandes números, seu poderio na execução de cálculos é bastante
relevante, o que a elege como escolha ideal para áreas como a Inteligência Artificial,
Biotecnologia e Computação 3D. A NASA, agência de aeronáutica norte americana,
inclusive, é uma referência no uso de Python.
Se você já assistiu ao filme Star Wars, precisa saber que a empresa responsável
pela renderização das imagens e cenas, a Industrial Light & Magic, utiliza Python em
suas produções cinematográficas.
O Gimp, similar ao Photoshop, assim como o Blender, para animação 3D, ambos
softwares livres, também estão em Python.
53
A Unidade
Braz Cubas
3 Python – características e códigos essenciais
E os games? Têm muitos interessantes... Frets on fire para PCs (similar ao Guitar
Hero), Jewel Quest mobile para combinação de jóias, EVE online para exploração espa-
cial, Civilization IV para traçar estratégias, e o BattleField 2 para tiros em primeira pes-
soa, esses dois últimos mais conhecidos e geralmente instalados em computadores
pessoais.
54
Python – características e códigos essenciais A Unidade
Braz Cubas
3
3.3 Operadores
55
A Unidade
Braz Cubas
3 Python – características e códigos essenciais
E por fim, pode ser também necessário dentro uma programação utilizar ope-
radores lógicos:
56
Python – características e códigos essenciais A Unidade
Braz Cubas
3
3.4 Funções string
Python também oferece uma série de funções para trabalharmos com dados
do tipo texto, o que chamamos de string. A quantidade de caracteres de uma men-
sagem pode ser contada através da função “len”.
57
A Unidade
Braz Cubas
3 Python – características e códigos essenciais
Assim como cada caracter da mensagem pode ser localizado e exibido apenas
fazendo referência à sua posição:
58
Python – características e códigos essenciais A Unidade
Braz Cubas
3
E fazermos uma série de checagens via funções que começam com “is”, tais
como:
Conheça mais:
3.5 Condições
59
A Unidade
Braz Cubas
3 Python – características e códigos essenciais
if <condição 1>:
<bloco de código para condição satisfeita>
elif <condição 2>:
<bloco de código para condição satisfeita>
elif <condição n>:
<bloco de código para condição satisfeita>
else:
<bloco de código caso nenhuma condição an-
terior tenha sido satisfeita>
Figura 3.9 – Script para exibição de mensagem em uma linha (em Pycharm)
60
Python – características e códigos essenciais A Unidade
Braz Cubas
3
Figura 3.10 – Script para exibição de mensagem em uma linha sem operador “and” (em Pycharm)
Figura 3.11 – Script para exibição de mensagem em uma linha com “elif” (em Pycharm)
61
A Unidade
Braz Cubas
3 Python – características e códigos essenciais
Por fim, a única opção possível, ainda não descrita no código, é o caso em que
a mensagem vem vazia, com 0 caracteres. Como se trata da última situação possível,
vamos utilizar o comando “else”, que representa o contrário de todas as opções an-
teriores.
Figura 3.12 – Script para exibição de mensagem em uma linha com “else” (em
Pycharm)
Muito bem, temos então as três situações possíveis (if, elif, else). Sabemos que
as condições são executadas pela ordem em que foram escritas, e caso o interpreta-
dor encontre uma condição verdadeira, ele não irá ler as demais condições. Diante
dessas regras, é possível otimizar mais ainda esse código? Seria possível transformar
a pergunta dupla que é feita no if, em uma pergunta somente? Veja como ficaria:
Figura 3.13 – Script para exibição de mensagem em uma linha otimizado (em Pycharm)
62
Python – características e códigos essenciais A Unidade
Braz Cubas
3
63
A Unidade
Braz Cubas
3 Python – características e códigos essenciais
Vamos permitir que o usuário informe o texto no qual a busca será efetuada.
Informe também qual é a palavra que está escrita de modo errado, e qual deve ser
a escrita correta.
Além disso, caso o texto esteja escrito em minúsculo, vamos convertê-lo para
maiúsculo.
Conheça mais:
Aprendemos que:
64
Python – características e códigos essenciais A Unidade
Braz Cubas
3
Referências
BORGES, Luiz Eduardo. Python para Desenvolvedores. 3. ed. São Paulo: Novatec,
2014.
ROSSUM, Guido Van. Guido van Rossum - Personal Home Page. Disponível em: < ht-
tps://gvanrossum.github.io//>. Acesso em: 06/06/2017.
65
Python – avançando na codificação A Unidade
Braz Cubas
4
4 Unidade IV
Muito bem, chegamos a nossa última unidade, e temos, no entanto, uma série
de comandos/funções ainda para aprendermos. Por isso, o foco exclusivo da unida-
de IV será codificação.
67
A Unidade
Braz Cubas
4 Python – avançando na codificação
Agora, quero que imagine o esforço para trabalharmos com intervalos maio-
res. Suponha que devamos imprimir números de 1 a 1000. Quanto tempo gastaría-
mos digitando duas mil linhas de código? Inviável não é mesmo? Para tal situações, o
ideal é lançarmos mão de uma estrutura que escrita apenas uma vez, force o código
a repetir mil vezes. Lá em lógica, a estrutura chamava-se “enquanto”, aqui o coman-
do correspondente é o “while”, veja sua sintaxe:
while <condição>:
<bloco de código para condição satisfeita>
else:
<bloco de código a ser executado quando a
condição deixar se ser satisfeita>
68
Python – avançando na codificação A Unidade
Braz Cubas
4
Observe que nessa versão do código, o último número a ser impresso é in-
formado pelo usuário e armazenado na variável “fim”. Quero chamar a sua atenção
também para uma forma mais enxuta de escrevermos o nosso contador, utilizando
o sinal de mais (+), antes do igual (=): “c += 1”.
69
A Unidade
Braz Cubas
4 Python – avançando na codificação
Na figura 3.1 o valor do intervalo não satisfez a condição e, por isso, a cláusula
“else” foi acionada. Confira como o interpretador leu o comando, substituindo as va-
riáveis pelos valores informados:
70
Python – avançando na codificação A Unidade
Braz Cubas
4
Vamos construir uma aplicação que efetue a soma de vários números, con-
forme a necessidade do usuário. Nesse caso, nunca saberemos quantos números
serão informados, por isso, deixaremos a condição ser executada por uma quantida-
de indeterminada de vezes. Essa necessidade pode ser expressa por meio da opção
“True”, dentro do “while”. Veja como ficaria o código:
Dessa forma, o usuário poderá digitar quantos valores desejar, embora, tal
como está composto o código, um problema grave surgirá. A aplicação entrará em
loop infinito e nunca será encerrada, afinal o laço sempre será verdadeiro (“True”).
Para resolver esse problema utilizaremos a cláusula “break”, oferecendo ao usuário
a opção de encerrar o código, a qualquer momento, apenas digitando o valor 0. Ob-
serve:
71
A Unidade
Braz Cubas
4 Python – avançando na codificação
Você percebeu que no bloco de código da figura 3.3 não foi necessária
a utilização de um contador? Isso porque o loop está sendo controlado
pela combinação de “True” com “break”. No entanto, vemos o uso de
uma variável parecida com o contador (variável “somar”), pois a cada
repetição, ela é acumulada de si mesma, e somada ao valor digitado
pelo usuário. Esse tipo de variável é conhecido como acumulador.
Também para interferir no fluxo do laço, temos a cláusula “continue”, que faz
com que o interpretador volte para o início do loop imediatamente, sem ter de ler
todas as linhas de código do bloco. Vejamos como funciona, no exemplo a seguir.
Iremos decrementar um contador de 1 em 1, a partir do 11 e até o 0, mas só exibire-
mos os números pares, em caso do número ser ímpar, utilizaremos “continue” para
retornar ao “while” sem executar o “print”:
72
Python – avançando na codificação A Unidade
Braz Cubas
4
73
A Unidade
Braz Cubas
4 Python – avançando na codificação
74
Python – avançando na codificação A Unidade
Braz Cubas
4
Note que o valor inicial está incluso, mas o valor final não aparece, pela lógica
o cálculo sempre será o valor final menos 1. Ou seja, para um intervalo de 1 a 5 ocor-
rerão 4 repetições.
É possível ainda informarmos apenas o valor final do . Nesse caso, por padrão
o valor inicial será 0. Para o range (5), o contador irá de 0 a 4, executando 5 repetições:
75
A Unidade
Braz Cubas
4 Python – avançando na codificação
4.3 Repetições aninhadas
Existirão situações em que um laço poderá ficar contido dentro de outro. Como
se fossem ponteiros de um relógio, em que uma volta completa do ponteiro menor
(60 minutos) desloca o ponteiro maior em uma unidade de hora. Ou poderíamos
também, comparar o aninhamento de laços com engrenagens, no qual várias voltas
da engrenagem menor geram pequenos movimentos na engrenagem maior.
76
Python – avançando na codificação A Unidade
Braz Cubas
4
77
A Unidade
Braz Cubas
4 Python – avançando na codificação
print(‘alternativa {}’.format(listastring[lacointerno]))
Para o valor 0 em “lacointerno” a letra “a” será exibida. Para o valor 1 em “la-
cointerno” a letra “b” será exibida, E assim sucessivamente, até chegarmos no valor
4, que exibirá a letra “e”.
78
Python – avançando na codificação A Unidade
Braz Cubas
4
4.4 Funções
Ao longo das unidades nós utilizamos uma série de funções já prontas ofere-
cidas pelo Python: print, input, len, int, float. Todas essas são exemplos de blocos de
códigos que foram construídos e disponibilizados para serem utilizados sempre que
necessário. Isso significa que, alguém se preocupou em criar uma programação que
ordenasse ao computador, por exemplo, escrever resultados na tela, esse desenvol-
vedor programou uma série de linhas de código e deu a ela um nome, nesse caso,
“print”, e nós não temos mais de nos preocuparmos em como o computador faz para
escrever algo na tela. Simplesmente, lançamos mão de uma função já pronta, dentro
de qualquer programa, e sempre que surgir a necessidade. Esse é o objetivo de uma
função, encapsular um bloco de código que seja útil para poder reutilizá-lo.
Agora, é importante que você saiba que também podemos criar as nossas fun-
ções e nomeá-las do modo que mais conveniente nos for. Isso é feito por meio da
instrução “def”, veja sua sintaxe:
Observe que uma função pode receber valores numéricos e textos, ela poderá
trabalhar com esses valores, e na instrução “return” devolver o resultado dos cálcu-
los e processos realizados.
Para exemplificar, vamos criar uma função que some dois números:
79
A Unidade
Braz Cubas
4 Python – avançando na codificação
Veja, dentro do “print” chamamos a função soma através de seu nome, e pas-
samos dois valores digitados pelo usuário, “a” e “b”. A função soma irá recepcionar
esses valores e guardá-los em “n1” e “n2”. Ela realizará a adição, e devolverá o resul-
tado para ser exibido na tela.
Esse raciocínio pode ser replicado para qualquer outra necessidade. Experi-
mente criar suas próprias funções!
Nesse momento você deve estar pensando: “Essa é fácil. Vou construir meu
código assim:”
80
Python – avançando na codificação A Unidade
Braz Cubas
4
Sem dúvida, essa seria uma saída possível usando os recursos que aprende-
mos nas unidades anteriores.
4.5.1 Desafio
81
A Unidade
Braz Cubas
4 Python – avançando na codificação
Você pode construir jogos com bibliotecas, tais como, Pygame, Panda 3D e PyO-
gre.
Além disso, é possível combinar Python com interface gráfica e desenvolver te-
las amigáveis como front-end dos nossos programas. Preparamos para você uma
videoaula especial sobre interface gráfica. Confira!
82
Python – avançando na codificação A Unidade
Braz Cubas
4
Aprendemos que:
Podemos ainda, interferir no fluxo lógico dos loops através das cláu-
sulas “continue” e “break”. Laços aninhados funcionam como um con-
junto de engrenagens que se movem de modo coordenado. Para reúso
de blocos de códigos, devemos criar funções. Python oferece ainda a
possibilidade de desenvolvimento web com o Django, acesso à banco
de dados, programação funcional e criação de jogos.
Referências
BORGES, Luiz Eduardo. Python para Desenvolvedores. 3. ed. São Paulo: Novatec,
2014.
83