Toán tử, so sánh và điều kiện
Trang này bao gồm các ký hiệu và từ kết hợp các giá trị: số học, thứ tự mà nó được thực hiện, so sánh trả lời true hoặc false, và các toán tử logic và bit. Sử dụng trang này khi một dòng đưa ra một số khác với số bạn mong đợi hoặc khi bạn muốn một ghi chú để kiểm tra điều gì đó cho bạn, chẳng hạn như liệu bạn có còn trong ngân sách hay không.
Số học
| Toán tử | Chính tả | Ví dụ | Kết quả |
|---|---|---|---|
| Cộng | +, plus |
£12.50 + £4.30 |
£16.80 |
| Trừ | -, −, minus |
£20 - £4.50 |
£15.50 |
| Nhân | *, ×, times, multiplied by, đặt cạnh |
3 × £4.50, 2(3 + 4) |
£13.50, 14 |
| Chia | /, ÷, divided by |
£60 / 4 |
£15.00 |
| Lũy thừa | ^, **, to the power of, raised to, exponent |
2 ** 3, 2 raised to 10 |
8, 1,024 |
| Số dư | mod, % (giữa hai số) |
50 mod 6, 50 % 6 |
2 |
| Căn bậc hai | √, sqrt(...), square root of |
√144 |
12 |
| Bình phương / lập phương | ², ³ |
3³ |
27 |
| Giai thừa | !, factorial(...) |
5!, factorial(5) |
120 |
Số học hoạt động trên các số đơn giản, tiền và số lượng với các đơn vị, và câu trả lời giữ tiền tệ hoặc đơn vị:
£12.50 + £4.30 cho kết quả £16.803 * £4.50 cho kết quả £13.50£1,000 * 1.05^3 cho kết quả £1,157.636 times 7 cho kết quả 42100 minus 37.5 cho kết quả 62.5Viết liền các thành phần nghĩa là bỏ dấu *, như trong 2(3 + 4) hoặc 2π. Phép nhân ngầm giải thích khi nào cách viết này dùng được và khi nào không.
Thứ tự thực hiện phép tính
Các phép tính theo thứ tự thông thường từ toán học ở trường:
- Dấu ngoặc.
- Giai thừa, như
5!. - Lũy thừa, tính từ phải sang trái:
2^3^2là2^9, bằng 512. - Dấu trừ hàng đầu, được áp dụng sau lũy thừa:
-2^2là -4, trong khi(-2)^2là 4. - Phép nhân, phép chia và
mod, từ trái sang phải. - Phép cộng và phép trừ, từ trái sang phải.
Bỏ * không thay đổi thứ tự này, vì vậy 2x^2 bình phương x trước khi nhân đôi nó, theo cách hoạt động của một công thức sách giáo khoa.
Điều đó có nghĩa là phép nhân xảy ra trước phép cộng bên cạnh nó, khiến mọi người không biết khi cộng hóa đơn:
£85 - £12.50 * 2 cho kết quả £60.00(£85 - £12.50) * 2 cho kết quả £145.00£120 / 4 / 2 cho kết quả £15.00Nếu chưa chắc, hãy thêm ngoặc. Chúng không gây hại và giúp bạn dễ đọc lại ghi chú về sau.
Dấu căn bậc hai áp dụng cho giá trị ngay sau nó, nên √9 + 16 bằng 19. Đặt toàn bộ biểu thức trong ngoặc để lấy căn của một tổng:
√(9 + 16) cho kết quả 5Số dư
mod cho những gì còn lại sau khi chia. Nó rất hữu ích để chia mọi thứ thành các nhóm:
eggs = 50eggs mod 6 cho kết quả 2floor(eggs / 6) cho kết quả 8Năm mươi quả trứng lấp đầy tám hộp sáu cái, còn lại hai cái.
% giữa hai số cũng là phần dư, ngay cả khi không có khoảng trắng trước số thứ hai: 50 % 6 và 50% 6 đều cho kết quả là 2. Một % không có gì sau nó tạo thành một phần trăm (50%), được đề cập trong Phần trăm.
Giai thừa
Đặt ! ngay sau số, tên hoặc dấu ngoặc đóng để lấy giai thừa:
5! cho kết quả 120runners = 4runners! cho kết quả 243! + 2 cho kết quả 85!=4 cho kết quả trueHàm giai thừa được tính toán trước một lũy thừa đứng cạnh nó, vì vậy 2^3! là 2⁶, tức là 64. ! theo sau bởi = vẫn là "không bằng nhau", như dòng cuối cùng cho thấy. factorial(5) cho kết quả giống như 5!.
So sánh
==, !=, <, <=, > và >= so sánh hai giá trị và trả về true hoặc false. Chúng dùng được với số không kèm đơn vị, số tiền cùng loại tiền tệ, và các đại lượng cùng loại kể cả khi khác đơn vị:
budget = £400spent = £365spent <= budget cho kết quả truespent == budget cho kết quả falsespent != budget cho kết quả true5 km == 5,000 m cho kết quả true90 min >= 1.5 hours cho kết quả true2 kg < 2,500 g cho kết quả trueĐơn vị được chuyển đổi trước khi so sánh, nên 1 mile > 1.5 km là true. So sánh các đại lượng khác loại, như kilôgam với mét, gây lỗi incompatible units.
Những thứ so sánh không làm
- Chuỗi.
5 < x < 10không được hỗ trợ. Thay vào đó hãy kết hợp hai so sánh:5 < x && x < 10. - Các ký hiệu Unicode.
≠,≤và≥không được nhận diện. Sử dụng!=,<=và>=. - Ngày tháng. Bạn không thể so sánh hai ngày với
<hoặc>. Trừ chúng và so sánh sự khác biệt với một khoảng thời gian:
deadline = 30 September 2026booked = 14 September 2026deadline - booked cho kết quả 2 weeks 2 daysdeadline - booked >= 7 days cho kết quả trueToán tử logic
Kết hợp các phép so sánh với && (cả hai phải đúng) hoặc || (ít nhất một trong hai phải đúng). Các từ and và or hoạt động giống nhau giữa hai phép so sánh.
distance = 5 kmrun time = 27 mindistance >= 5 km && run time < 30 min cho kết quả truedistance >= 10 km || run time < 25 min cho kết quả falsedistance >= 10 km or run time < 30 min cho kết quả truetrue và false có thể được viết trực tiếp và kết hợp với && và ||:
true || false cho kết quả truetrue && false cho kết quả falseMột số biểu mẫu bạn có thể mong đợi không được hỗ trợ:
andvàorchỉ hoạt động giữa các phép so sánh.true and falsekhông hoạt động; hãy viếttrue && false.- Không có toán tử phủ định:
not truevà!truekhông hoạt động. Hãy so sánh vớifalsethay vào đó, như trong(spent > budget) == false. orkhông phải là phương án dự phòng cho các lỗi:1/0 or 5không cho ra 5.
Sử dụng so sánh trong điều kiện
Việc so sánh hữu ích nhất trong phần if … then … else …, phần này chọn một giá trị tùy thuộc vào câu trả lời:
basket = £34.50if basket >= £40 then £0 else £3.99 cho kết quả £3.99Conditionals bao gồm cú pháp đầy đủ, bao gồm else if, hậu tố if và unless, và gán bên trong một nhánh.
Toán tử trên bit
Các số nguyên hỗ trợ các toán tử bit & (và), | (hoặc), xor, << (chuyển sang trái) và >> (chuyển sang phải). Các từ viết hoa AND, OR và XOR cũng hoạt động. Chúng chủ yếu hữu ích cho các tác vụ lập trình như giá trị màu sắc và quyền truy cập tệp.
12 & 10 cho kết quả 812 | 10 cho kết quả 1412 xor 10 cho kết quả 612 AND 10 cho kết quả 81 << 10 cho kết quả 1,0241024 >> 3 cho kết quả 128Câu trả lời được hiển thị dưới dạng một số thông thường. Thêm to binary, in hex hoặc to octal để xem nó trong cơ sở bạn đang làm việc:
0o644 | 0o111 to octal cho kết quả 0o755colour = 0xFF8800(colour >> 8) & 0xFF cho kết quả 136Phép dịch bit được tính trước &, | và xor, nhưng thêm ngoặc giúp những dòng như ví dụ về màu dễ hiểu hơn nhiều.
Kết hợp các phần
Kiểm tra ngân sách hàng tháng sử dụng số học, so sánh và logic cùng nhau:
# September budgettake home = £2,400rent = £1,050bills = £230groceries = 4 * £65 cho kết quả £260.00left over = take home - rent - bills - groceries cho kết quả £860.00rent / take home as % cho kết quả 43.75%left over > £500 cho kết quả trueleft over > £500 && rent <= take home * 45% cho kết quả trueTrong groceries, phép nhân được tính trước mọi phép cộng; left over thực hiện phép trừ từ trái sang phải. Hai dòng cuối biến ghi chú thành công cụ kiểm tra: kết quả giữ là true khi còn hơn £500 và tiền thuê nhà không vượt 45% thu nhập thực nhận, rồi chuyển thành false ngay khi một trong hai điều kiện không còn đúng.