S03 - Atividade de Aprendizagem (2 de 2): Condições Complexas
Preparação
Nesta atividade, você continuará praticando instruções if, usando programas e lógicas ainda mais complexas.
Material de Preparação
Assista aos seguintes vídeos:
Link Direto: Expressões Booleanas
Link Direto: Declarações If Aninhadas
Link Direto: Erros Comuns com Declarações If
Teste de Múltiplas Condições
Conforme mostrado, você pode combinar duas condições com and e or:
if x > 5 and y > 10:
# Executa esse código se ambas as condições forem verdadeiras
if x > 5 or y > 10:
# Executa esse código se uma das condições (ou ambas!) for verdadeira
E você pode misturar e combinar qualquer expressão avaliada como verdadeira:
if x > 5 and y > 10 and palavra == "taco":
# Executa esse código se todas as três condições forem verdadeiras
Assim como os operadores matemáticos têm regras de precedência em que * acontece antes de +, a condição and tem precedência sobre a condição or, então se você quiser misturá-los e fazer com que a condição or aconteça primeiro, você precisa usar parênteses:
if (x > 5 or x < -5) and y > 10:
# Nesse caso, x pode ser maior que 5 ou menor que 5 negativo, e y deve
# sempre ser maior que 10
if x > 5 or x < -5 and y > 10:
# Sem parênteses, as condições x < -5 e y > 10 andam juntas e ambas devem ser
# verdadeiras, a menos que x > 5, em cujo caso toda a informação será verdadeira
Às vezes, isso pode ficar um pouco confuso, por isso é uma boa ideia usar parênteses em expressões complexas, para deixar claro o que você pretende que aconteça.
Teste de Múltiplas Condições Semelhantes
É comum querer testar a mesma variável para duas condições ou testar duas variáveis contra a mesma condição. Nesses casos, você pode querer deixar uma parte de fora, mas isso não funcionará. Sempre que usar operadores como > ou == , você deverá fornecer um lado esquerdo e um lado direito para ela.
# Para verificar se x é 5 ou 6, você pode querer escrever:
if x == 5 or 6:
# INCORRETO: Isso não faz a comparação que esperamos.
# Ao comparar dessa maneira, qualquer valor inteiro será verdadeiro e não atingiremos
# nosso objetivo de definir dois possíveis valores a variável x.
# Você deve escrever os dois:
if x == 5 or x == 6:
# Esta é a maneira correta de verificar
# Para verificar se nome ou sobrenome é Scott, você pode querer escrever:
if nome or sobrenome == "Scott":
# INCORRETO: Isso não faz a comparação que esperamos!
# Aqui,"if nome" será True sempre que a variável nome tiver algum valor
# atribuído a ela (ou seja, se não está vazia), e apenas sobrenome == "Scott"
# está sendo comparado de fato.
# Você deve escrever os dois:
if nome == "Scott" or sobrenome == "Scott":
# Esta é a maneira correta de verificar
Valores Verdadeiros e Falsos
Além de comparar com outras variáveis, você também pode definir uma variável como True (verdadeiro) ou False (falso). Até este ponto, aprendemos sobre os tipos de variáveis int, float e string. Variáveis que são verdadeiras ou falsas são um novo tipo de dados chamado variáveis booleanas (em homenagem ao matemático George Boole).
Você pode definir uma variável booleana diretamente, como esta_quente = True ou esta_quente = False. Observe que você deve sempre usar T maiúsculo em "True" e F maiúsculo em "False".
Como essas variáveis já são verdadeiras ou falsas, não é necessário compará-las com outro valor. Por exemplo:
esta_quente = True
# Você pode verificar o valor da variável diretamente
if esta_quente:
print("Está quente")
# Funciona, mas é redundante (e, portanto, uma prática ruim) verificar se é Verdadeiro:
if esta_quente == True:
print("Está quente")
Você pode verificar se uma variável booleana não é verdadeira com a palavra-chave not:
esta_quente = True
# Usando a palavra-chave "not"
if not esta_quente:
print("Não está quente")
# Funciona, mas geralmente é evitado para verificar se é falso:
if esta_quente == False:
print("Não está quente")
Variáveis booleanas normalmente são nomeadas com palavras que indicam que elas terão apenas dois valores e ajudam você a entender o que significa True. Por exemplo, se você quiser ter uma variável booleana que determine se alguém é adulto, normalmente escolheria um nome como eh_adulto (é adulto) em vez de idade ou mesmo adulto.
Nomes de variáveis booleanas comuns são eh_xxx, tem_xxx, pode_xxx etc.
Instruções da Atividade
Para esta atividade, você implementará um sistema simples para determinar se um usuário é elegível para um empréstimo.
Problema: Elegibilidade para um empréstimo
Ao emprestar dinheiro a alguém, você deseja ter algum nível de confiança de que essa pessoa será capaz de devolver o valor emprestado.
Existem diferentes características nas quais você pode basear essa decisão ou diferentes perguntas que você pode fazer a alguém. E, dependendo das respostas a essas perguntas, você poderá fazer outras perguntas. Por exemplo, considere as seguintes possíveis perguntas:
A pessoa tem um emprego e, em caso afirmativo, há quanto tempo trabalha lá e qual é o salário?
Existem boas garantias para o empréstimo? Por exemplo, o empréstimo é para um carro ou um imóvel que vale pelo menos o valor do empréstimo?
A pessoa tem uma boa pontuação de crédito ou um bom histórico de pagamento de empréstimos?
Quantas outras dívidas a pessoa tem?
Quanto dinheiro a pessoa tem?
A pessoa vai dar uma entrada? Em caso afirmativo, qual será a porcentagem do empréstimo?
Especificação do Programa
Escreva um programa para determinar se dinheiro deve ser emprestado com base nas seguintes regras.
Primeiro, peça uma classificação de 1 a 10 para o seguinte:
Qual é o valor do empréstimo?
Quão bom é o seu histórico de crédito?
Qual é a sua renda?
Qual é o valor da sua entrada?
Em seguida, você criará uma variável booleana para saber se deve emprestar o dinheiro, que será definida como True ou False. Configure uma série de instruções if para decidir se sua decisão de empréstimo é "sim" ou "não" de acordo com as seguintes regras:
Primeiro, verifique se o valor do empréstimo é de pelo menos 5. Se for, use as seguintes regras:
Se o histórico de crédito e a renda forem pelo menos 7, a decisão será "sim".
Se o histórico de crédito ou a renda for de pelo menos 7, verifique se a entrada é de pelo menos 5. Se for, a decisão é "sim", caso contrário, a decisão é "não"
Caso contrário, se nem o histórico de crédito nem a renda forem pelo menos 7, a decisão é "não".
Caso contrário, se o empréstimo não for 5 ou mais, use estas regras:
Se o crédito for inferior a 4, a decisão é "não".
Caso contrário, verifique o seguinte:
Se a renda ou a entrada forem pelo menos 7, a decisão é "sim".
Se a renda e a entrada forem pelo menos 4, a resposta é "sim".
Caso contrário, a decisão é "não".
Por fim, exiba a decisão ao usuário.
Exemplo de Solução
Quando terminar seu programa, consulte o exemplo de solução para comparar com o seu.
Primeiro, procure concluir o programa sem olhar o exemplo de solução. No entanto, se já tiver trabalhado nele por bastante tempo e ainda estiver com dificuldades, sinta-se à vontade para usá-lo como apoio para finalizar seu programa.
Procedimento de Teste
Verifique se seu programa funciona corretamente seguindo cada etapa deste procedimento de teste:
Teste seu programa com estes valores e veja se consegue chegar à decisão indicada:
Tamanho do empréstimo: 8, Crédito: 7, Renda: 8, Entrada: 1, Decisão: "sim"
Tamanho do empréstimo: 5, Crédito: 2, Renda: 7, Entrada: 5, Decisão: "sim"
Tamanho do empréstimo: 8, Crédito: 2, Renda: 8, Entrada: 3, Decisão: "não"
Tamanho do empréstimo: 2, Crédito: 4, Renda: 1, Entrada: 7, Decisão: "sim"
Tamanho do empréstimo: 4, Crédito: 5, Renda: 5, Entrada: 3, Decisão: "não"
Envio de Tarefa
Agora você concluiu todas as atividades de aprendizagem da semana!
Lembre-se de:
- Voltar ao Canvas e responder ao respectivo questionário.
Próxima Atividade
- S03 - Questionário: Decisões
Outros Links:
- Voltar para: Visão Geral da Semana | Página Inicial