Оператори, порівняння й умови
Тут описано символи й слова для поєднання значень: арифметику, порядок дій, порівняння з відповіддю true або false, логічні й побітові оператори. Це допоможе зрозуміти неочікуваний результат або доручити нотатці перевірку, наприклад дотримання бюджету.
Арифметика
| Оператор | Варіанти запису | Приклад | Результат |
|---|---|---|---|
| Додавання | +, plus |
£12.50 + £4.30 |
£16.80 |
| Віднімання | -, −, minus |
£20 - £4.50 |
£15.50 |
| Множення | *, ×, times, multiplied by, запис поруч без знака |
3 × £4.50, 2(3 + 4) |
£13.50, 14 |
| Ділення | /, ÷, divided by |
£60 / 4 |
£15.00 |
| Піднесення до степеня | ^, **, to the power of, raised to, exponent |
2 ** 3, 2 raised to 10 |
8, 1,024 |
| Остача | mod, % (між двома числами) |
50 mod 6, 50 % 6 |
2 |
| Квадратний корінь | √, sqrt(...), square root of |
√144 |
12 |
| Квадрат / куб | ², ³ |
3³ |
27 |
| Факторіал | !, factorial(...) |
5!, factorial(5) |
120 |
Арифметика працює з числами без одиниць, грошима й величинами з одиницями, зберігаючи валюту чи одиницю у відповіді:
£12.50 + £4.30 дорівнює £16.803 * £4.50 дорівнює £13.50£1,000 * 1.05^3 дорівнює £1,157.636 times 7 дорівнює 42100 minus 37.5 дорівнює 62.5Неявне множення — це пропуск *, як у 2(3 + 4) або 2π. Розділ Неявне множення пояснює, коли це працює.
Порядок операцій
Обчислення дотримуються звичайного шкільного порядку:
- Дужки.
- Факторіали, як-от
5!. - Степені справа наліво:
2^3^2означає2^9, тобто 512. - Початковий мінус після піднесення до степеня:
-2^2дає −4, а(-2)^2— 4. - Множення, ділення й
modзліва направо. - Додавання й віднімання зліва направо.
Пропуск * не змінює порядку: 2x^2 спершу підносить x до квадрата, потім подвоює, як формула в підручнику.
Отже, множення виконується раніше за сусіднє додавання, про що легко забути, складаючи рахунок:
£85 - £12.50 * 2 дорівнює £60.00(£85 - £12.50) * 2 дорівнює £145.00£120 / 4 / 2 дорівнює £15.00Якщо сумніваєтеся, додайте дужки. Вони не завадять і полегшать подальше читання нотатки.
Знак квадратного кореня стосується значення відразу після нього, тому √9 + 16 дає 19. Для кореня із суми візьміть увесь вираз у дужки:
√(9 + 16) дорівнює 5Остачі
mod повертає остачу від ділення. Це зручно для розподілу на групи:
eggs = 50eggs mod 6 дорівнює 2floor(eggs / 6) дорівнює 8П’ятдесят яєць заповнюють вісім коробок по шість; два залишаються.
% між числами також означає остачу, навіть без пробілу: 50 % 6 і 50% 6 дають 2. % без значення після нього утворює відсоток (50%); див. Відсотки.
Факторіали
Поставте ! відразу після числа, імені чи закривальної дужки для факторіала:
5! дорівнює 120runners = 4runners! дорівнює 243! + 2 дорівнює 85!=4 дорівнює trueФакторіал обчислюється раніше за сусідній степінь: 2^3! означає 2⁶, тобто 64. ! перед = і далі означає «не дорівнює», як в останньому рядку. factorial(5) дає те саме, що й 5!.
Порівняння
==, !=, <, <=, > і >= порівнюють значення й повертають true або false. Працюють із числами без одиниць, сумами в одній валюті та величинами одного фізичного змісту, навіть у різних одиницях:
budget = £400spent = £365spent <= budget дорівнює truespent == budget дорівнює falsespent != budget дорівнює true5 km == 5,000 m дорівнює true90 min >= 1.5 hours дорівнює true2 kg < 2,500 g дорівнює trueПеред порівнянням одиниці перетворюються: 1 mile > 1.5 km дає true. Несумісні величини, наприклад кілограми й метри, спричиняють incompatible units.
Чого порівняння не роблять
- Ланцюжки.
5 < x < 10не підтримується. Поєднайте два порівняння:5 < x && x < 10. - Символи Unicode.
≠,≤і≥не розпізнаються. Використовуйте!=,<=та>=. - Дати. Дві дати не можна порівнювати через
<або>. Відніміть їх і порівняйте різницю з тривалістю:
deadline = 30 September 2026booked = 14 September 2026deadline - booked дорівнює 2 weeks 2 daysdeadline - booked >= 7 days дорівнює trueЛогічні оператори
Поєднуйте порівняння через && (обидва істинні) або || (хоча б одне істинне). Слова and та or між двома порівняннями працюють так само.
distance = 5 kmrun time = 27 mindistance >= 5 km && run time < 30 min дорівнює truedistance >= 10 km || run time < 25 min дорівнює falsedistance >= 10 km or run time < 30 min дорівнює truetrue і false можна писати безпосередньо та поєднувати через && і ||:
true || false дорівнює truetrue && false дорівнює falseДеякі очікувані форми не підтримуються:
andтаorпрацюють лише між порівняннями.true and falseне працює; пишітьtrue && false.- Оператора заперечення немає:
not trueі!trueне працюють. Натомість порівнюйте зfalse, наприклад(spent > budget) == false. orне підставляє запасне значення при помилці:1/0 or 5не дає 5.
Використання порівнянь в умовах
Порівняння найкорисніше всередині if … then … else …, що вибирає значення за результатом умови:
basket = £34.50if basket >= £40 then £0 else £3.99 дорівнює £3.99Повний синтаксис, зокрема else if, постфіксні if та unless і присвоєння всередині гілки, описано в розділі Умови.
Побітові оператори
Цілі числа підтримують побітові оператори & (І), | (АБО), xor (виключне АБО), << (зсув ліворуч) і >> (зсув праворуч). Великі слова AND, OR та XOR також працюють. Це переважно корисно для програмування, наприклад кольорів і прав доступу до файлів.
12 & 10 дорівнює 812 | 10 дорівнює 1412 xor 10 дорівнює 612 AND 10 дорівнює 81 << 10 дорівнює 1,0241024 >> 3 дорівнює 128Відповідь показується звичайним числом. Додайте to binary, in hex або to octal для потрібної системи числення:
0o644 | 0o111 to octal дорівнює 0o755colour = 0xFF8800(colour >> 8) & 0xFF дорівнює 136Зсуви обчислюються раніше за &, | і xor, але дужки роблять записи на кшталт прикладу з кольором зрозумілішими.
Поєднання можливостей
Перевірка місячного бюджету, що поєднує арифметику, порівняння й логіку:
# September budgettake home = £2,400rent = £1,050bills = £230groceries = 4 * £65 дорівнює £260.00left over = take home - rent - bills - groceries дорівнює £860.00rent / take home as % дорівнює 43.75%left over > £500 дорівнює trueleft over > £500 && rent <= take home * 45% дорівнює trueУ groceries множення виконується перед додаванням, а left over віднімає зліва направо. Останні два рядки перевіряють умови: відповідь залишається true, поки залишок більший за £500, а оренда не перевищує 45 % чистого доходу; вона стає false, щойно одна з умов порушується.