Provavelmente já tenhamos sentido falta de algo mais eficiente para que possamos programar... Por exemplo... Digamos que criemos um programa para fazer o saque de uma conta bancária... Se a senha que passarmos estiver errada... Nada será feito. Mas como fazer isso? Como fazer um programa que execute trechos apenas em determinadas circunstâncias? Bom... Isso é possível com a ajuda de um trecho do conteúdo denominado estrutura de decisão.
Em estrutura de decisão, ocmo já foi dito, executamos um trecho de código em determinadas circunstâncias... Para que isso possa ser feito, temos que ter noção de algumas técninas, chamadas de comparação. Vejamos os termos comparativos:
- == - Igual
- != - Diferente
- > - Maior que
- < - Menor que
- >= - Maior ou igual a
- <= - Menor ou igual a
Perceba que para uma comparação caso dois dados sejam iguais, não utilizamos o =, mas sim o ==. Cuidado para não se confundir, isso é motivo de muitos erros por aí.
O resto, é fácil de memorizar.
Agora, quais são os códigos para estrutura de decisão? Veja-os:
if -> No português significa "se", tem a seguinte estrutura:
if (condição):
bloco
elif -> No português é uma abreviação do que seria "senão se". O elif só é utilizado depois de um if, ele não pode ser a primeira condição de um código. Ele tem a seguinte estrutura:
elif (condição):
bloco
else -> No português significa "senão". O else é a última condição a ser utilizada em uma determinada situação, como se representasse a única possibilidade restante disponível. Portanto, sendo representante da única possibilidade restante disponível, ele não necessita de condição. Vejamos:
else:
bloco
Agora vejamos algumas coisas... Em primeiro lugar, note a presença da palavra condição. E nesse local (dentro ou fora de parentesis) que vamos colocar a nossa condição com ajuda dos termos comparativos. Veremos um exemplo mais adiante, para que isso fique mais claro.
Em segundo lugar, perceba que abaixo da linha que será posta o nosso código, existe a palavra bloco. Esse é um novo termo para nós, e é motivo de muitos erros de programação. O bloco representa o código que será executado sob as circunstâncias descritas na condição. Note que o início da palavra bloco está mais a direita... Isso é o que chamamos de identação. Em outras palavras, o código que será executado sob tais circunstâncias, deve está identado. Mas o que é, na verdade, a identação. Identação trata-se de iniar uma linha mais a frente do início da folha. No início da linha clicamos em TAB (logo acima de Caps Lock), e será dado um espaço entre o início da página e o cursor. Por questão de organização, o python exige que todo o código que será salvo em determinadas circunstâncias (dentro de uma estrutura de decisão), seja posto com identação.
Vamos ao exemplo seguinte, e, posteriormente, tiraremos algumas dúvidas, com o que vou chamar de "perguntas frequentes".
Fazer um programa que peça o nome e a idade de uma pessoa, e caso ele tenha uma idade maior ou igual a 15 anos, mostrar na tela: Você já é maior de idade.
Vamos ao exemplo seguinte, e, posteriormente, tiraremos algumas dúvidas, com o que vou chamar de "perguntas frequentes".
Fazer um programa que peça o nome e a idade de uma pessoa, e caso ele tenha uma idade maior ou igual a 15 anos, mostrar na tela: Você já é maior de idade.
Vejamos:
nome = input("Nome: ")
idade = int(input("Idade: ")
if (idade >= 15):
print("Você já é maior de idade")
Percebe como é simples? Agora ao perguntas frequentes:
1 - Pode ser colocado mais que um 'if' dentro do código? Resposta: Sim, mas existe uma coisa interessante nessa ocasião. Quando colocamos o if (apenas 1), o elif e o else, o python testa as condições até que elas sejam verdadeiras. Quando isso acontecer, ele para de testar. Enquanto isso, colocando-se apenas "if's", mesmo que já exista uma condição correta, o python continuará testando as outras condições.
2 - Pode ser colocado mais que um 'elif' dentro do código? Resposta: Sim, esse é, dependendo da ocasião, o mais recomendado. Por que dependendo da ocasião? As vezes temos necessidade de trabalhar com duas condições, mas de modo que essas duas podem estar corretas simultaneamente. Quando isso ocorrer, o ideal é que seja posto dois "if's". Por exemplo:
nome = input("Nome: ")idade = input("Idade: ")
if (nome == "Adrian"):
print("Seu nome é Adrian.")
if (idade > 15):
print("Você é maior de idade.")
Note que o nome pode ser Adrian e a idade pode ser maior que 15 anos, portanto, nessa ocasião os dois "if's" estariam verdadeiros, logo os dois "print's" seriam executados. Assim, do mesmo modo tais informações poderiam está erradas, deixando de executar o código com a condição falsa.
3 - Pode existir uma estrutura de decisão dentro de outra? Sim! Mas cuidado com a identação. Veja o exemplo:
nome = input("Nome: ")
idade = input("Idade: ")
if (nome == "Tales"):
if (idade == 8):
print("Seu nome é Tales e você tem 8 anos.")
else:
print("Seu nome é tales e você não tem 8 anos.")
Note a presença do else. Perceba que ele foi utilizado no seguinte contexto: se a idade não é 8, logo ela é diferente de 8 anos.
4 - Qual a diferença de utilizar vários "if's" e utilizar um "if" e vários "elif's"? A diferença é simples, com os "if's" o python encontrará a condição verdadeira, executará o código dentro dela, e continuará testando as demais condições. Enquanto isso, utilizando um "if" e vários "elif's" o python buscará a condição verdadeira, e quando acabar, ele para de testar as demais condições.
Vejamos agora uma coisa que você talvez já tenha percebido... Neste trecho do conteúdo, estamos trabalhando muito com verdadeiro e falso, certo? Isso porque, entra aí um novo type: boolean. O boolean ele contém apenas dois possíveis valores: true ou false. Essas duas palavras vêm do inglês e significam, respectivamente: verdadeiro ou falso.
Portanto, para cada condição utilizada, não só em estrutura de decisão, mas você verá mais adiante as estruturas de repetição, o python retorna um valor do tipo boolean, e ele só executa o bloco de código pertencente a esta condição caso o valor retornado seja true.
Já está na hora de saber o seguinte: podemos utilizar várias condições em uma só estrutura de repetição? Sim! Mas para isso, vejamos o seguinte:
and - significa "e"
or - significa "ou"
As palavras acima são os principais elementos de junção de condições de uma estrutura condicionada (que contém uma condição). É aí que muita gente tem dificuldade em utilizar o or ou o and. Algumas vezes iremos precisar utilizar o or, e outras precisaremos utilizar o and. Vejamos um exemplo:
idade = int(input("Idade: "))
altura = float(input("Altura: "))
if (idade > 18 and altura < 2):
print("Você é um adulto normal.")
Note que, se na execução do meu pequeno código, eu dizer que minha idade é 15 e que minha altura é 1.75, o print não será executado, pois para que o código seja executado as duas condições devem ser true. Vejamos o mesmo exemplo, de outro modo:
idade = int(input("Idade: "))
altura = float(input("Altura: "))
if (idade > 18 or altura < 2):
print("Você é um adulto normal.")
Perceba que, se na execução do meu código, eu dizer que minha idade é 15 e que minha altura é 1.75, o código será executado. Isso porque, para que o código seja executado, ou uma condição ou outra deve retornar true. Logo, com o uso do or, ao menos uma condição deverá ser verdadeira.
Atividade
1 - Faça um programa capaz de converter velocidade de m/s para km/h ou vice versa, conforme o desejo do usuário. Para converter de m/s para km/h temos que multiplicar a velocidade por 3.6, e para converter de km/h para m/s temos que dividir a velocidade por 3.6.
2 - Peça ao usuário o nome e a senha, caso sejam iguais informe que os dados são inválidos.
3 - Seja criativo! A criatividade é uma das grandes qualidades do programador! Elabore seus próprios problemas, e, por meio da programação, resolva-o!
Nenhum comentário:
Postar um comentário