Neste artigo, o dataholic Rodrigo Santana vai explicar alguns conceitos utilizados pelos praticantes de python, para colocar em prática algumas aplicações importantes para programadores. Vem aprender!
Mas se você ainda não conferiu o primeiro artigo sobre programação com Python, corre lá para checar esse conteúdo, que a gente te espera!😎
Introdução
Vamos abordar a importância da utilização dos seguintes conceitos:
· Estrutura Condicional: Simples, Composta e Aninhada;
· Laços de Repetição: For e While;
· Instrução de Parada: Break.
Lembrando que tais funcionalidades são utilizadas em diversas linguagens de programação, porém cada uma com sua particularidade. Sendo assim analisaremos através da holística e aplicabilidade do Python.
Desde já, desejo uma boa leitura.
Vamos nessa! 🚀💙
Condicional: Simples, Composta, Aninhada
Entre as linguagens de programação, o uso de condicionais é frequente quando é necessário realizar uma validação e verificação de informação, e após a obtenção da resposta de sua pergunta lógica, o bloco programado é executado.
Para entendermos sua usabilidade e aplicação, podemos dividi-la em três grupos, sendo eles:
· Condicional Simples;
· Condicional Composta;
· Condicional Aninhada.
Abaixo tentarei explicar e exemplificar como usamos na linguagem Python esses três conceitos.
Condicional Simples
A estrutura de condicional simples, faz uso apenas da instrução: “if”. Pois serve apenas de verificação para o bloco executado, e somente se a resposta for verdadeira, teremos a execução.
Exemplo:
nome = str(input('Qual é seu nome? '))
if nome == ‘Maria’:
print(‘Você tem um nome muito bonito!’)
print('Tenha um ótimo dia, {}!'.format(nome))
Na estrutura apresentada acima, se o usuário digitasse o nome ‘Maria’, o retorno seria:
Você tem um nome muito bonito!
Tenha um ótimo dia, Maria!
Porém se fosse informado qualquer nome diferente de Maria, o resultado seria apenas:
Tenha um ótimo dia <Nome Informado>!
Mas assim como o usuário deseja criar uma validação simples, existem casos em que a pergunta pode gerar mais de uma saída, com isso entramos na estrutura de condicional composta.
Condicional Composta
A estrutura de condicional composta, assim como a condicional simples, se inicia utilizando a instrução “if”, porém é necessário incluir mais um comando, ou seja, comando: “else”.
Este comando será executado apenas se o comando “if” aplicado anteriormente tenha sua saída como resultado falso.
Exemplo:
nome = str(input('Qual é seu nome? '))
if nome == ‘Maria’:
print(‘Você tem um nome muito bonito!’)
else:
print('Seu nome é tão normal!')
print('Bom dia, {}'.format(nome))
Na estrutura composta apresentada acima, se o usuário informar o nome ‘Maria’, o retorno seria:
Você tem um nome muito bonito!
Bom dia, Maria
Porém se fosse informado qualquer nome diferente de Maria, o sistema não iria simplesmente encerrar com a saída: “Bom dia, <Nome Informado>”, ele pularia o “if” e executaria apenas o comando “else”, e a saída seria:
Seu nome é tão normal!
Bom dia, <Nome Informado>
Agora deixo aqui um ponto para questionamento e reflexão:
E se o seu programa possuísse diversas condicionais? Acha que seria interessante criar inúmeros “if’s” e “else’s” no seu código? Imagine o quão desgastante isso poderia ser, e o pior, durante manutenções ou incrementos futuros no seu código. Isso, sem dúvida, seria um grande problema para quem tivesse que executar essas rotinas.
Sendo assim, lhe convido para leitura sobre estrutura condicional aninhada.
Condicional Aninhada
A estrutura de condicional composta, nos possibilitou a criação de condicionais com retorno para perguntas de valores booleanos, ou seja: verdadeiro ou falso, sim ou não, direita ou esquerda, enfim algo que nos permitia escolher apenas uma das duas opções para seguir para o próximo passo.
Porém, sempre que precisássemos seguir um novo passo uma nova rotina de ‘if’ e ‘else’ deveria ser aplicada e se seguíssemos esse padrão, o nosso código poderia, e provavelmente ficaria muito confuso e extenso. Dificultando assim sua leitura e manutenções futuras.
Levando isso em consideração, a proposta de aplicação agora que veremos é o uso de condicional aninhada.
Mais uma vez gostaria de frisar, ao iniciarmos a condicional a primeira instrução a ser utilizada é a instrução: ‘if”, considere-a como o start para seus comandos quando estiver aplicando suas condicionais.
Mas agora teremos uma novidade, ao invés de seguirmos para o comando ‘else’, usaremos um comando diferente, o nome dele é: ‘elif’ este comando é a junção do ‘if’ + ‘else’, e é utilizado dentro das condições aninhadas. Vejamos a seguir sua aplicação.
Exemplo:
print('-=-' * 20)
nome = str(input('Qual é seu nome? '))
if nome == ‘Maria’:
print(‘Você tem um nome muito bonito!’)
elif nome == ‘João’ or nome == ‘José’ or nome == ‘Antônio’:
print('Seu nome é bem popular no Brasil.')
else:
print(‘Seu nome é tão normal.')
print('Tenha um bom dia, {}!'.format(nome))
Com a estrutura criada acima, teremos as seguintes opções de saída:
Se o nome informado durante o input for: Maria, a condicional ‘if’ será aplicada, e o restante das condicionais não serão consideradas. Teremos assim a seguinte saída:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Você tem um nome muito bonito!
Tenha um bom dia, Maria!
Se o nome informado durante o input for diferente de Maria, a próxima condicional a ser avaliada será a ‘elif’, se houver confirmação dentre os nomes mencionados: João, José ou Antônio, teremos a seguinte saída:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Seu nome é bem popular no Brasil.
Tenha um bom dia, <João, José ou Antônio>!
Caso o nome informado seja diferente de qualquer um dos quatro nomes predefinidos no ‘if’ ou ‘elif’ anteriormente, o ‘else’ será executado.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Seu nome é tão normal.
Tenha um bom dia, <Nome informado>!
Dentro do Python, essas são as opções de condicionais que podemos aplicar. Para finalizarmos esse bloco gostaria de fechar com a seguinte informação.
· If – Sempre iniciará sua estrutura condicional, seja ela: simples, composta ou aninhada;
· Elif – Pode ser aplicada quantas vezes forem necessárias, não existe limite de uso, mas deve vir sempre na sequência de um ‘if’ iniciando toda estrutura;
· Else – Sempre no final de sua estrutura condicional, será aplicada apenas quando for feito uso de estrutura composta e aninhada, e quando for dentro do padrão aninhada, não existe obrigatoriedade de uso. Podendo assim, fazer uso apenas do ‘if’ e ‘elif’.
Laço de Repetição: For
Estrutura de repetição é um tipo de recurso utilizado entre diversas linguagens de programação, são responsáveis por executar blocos repetidas vezes sem a necessidade de codificar diversas linhas para mesma finalidade, e no Python não é diferente.
Na linguagem Python, temos o total de duas estruturas de repetição, sendo elas: For e While. Nesta primeira parte falaremos sobre Laços For.
Se durante a execução de um programa, existir uma rotina que necessite repetir um mesmo processo por um determinado número de vezes, ao invés de criar diversas linhas de código iguais, podemos fazer uso de um Laço For e assim percorrer por todo bloco de código (Loop). E no momento que esse algoritmo terminar de executar essa tarefa, ele sairá do Loop de execução e partirá assim para próxima execução do programa, conforme este for definido. Veja a aplicação abaixo:
Exemplo:
for c in range(0, 6):
print(‘Estrutura de Repetição For’)
print(‘FIM’)
O resultado desse loop será:
Estrutura de Repetição For
Estrutura de Repetição For
Estrutura de Repetição For
Estrutura de Repetição For
Estrutura de Repetição For
Estrutura de Repetição For
FIM
OBS: A letra ‘c’ é considerada como variável de controle do For, o Range é a distância que será percorrido/ quantidade de iterração.
Ou seja, teremos uma repetição para o print(‘Estrutura de Repetição For’), pela quantidade de vezes definida no range declarado anteriormente.
Está seria a forma otimizada, para lhe auxiliar e evitar que seja realizado seis print’s.
Note também, que o print(‘FIM’), só foi executado quando todo loop (total de 6 iterações), terminou de ser executado.
Um ponto importante que devemos apontar sobre o laço de repetição For, é que ele é muito utilizado quando sabemos o total de iterações que o range possuí, mas nada impede de utilizar também o While, porém explicaremos depois a diferença citada.
Laço de Repetição: While
Anteriormente vimos na estrutura for, laços de repetição que precisavam como parâmetro para funcionar, o apontamento de um range, ou seja, quantas vezes o passo deveria ser executado para atender o seu código.
· Podemos chamá-la de estrutura de repetição com variável de controle.
Porém, no While teremos uma abordagem diferente. Ele é muito utilizado em situações em que não sabemos exatamente qual a distância desse range. Ou seja, para tarefas que ainda não foi definido um número de ações a serem executadas, e essa tarefa é repetida até chegar em uma flag, que é o ponto de parada por meio de um critério estabelecido. Mas nada impede de realizar While sabendo o range a ser percorrido.
· E aqui chamamos de estrutura de repetição com teste lógico.
Exemplo:
Neste primeiro exemplo, foi definido um range a ser percorrido.
valor = 1
while valor < 6:
print('{}º Valor.'.format(valor))
valor += 1
· Como podemos ver, foi informado para estrutura While percorrer enquanto o valor for menor ‘<’ do que 6;
· O valor foi iniciado a partir do valor 1;
· E a cada laço percorrido o valor recebe +1.
Assim teremos o seguinte resultado:
1º Valor.
2º Valor.
3º Valor.
4º Valor.
5º Valor.
E como mencionado anteriormente, o For é utilizado por haver a possibilidade de mensurar o seu range e assim apontar quantos loops e qual distância irá percorrer no laço.
Já o While faz uso de operadores lógicos para controlar esse range.
Mas quando não temos informação do range, usamos o conceito de loop infinito com o While, que vamos ver no próximo tópico.
Critério de Parada no While: Break
Seguindo o entendimento da estrutura de repetição While, também existe a possibilidade de criar um loop infinito, quando este em questão não é referido com operador lógico delimitando a seu loop. E para interromper esse loop é necessário criar um critério de parada que é denominado como: Break, o qual podemos aplicar da seguinte forma.
O Break é uma flag que é inserida após o While iniciar, e quando o programa executa a função esperada, o Break é acionado e o loop é interrompido.
Exemplo:
n = s = 0
while True:
n = int(input('Digite um número: '))
if n == 999:
break
s += n
print('A soma vale {}.'.format(s))
No código acima teremos o seguinte resultado:
· n – Armazena os valores informados pelo usuário a cada iteração;
· s – Soma todos os valores que foram inseridos por n e guarda na memória;
· Ambas as variáveis serão iniciadas com valor 0 antes do loop do While;
· Enquanto o usuário não informar o valor 999, o loop será executado. Neste caso o 999 foi o critério aplicado como condicional de parada.
· E assim que o usuário digitar 999, o sistema acionará o Break, e executada a soma de todos os valores inseridos em n, sem considerar o valor 999.
Vamos imaginar que informamos os números: 3, 6 e 4 e por fim digitamos 999.
Teremos como retorno:
A soma vale 13.
Para terminar esse tópico, gostaria de deixar uma observação importante.
Entre For e While, não existe o melhor ou pior. Neste caso, o usuário que deve escolher o que melhor se adapta a cada momento. Escolher o For ou While achando que um será mais performático do que o outro é um mito. A performance do seu programa vai depender da escrita e boas práticas aplicadas no código como um todo.
Conclusão
E aqui chegamos ao fim de mais um artigo de conceitos em Python Fundamentos.
Tivemos a oportunidade de ver como podemos fazer uso de:
· Estruturas Condicionais: Simples, Composta e Aninhada;
· Estruturas de Repetição: For e While;
· Critério de Parada: Break.
Como usar cada uma dessas funcionalidades e alguns exemplos práticos.
O que vimos até aqui foi apenas o início do Python, e tudo de uma forma breve e rasa. Mas se você gostou do que viu até aqui, deixo como sugestão a busca por cursos em vídeos de Python Introdutórios/Fundamentos, e pesquisar tópico a tópico do que abordamos neste artigo.
Desta forma você poderá consolidar e absorver ainda mais todo conhecimento que pôde adquirir até aqui. Continue ligado no blog da Dataside para não perder os próximos conteúdos sobre a Liguagem de programação Python, ou se preferir nos acompanhe nas redes sociais para não perder nada!
Mais uma vez muito obrigado por acompanhar, espero que a leitura tenha sido proveitosa e nos vemos no próximo artigo.💙🦾