Operatori, confronti e condizioni
Questa pagina descrive i simboli e le parole che combinano i valori: operazioni aritmetiche e loro ordine di esecuzione, confronti che restituiscono true o false, operatori logici e bit a bit. Consultala quando una riga restituisce un numero diverso da quello previsto o vuoi che la nota verifichi una condizione, per esempio se stai rispettando il budget.
Aritmetica
| Operatore | Forme di scrittura | Esempio | Risultato |
|---|---|---|---|
| Addizione | +, plus |
£12.50 + £4.30 |
£16.80 |
| Sottrazione | -, −, minus |
£20 - £4.50 |
£15.50 |
| Moltiplicazione | *, ×, times, multiplied by, giustapposizione |
3 × £4.50, 2(3 + 4) |
£13.50, 14 |
| Divisione | /, ÷, divided by |
£60 / 4 |
£15.00 |
| Potenza | ^, **, to the power of, raised to, exponent |
2 ** 3, 2 raised to 10 |
8, 1,024 |
| Resto | mod, % (tra due numeri) |
50 mod 6, 50 % 6 |
2 |
| Radice quadrata | √, sqrt(...), square root of |
√144 |
12 |
| Al quadrato / al cubo | ², ³ |
3³ |
27 |
| Fattoriale | !, factorial(...) |
5!, factorial(5) |
120 |
Le operazioni aritmetiche funzionano con numeri senza unità, denaro e quantità con unità; il risultato conserva la valuta o l’unità:
£12.50 + £4.30 dà £16.803 * £4.50 dà £13.50£1,000 * 1.05^3 dà £1,157.636 times 7 dà 42100 minus 37.5 dà 62.5Giustapposizione significa tralasciare il *, come in 2(3 + 4) o 2π. Moltiplicazione implicita spiega quando funziona e quando no.
Ordine delle operazioni
I calcoli seguono il solito ordine della matematica scolastica:
- Parentesi.
- Fattoriali, come
5!. - Potenze, calcolate da destra a sinistra:
2^3^2equivale a2^9, cioè 512. - Un segno meno iniziale, applicato dopo la potenza:
-2^2è -4, mentre(-2)^2è 4. - Moltiplicazione, divisione e
mod, da sinistra a destra. - Addizione e sottrazione, da sinistra a destra.
Omettere * non cambia questo ordine: 2x^2 eleva x al quadrato prima di raddoppiarlo, come nelle formule dei libri di matematica.
La moltiplicazione viene quindi eseguita prima dell’addizione che la affianca: è facile dimenticarsene quando si sommano le voci di un conto.
£85 - £12.50 * 2 dà £60.00(£85 - £12.50) * 2 dà £145.00£120 / 4 / 2 dà £15.00In caso di dubbio, aggiungi le parentesi. Non fanno mai male e rendono la nota più facile da leggere in seguito.
Il simbolo di radice quadrata si applica al valore immediatamente successivo: √9 + 16 vale quindi 19. Per calcolare la radice di una somma, racchiudi l’intera espressione tra parentesi:
√(9 + 16) dà 5Resti
mod restituisce il resto della divisione. È utile per suddividere elementi in gruppi:
eggs = 50eggs mod 6 dà 2floor(eggs / 6) dà 8Cinquanta uova riempiono otto scatole da sei e ne avanzano due.
Anche % tra due numeri restituisce il resto, senza richiedere uno spazio prima del secondo numero: 50 % 6 e 50% 6 danno entrambi 2. Se non è seguito da nulla, % indica invece una percentuale (50%), come spiegato in Percentuali.
Fattoriali
Scrivi ! subito dopo un numero, un nome o una parentesi di chiusura per calcolarne il fattoriale:
5! dà 120runners = 4runners! dà 243! + 2 dà 85!=4 dà trueIl fattoriale viene calcolato prima della potenza adiacente: 2^3! equivale quindi a 2⁶, cioè 64. ! seguito da = continua a significare «diverso da», come mostra l’ultima riga. factorial(5) dà lo stesso risultato di 5!.
Confronto
==, !=, <, <=, > e >= confrontano due valori e restituiscono true o false. Funzionano con numeri senza unità, importi nella stessa valuta e quantità della stessa grandezza, anche espresse in unità diverse:
budget = £400spent = £365spent <= budget dà truespent == budget dà falsespent != budget dà true5 km == 5,000 m dà true90 min >= 1.5 hours dà true2 kg < 2,500 g dà trueLe unità vengono convertite prima del confronto: 1 mile > 1.5 km restituisce quindi true. Confrontare grandezze diverse, come chilogrammi e metri, genera l’errore incompatible units.
Limiti dei confronti
- Confronti concatenati. La forma
5 < x < 10non è supportata. Combina invece due confronti:5 < x && x < 10. - Simboli Unicode.
≠,≤e≥non vengono riconosciuti. Usa!=,<=e>=. - Date. Non puoi confrontare due date con
<o>. Sottraile e confronta la differenza con una durata:
deadline = 30 September 2026booked = 14 September 2026deadline - booked dà 2 weeks 2 daysdeadline - booked >= 7 days dà trueOperatori logici
Unisci i confronti con && (entrambi devono essere veri) o || (almeno uno deve essere vero). Le parole and e or funzionano allo stesso modo tra due confronti.
distance = 5 kmrun time = 27 mindistance >= 5 km && run time < 30 min dà truedistance >= 10 km || run time < 25 min dà falsedistance >= 10 km or run time < 30 min dà truetrue e false possono essere scritti direttamente e combinati con && e || :
true || false dà truetrue && false dà falseAlcune forme che potresti aspettarti non sono supportate:
andeorfunzionano solo tra confronti.true and falsenon funziona: scrivitrue && false.- Non esiste un operatore di negazione:
not truee!truenon funzionano. Confronta invece il risultato confalse, come in(spent > budget) == false. ornon fornisce un valore alternativo in caso di errore:1/0 or 5non restituisce 5.
Utilizzo dei confronti nei condizionali
Un confronto è particolarmente utile dentro if … then … else …, che sceglie un valore in base all’esito:
basket = £34.50if basket >= £40 then £0 else £3.99 dà £3.99Condizioni descrive la sintassi completa, compresi else if, if e unless dopo l’espressione e le assegnazioni all’interno di un ramo.
Operatori bit a bit
I numeri interi supportano gli operatori bit a bit & (e), | (o), xor, << (sposta a sinistra) e >> (sposta a destra). Funzionano anche le parole maiuscole AND, OR e XOR. Questi sono per lo più utili per attività di programmazione come i valori di colore e le autorizzazioni dei file.
12 & 10 dà 812 | 10 dà 1412 xor 10 dà 612 AND 10 dà 81 << 10 dà 1,0241024 >> 3 dà 128Il risultato viene visualizzato come un numero decimale. Aggiungi to binary, in hex o to octal per vederlo nella base che stai usando:
0o644 | 0o111 to octal dà 0o755colour = 0xFF8800(colour >> 8) & 0xFF dà 136Gli scorrimenti di bit vengono eseguiti prima di &, | e xor, ma le parentesi rendono molto più leggibile una riga come quella dell’esempio sui colori.
Un esempio completo
Un controllo mensile del budget che utilizza aritmetica, confronti e logica insieme:
# September budgettake home = £2,400rent = £1,050bills = £230groceries = 4 * £65 dà £260.00left over = take home - rent - bills - groceries dà £860.00rent / take home as % dà 43.75%left over > £500 dà trueleft over > £500 && rent <= take home * 45% dà trueIn groceries, la moltiplicazione precede le addizioni; in left over, le sottrazioni procedono da sinistra a destra. Le ultime due righe verificano il budget: il risultato resta true finché rimangono più di 500 £ e l’affitto non supera il 45% dello stipendio netto. Diventa false appena una delle due condizioni non è più rispettata.