 |
|
Hoje é Ter Mai 22, 2012 10:34 am
|
Ver mensagens sem resposta | Ver tópicos ativos
|
Página 1 de 1
|
[ 5 Mensagens ] |
|
Operadores nas estruturas de controle
| Autor |
Mensagem |
|
andre.vmatos
Data de registro: Dom Dez 14, 2008 12:16 pm Mensagens: 7 Localização: Cáceres, MT
|
 Operadores nas estruturas de controle
Só complementando, como em outras linguagens, python aceita os operadores especiais and e or. É mais ou menos assim. O if reconhece apenas valores False e True. False é representado pelo 0, None e False (bools), enquanto o True é representado por True (bool), 1 ou qualquer outro valor (strings, int, floats, qqr coisa, exceto os representados pelo False). Quando, no if ou em outras estruturas de controle executamos, por exemplo, 10 % 2 == 0, na verdade, esse trecho de código irá retornar True ou False, e o if executará o código correspondente. Mas, chegando ao ponto importante, o Python reconhece também o and e o or. Ou seja, usando vários testes com os operadores, eles retornarão apenas um valor, False ou True. Melhor explicar com exemplos. O exemplo do número par e divisível por 5: poderia ser escrito assim: Código: >>> # Um exemplo com o operador AND (E) >>> n = 10 >>> if n % 2 == 0 and n % 5 == 0: ... print 'É par E divisível por 5' ... É par E divisível por 5 >>> >>> # Outro exemplo com o AND >>> n = 8 >>> if n % 2 == 0 and n % 5 == 0: # Note aqui que a primeira operação é verdadeira, mas a segunda nao. E como AND é exclusivo, retorna False ... print 'É par E divisível por 5' ... else: ... print 'Não é par E divisível por 5' ... Não é par E divisível por 5 >>> >>> # Um exemplo usando o OR >>> n = 12 >>> if n % 2 == 0 or n % 5 == 0: ... print 'É par OU divisível por 5' ... É par OU divisível por 5 >>>
Conseguiram captar? Ao invés de aninhar ifs, você pode reduzir o tamanho dos códigos e o consumo de memória e processamento com esses operadores especiais. Naturalmente, há casos especiais em que é realmente necessário o uso de várias estruturas de controle aninhadas, mas o uso de AND e OR é extremamente produtivo. Espero ter contribuido. Abraços a tds
|
| Dom Dez 14, 2008 12:46 pm |
|
 |
|
infog
Site Admin
Data de registro: Sex Nov 21, 2008 11:45 pm Mensagens: 22 Localização: Cubatão - SP - Brasil
|
 Re: Operadores nas estruturas de controle
Oi André!
Caramba! Ficou muito boa a explicação! Posso usa-la na próxima aula? Com os devidos créditos é claro =) hehehe
Abraços!
|
| Dom Dez 14, 2008 2:04 pm |
|
 |
|
andre.vmatos
Data de registro: Dom Dez 14, 2008 12:16 pm Mensagens: 7 Localização: Cáceres, MT
|
 Re: Operadores nas estruturas de controle
Claro  , fique à vontade. Será um prazer poder ser útil à comunidade e aos outros alunos.
|
| Dom Dez 14, 2008 2:06 pm |
|
 |
|
rodrigozhou
Data de registro: Seg Nov 24, 2008 8:53 am Mensagens: 16 Localização: Rio de Janeiro
|
 Re: Operadores nas estruturas de controle
Existe também o operador NOT. Esses operadores ( AND, OR e NOT) são chamados de Operadores Booleanos. O AND verifica se a primeira expressão é verdadeira. Caso seja verdadeira, ele verifica o segundo. Caso contrário, ele retorna com falsa. O OR verifica se a primeira expressão é falsa. Caso seja falsa, ele verifica o segundo. Caso contrário, ele retorna com verdadeira. O NOT verifica se a expressão é falsa. Se for, ele retorna como verdadeira. Senão, como falsa. Também é possível misturar os operadores e que, nestes casos, o Python segue uma ordem de operações: 1) Operadores relacionais (< , > , == , != , <= , >=) 2) NOT 3) AND 4) OR Segue exemplo: Código: >>> not 2<3 False >>> not 3<2 True >>> 1 and not 0 # 'not 0' retorna True, pois, como citado por André, 0 equivale a False. Então ele verifica '1 and True'. True >>> 1 and not 1 # Aqui, 'not 1' é retornado como False. False >>> 0 or 2 and 3 # '2 and 3' vem primeiro e é retornado como 3. E depois é como se fosse '0 or 3'. 3
Créditos ao Professor Claudio Esperança por ter disponibilizado um material muito bom sobre  . Abraços.
|
| Dom Dez 14, 2008 2:47 pm |
|
 |
|
andre.vmatos
Data de registro: Dom Dez 14, 2008 12:16 pm Mensagens: 7 Localização: Cáceres, MT ---------
|
 Re: Operadores nas estruturas de controle
Sim, sim. Bem lembrado. Havia me esquecido do not =D Só complementando, valores Booleanos são, em python e em outras linguagens, um tipo de valor, assim como inteiros, strings, floats, etc. Porém, são bem limitados. Eles indicam apenas se algo é verdadeiro ou falso, como nas provas que fazemos, classificamos uma alternativa como verdadeira ou falsa. Eles são muito uteis em programação. Por exemplo, funções que retornam Bools (valores booleanos) podem ser implantadas direto nas estruturas de controle, como o if. Ex.: Código: >>> nome = 'André Vitor Matos' >>> def name_str(nome): ... return type(nome) == str: ... >>> if name_str(nome): ... print 'variavel nome é uma string' ... else: ... print 'variavel nome não é uma string' ... >>>
Ficou meio confuso, mas dá pra entender. A função name_str retorna um booleno. Se nome é uma string, retorna verdadeiro. Se não, falso. O X da questão está na aplicação direta da função no if, sem o uso de comparadores (<, >, !=, etc). Flwss
|
| Dom Dez 14, 2008 3:00 pm |
|
|
|
Página 1 de 1
|
[ 5 Mensagens ] |
|
Quem está online |
Usuários vendo este fórum: Nenhum usuário registrado online e 0 visitantes |
|
Você não pode criar novos tópicos neste fórum Você não pode responder tópicos neste fórum Você não pode editar suas mensagens neste fórum Você não pode excluir suas mensagens neste fórum Você não pode enviar anexos neste fórum
|
|
 |