Material de apoio para a disciplina Linguagem de Programação da UACSA/UFRPE
Produzido pelo prof. João Pimentel
Faça um resumão ou mapa mental com os comandos e funções do Python que você já aprendeu. Senão, quando quiser revisar, você gastará muito tempo assistindo vídeos.
Às vezes só o if...else não é suficiente para resolvermos os nossos problemas. O mundo é complicado mesmo, cheio de regras. Veja, por exemplo, as regras para adotar uma criança:
Art. 42. Podem adotar os maiores de 18 (dezoito) anos, independentemente do estado civil. § 1º Não podem adotar os ascendentes e os irmãos do adotando. § 2o Para adoção conjunta, é indispensável que os adotantes sejam casados civilmente ou mantenham união estável, comprovada a estabilidade da família. § 3º O adotante há de ser, pelo menos, dezesseis anos mais velho do que o adotando. Art. 45. A adoção depende do consentimento dos pais ou do representante legal do adotando. § 1º. O consentimento será dispensado em relação à criança ou adolescente cujos pais sejam desconhecidos ou tenham sido destituídos do poder familiar. § 2º. Em se tratando de adotando maior de doze anos de idade, será também necessário o seu consentimento.
Tem 3 coisas que a gente pode fazer quando as condições são mais complicadas:
Bom, já introduzi o significado do and (e), or (ou) e not (não) na nossa Live 3. Então o melhor lugar para começar seria entrar lá no SIGAA e assistir novamente o começo dessa Live.
O vídeo a seguir explica muito bem o raciocínio lógico do and, or e not. Só precisa se ligar que o vídeo é sobre lógica de programação em geral, e não sobre Python, então tem algumas diferenças nos símbolos:
Vídeo | Python |
---|---|
= | == (igualdade) |
<> | != (diferença) |
TRUE | True |
FALSE | False |
AND | and |
OR | or |
NOT | not |
Vídeo 1 (10min):
A and B
O resultado só será verdadeiro se as duas partes (A e B) forem verdadeiras.
print(5>2 and 5>0)
Resultado: True
print(5>2 and 5>20)
Resultado: False
print(5>20 and 5>2)
Resultado: False
print(5>20 and 5>10)
Resultado: False
A or B
O resultado será verdadeiro quando pelo menos uma (A ou B) for verdadeira.
print(5>2 or 5>0)
Resultado: True
print(5>2 or 5>20)
Resultado: True
print(5>20 or 5>2)
Resultado: True
print(5>20 or 5>10)
Resultado: False
not A
O not (negação) inverte o resultado: o que era verdadeiro vira falso, e o que era falso vira verdadeiro.
print(not 5>2)
Resultado: False, por que 5>2 é True, e not True dá False
print(not 5>20)
Resultado: True, por que 5>20 é False, e not False dá True
Quando eu quero saber se um número está dentro de um certo intervalo posso usar o and.
Se liga que não é possível fazer x > 12 and <= 17 (x maior que doze e menor-igual a 17). Cada lado do and precisa ser uma expressão lógica completa: x > 12 and x <= 17 (x maior que doze e x menor-igual a 17)
Ou seja toda comparação precisa ter os dois lados (esquerdo e direito). Se eu escrever <= 17, cadê o lado esquerdo da comparação? O computador vai comparar 17 com o quê?!
Quando mais do que uma opção vai dar o mesmo resultado, posso usar o or.
Veja outro exemplo onde mais do que uma opção vai dar o mesmo resultado.
Na UFRPE, uma pessoa é reprovada em uma disciplina se não atingir a média 5. A pessoa também é reprovada se não atingir a frequência mínima de 75% das aulas.
Escreva um programa que pergunta a média da pessoa, a quantidade de horas de aula que ela assistiu, e a carga horária total da disciplina. O programa vai então dizer se a pessoa foi reprovada ou não.
Clique para ver a resposta no repl.itSeus pais só deixam você jogar se já tiver lavado a louça e tomado banho. A não ser que você tenha feito o almoço, nesse caso tá liberado(a).
Veja também esse outro código que atende ao enunciado, mas sem usar o or.
Lembra daquelas regras de adoção, que mostrei no começo desta lição? Clique aqui para ver o código de um programa que consegue decidir se uma adoção pode ser feita ou não.