Porém, é possível fazermos vários testes, em uma mesma instrução IF, tudo de uma vez. Mas para isso precisamos usar os operadores lógicos: and, or e o not.
São bem simples e fáceis de entender.
Vamos estudar eles agora!
Operador AND em Python
Se eu disser pra você que: para ser um bom programador Python você deve estudar bastante teoria e fazer exercícios. O que você faria para ser um bom programador Python?Estudaria muita teoria ou faria muita exercícios? Ou os dois?
O segredo está no "... e ..."
Ou seja, você precisa fazer OS DOIS, se fizer apenas estudar teoria ou só resolver exercícios, não vai ser um bom programador. Tem que fazer OS DOIS!
O e é o operador and, em Python.
Seja o seguinte teste:
teste condição1 and condição2
O teste vai retornar TRUE somente se as DUAS condições forem TRUE!
Se uma delas for falsa, já era, o retorno é falso.
Pode colocar 1 milhão de condições, se usar and:
teste condição1 and condição2 and condição3 and condição4....and condição1000000
Só vai retornar verdadeiro se TODAS as condições forem verdadeiras!
Se uma delas for falsa, fodeu a porra toda...o resultado é falso.
Exemplo de uso do operador and
Para votar, você deve ter entre 18 anos e menos de 65 anos.Escreva um programa que pergunte sua idade e diga se você é obrigado a votar ou não.
Temos dois testes:
- Testar se tem 18 anos ou mais
- Testar se tem 65 ou menos
Para votar, cada um dos testes deve ser TRUE.
O nosso código fica:
resposta=int( input('Qual sua idade: ') ) if resposta>=18 and resposta <=65: print('Você é obrigado a votar!') else: print('Você não é obrigado a votar')
Rode o código e faça um teste.
Veja que para o IF ter resultado verdadeiro, ambas as condições devem ser verdadeiras: tanto deve ter 18 anos ou mais E DEVE ter 65 anos ou menos.
Essa é a característica do operador and.
Todos os testes devem ser true, para o resultado ser true.
Se um deles for false, o resultado é falso.
Operador OR em Python
Para ter acesso a fila de prioridade, você deve ser idoso, gestante ou cadeirante. Escreva um programa que pergunta a situação do usuário (se é idoso, se é gestante, se é cadeirante ou nenhum destes) e diga se ele pode ter acesso a fila prioridade ou não.Para o usuário ter acesso a fila de prioridade, ele deve ser idoso OU gestante OU cadeirante. Qualquer um desses. Basta que uma dessas condições seja verdadeira, para o teste condicional ser verdadeiro.
Para fazermos isso, devemos usar o operador or (ou em português), cujo modelos é o seguinte:
if condição1 or condição2 or condição3 or ... : [código] # Caso qualquer condição seja verdadeira [código] # Esse código vai ser executado else: [código] # Caso todas as condições sejam falsas [código] # esse código vai ser executado
A solução do programa do idoso, gestante ou cadeirante, é:
print('1. Idoso') print('2. Gestante') print('3. Cadeirante') print('4. Nenhum destes') resposta=int( input('Você é: ') ) if (resposta==1) or (resposta==2) or (resposta==3) : print('Você tem direito a fila prioritária') else: print('Você não tem direito a nada. Vá pra fila e fique quieto')
Note que fizemos três testes:
- Se é idoso (resposta==1)
- Se é gestante (resposta==2)
- Se é cadeirante (resposta==3)
Se qualquer um deles for verdade, esse if vai ser verdade, pois usamos o operador lógico or (OU). Pra ser prioridade, OU você tem que ser idoso, OU tem que ser gestante OU tem que ser cadeirante.
Não precisa ser os três, basta um deles ser verdade, que o teste retorna verdade. Faz sentido pra você?
Operador NOT em Python
O operador not em Python é o mais simples.Ele ele pega a expressão e reverte ela.
Se era uma condição TRUE, ela vira FALSE.
Se algo era FALSE, ela vira TRUE.
Basta colocar not antes.
Por exemplo, vamos criar um script que pergunta qual a melhor banda do universo, para o usuário.
Se ele não digitar 'rush', chama o usuário de herege.
Se digitar, ok, parabeniza. Veja:
banda = input('Qual melhor banda do mundo? ') if not banda=='rush': print('Herege!') else: print('Correto, é o Rush!')
Tabela Verdade: Operador AND
Condição A Condição B AND (A.B)True True True
True False False
False True False
False False False
Tabela Verdade: Operador OR
Condição A Condição B OR (A + B)True True True
True False True
False True True
False False False
Tabela Verdade: Operador NOT
Condição A NOT ( ~A)True False
False True
print('''[ 1 ] - IDOSO
ResponderExcluir[ 2 ] - CADEIRANTE
[ 3 ] - GESTANTE
[ 4 ] - DEFICIÊNTE
[ 5 ] - NENHUMA DAS ALTERNATIVAS
''')
resposta = int(input('Qual sua condição [ex: 1]: '))
if resposta == 1 or resposta == 2 or resposta == 3 or resposta == 4:
print('Você tem preferência, Pode passar a frente!')
elif resposta == 5:
print('Você não tem preferência, aguarde!')
else:
print('Opção Invalida!')
O certo vai ficar assim:
Excluirprint('1. Idoso')
print('2. Cadeirante')
print('3. Gestante')
print('4. Deficiente')
print('5. NDA')
resposta = int(input('Qual sua condição? Digite apenas números: '))
if (resposta==1) or (resposta==2) or (resposta==3) or (resposta==4):
print('Você tem preferência, Pode passar a frente!')
elif (resposta==5):
print('Você não tem preferência, aguarde!')
else:
print('Opção Invalida!')
Que aula boa!
ResponderExcluirObrigado pelo tutorial, mas faltou uma explicação sobre o pq do operador lógico OR ter que usar parênteses.
ResponderExcluirNão precisa usar.
ExcluirBoa noite! Eu não usei os parênteses e o código rodou normal.
Excluirprint ('Opções de atendimento:\n\n')
ResponderExcluirprint ('Opção 1 - Idoso.\nOpção 2 - Gestante.\nOpção 3 - Cadeirante.\nOpção 4 - Nenhum destes.')
opcao = int (input ('\n\nSelecione uma das opção: '))
if opcao == 1 or opcao == 2 or opcao == 3:
print ('\n\nVocê pode usar o atendimento prioritário.')
elif opcao == 4:
print ('\n\nVocê deve usar o atendimento comum.')
else:
print ('\n\nOpção inválida! Digite uma opção entre 1 e 4.')
input ()
import sys
Excluirprint ('Opções de atendimento:\n\n')
print ('Opção 1 - Idoso.\nOpção 2 - Gestante.\nOpção 3 - Cadeirante.\nOpção 4 - Nenhum destes.')
opcao = int (input ('\n\nSelecione uma das opção: '))
if opcao == 1 or opcao == 2 or opcao == 3:
print ('\n\nVocê pode usar o atendimento prioritário.')
sys.exit(0)
elif opcao == 4:
print ('\n\nVocê deve usar o atendimento comum.')
else:
print ('\n\nOpção inválida! Digite uma opção entre 1 e 4.')
opcao = int(input('\n\nSelecione uma das opçoes'))
if opcao == 1 or opcao == 2 or opcao == 3:
print ('\n\nVocê pode usar o atendimento prioritário.')
elif opcao == 4:
print ('\n\nVocê deve usar o atendimento comum.')
else:
print ('\n\nOpção inválida! Digite uma opção entre 1 e 4.')
opcao = int(input('\n\nSelecione uma das opçoes'))
import sys
ResponderExcluirprint ('Opções de atendimento:\n\n')
print ('Opção 1 - Idoso.\nOpção 2 - Gestante.\nOpção 3 - Cadeirante.\nOpção 4 - Nenhum destes.')
opcao = int (input ('\n\nSelecione uma das opção: '))
if opcao == 1 or opcao == 2 or opcao == 3:
print ('\n\nVocê pode usar o atendimento prioritário.')
sys.exit(0)
elif opcao == 4:
print ('\n\nVocê deve usar o atendimento comum.')
else:
print ('\n\nOpção inválida! Digite uma opção entre 1 e 4.')
opcao = int(input('\n\nSelecione uma das opçoes'))
if opcao == 1 or opcao == 2 or opcao == 3:
print ('\n\nVocê pode usar o atendimento prioritário.')
elif opcao == 4:
print ('\n\nVocê deve usar o atendimento comum.')
else:
print ('\n\nOpção inválida! Digite uma opção entre 1 e 4.')
opcao = int(input('\n\nSelecione uma das opçoes'))
Parece que ficou certo. Mas usaria a solução do professor com as opções em prints separados na proxima.
ResponderExcluirusuario = int(input("Informe o número de sua condição:\n1 - Gestante\n2 - Idoso\n3 - Cadeirante\n4 - Nenhuma das Opções\nOpção: "))
if usuario==1 or usuario==2 or usuario==3:
print("Ok, pode se dirigir a fila de prioridade")
else:
print("Aguarde ser atendido na fila normal")