Operadores, comparações e condições
Esta página cobre os símbolos e palavras que combinam valores: aritmética, a ordem em que é trabalhada, comparações que respondem true ou false e os operadores lógicos e bitwise. Use esta página quando uma linha fornecer um número diferente do que você esperava, ou quando quiser uma nota para verificar algo para você, como se você ainda está dentro do orçamento.
Aritmética
| Operador | Formas de escrever | Exemplo | Resultado |
|---|---|---|---|
| Adicionar | +, plus |
£12.50 + £4.30 |
£16.80 |
| Subtrair | -, −, minus |
£20 - £4.50 |
£15.50 |
| Multiplicar | *, ×, times, multiplied by, justaposição |
3 × £4.50, 2(3 + 4) |
£13.50, 14 |
| Dividir | /, ÷, divided by |
£60 / 4 |
£15.00 |
| Potência | ^, **, to the power of, raised to, exponent |
2 ** 3, 2 raised to 10 |
8, 1,024 |
| Resto | mod, % (entre dois números) |
50 mod 6, 50 % 6 |
2 |
| Raiz quadrada | √, sqrt(...), square root of |
√144 |
12 |
| Ao quadrado / ao cubo | ², ³ |
3³ |
27 |
| Fatorial | !, factorial(...) |
5!, factorial(5) |
120 |
A aritmética funciona em números simples, dinheiro e quantidades com unidades, e a resposta mantém a moeda ou unidade:
£12.50 + £4.30 resulta em £16.803 * £4.50 resulta em £13.50£1,000 * 1.05^3 resulta em £1,157.636 times 7 resulta em 42100 minus 37.5 resulta em 62.5Justaposição significa deixar de fora o *, como em 2(3 + 4) ou 2π. Multiplicação implícita explica quando isso funciona e quando não funciona.
Ordem das operações
Os cálculos seguem a ordem usual da matemática escolar:
- Parênteses.
- Fatoriais, como
5!. - Potências, calculadas da direita para a esquerda:
2^3^2é2^9, ou seja, 512. - Um sinal de menos inicial, aplicado após a potência:
-2^2é -4, enquanto(-2)^2é 4. - Multiplicação, divisão e
mod, da esquerda para a direita. - Adição e subtração, da esquerda para a direita.
Omitir * não altera essa ordem: em 2x^2, primeiro x é elevado ao quadrado e depois multiplicado por dois, como na notação matemática usual.
Isso significa que uma multiplicação acontece antes de uma adição ao lado dela, o que pega as pessoas ao somar uma conta:
£85 - £12.50 * 2 resulta em £60.00(£85 - £12.50) * 2 resulta em £145.00£120 / 4 / 2 resulta em £15.00Na dúvida, use parênteses. Eles ajudam a deixar a intenção clara e facilitam a leitura da nota depois.
Um sinal de raiz quadrada se aplica ao valor logo após ele, então √9 + 16 é 19. Coloque toda a expressão entre parênteses para tomar a raiz de uma soma:
√(9 + 16) resulta em 5Restos
mod dá o que sobrou após a divisão. É útil para dividir as coisas em grupos:
eggs = 50eggs mod 6 resulta em 2floor(eggs / 6) resulta em 8Cinquenta ovos enchem oito caixas de seis, com duas sobrando.
% entre dois números também calcula o resto da divisão, mesmo sem espaço antes do segundo número: 50 % 6 e 50% 6 retornam 2. Um % sem nada depois forma uma porcentagem (50%), como explicado em Porcentagens.
Fatoriais
Coloque ! imediatamente depois de um número, nome ou parêntese de fechamento para calcular seu fatorial:
5! resulta em 120runners = 4runners! resulta em 243! + 2 resulta em 85!=4 resulta em trueO fatorial é calculado antes de uma potência adjacente: 2^3! é 2⁶, ou seja, 64. ! seguido de = continua significando "diferente de", como mostra a última linha. factorial(5) retorna a mesma resposta que 5!.
Comparação
==, !=, <, <=, > e >= comparam dois valores e retornam true ou false. Funcionam com números sem unidades, valores na mesma moeda e grandezas do mesmo tipo, mesmo que usem unidades diferentes:
budget = £400spent = £365spent <= budget resulta em truespent == budget resulta em falsespent != budget resulta em true5 km == 5,000 m resulta em true90 min >= 1.5 hours resulta em true2 kg < 2,500 g resulta em trueAs unidades são convertidas antes da comparação, então 1 mile > 1.5 km é true. Comparar coisas que medem quantidades diferentes, como quilogramas e metros, dá um erro incompatible units.
O que as comparações não fazem
- Cadeias.
5 < x < 10não é suportado. Em vez disso, combine duas comparações:5 < x && x < 10. - Símbolos Unicode.
≠,≤e≥não são reconhecidos. Use!=,<=e>=. - Datas. Você não pode comparar duas datas com
<ou>. Subtraia-os e compare a diferença com uma duração:
deadline = 30 September 2026booked = 14 September 2026deadline - booked resulta em 2 weeks 2 daysdeadline - booked >= 7 days resulta em trueOperadores lógicos
Combine comparações com && (as duas precisam ser verdadeiras) ou || (pelo menos uma precisa ser verdadeira). As palavras and e or funcionam da mesma forma entre duas comparações.
distance = 5 kmrun time = 27 mindistance >= 5 km && run time < 30 min resulta em truedistance >= 10 km || run time < 25 min resulta em falsedistance >= 10 km or run time < 30 min resulta em truetrue e false podem ser escritos diretamente e combinados com && e || :
true || false resulta em truetrue && false resulta em falseAlguns formulários que você pode esperar não são suportados:
andeorsó funcionam entre comparações.true and falsenão funcionam; escrevatrue && false.- Não há operador de negação:
not truee!truenão funcionam. Em vez disso, compare comfalse, como em(spent > budget) == false. ornão é um retorno para erros:1/0 or 5não dá 5.
Usando comparações em condicionais
Uma comparação é mais útil dentro if … then … else …, que escolhe um valor dependendo da resposta:
basket = £34.50if basket >= £40 then £0 else £3.99 resulta em £3.99Condicionais explica a sintaxe completa, incluindo else if, if e unless depois da expressão e atribuições dentro de um ramo.
Operadores bit a bit
Os números inteiros suportam os operadores bit-a-bit & (e), | (ou), xor, << (deslocar para a esquerda) e >> (mudar para a direita). As palavras maiúsculas AND, OR e XOR também funcionam. Estes são principalmente úteis para tarefas de programação, como valores de cores e permissões de arquivo.
12 & 10 resulta em 812 | 10 resulta em 1412 xor 10 resulta em 612 AND 10 resulta em 81 << 10 resulta em 1,0241024 >> 3 resulta em 128A resposta é mostrada como um número comum. Adicione to binary, in hex ou to octal para vê-lo na base em que você está trabalhando:
0o644 | 0o111 to octal resulta em 0o755colour = 0xFF8800(colour >> 8) & 0xFF resulta em 136Deslocamentos de bits são calculados antes de &, | e xor, mas os parênteses facilitam muito a leitura de expressões como a do exemplo de cores.
Combinando os recursos
Uma verificação mensal do orçamento que usa aritmética, comparações e lógica juntas:
# September budgettake home = £2,400rent = £1,050bills = £230groceries = 4 * £65 resulta em £260.00left over = take home - rent - bills - groceries resulta em £860.00rent / take home as % resulta em 43.75%left over > £500 resulta em trueleft over > £500 && rent <= take home * 45% resulta em trueEm groceries, a multiplicação vem antes da soma; em left over, as subtrações são feitas da esquerda para a direita. As duas últimas linhas verificam o orçamento: o resultado permanece true enquanto sobrarem mais de £500 e o aluguel não ultrapassar 45% do salário líquido. Ele muda para false assim que uma das condições deixar de ser satisfeita.