CSE 110: Introdução à Programação

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:

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:

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:

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:

  1. Tamanho do empréstimo: 8, Crédito: 7, Renda: 8, Entrada: 1, Decisão: "sim"

  2. Tamanho do empréstimo: 5, Crédito: 2, Renda: 7, Entrada: 5, Decisão: "sim"

  3. Tamanho do empréstimo: 8, Crédito: 2, Renda: 8, Entrada: 3, Decisão: "não"

  4. Tamanho do empréstimo: 2, Crédito: 4, Renda: 1, Entrada: 7, Decisão: "sim"

  5. 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:

Próxima Atividade

Outros Links: