Bitwise và toán tử trong python là gì?
Trong phần trước, chúng ta đã bắt đầu xem xét ngữ nghĩa của các biến và đối tượng Python; . Đến cuối phần này, bạn sẽ có các công cụ cơ bản để bắt đầu so sánh và thao tác trên dữ liệu trong Python Show
Các phép tính toán họcPython thực hiện bảy toán tử số học nhị phân cơ bản, hai trong số đó có thể nhân đôi dưới dạng toán tử đơn nguyên. Chúng được tóm tắt trong bảng sau OperatorNameDescription# Floor division print(11 // 2)9AdditionSum of 50 and 51 52SubtractionDifference of 50 and 51 55MultiplicationProduct of 50 and 51 58True divisionQuotient of 50 and 51 521Floor divisionQuotient of 50 and 51, removing fractional parts 524ModulusInteger remainder after division of 50 by 51 527Exponentiation 50 raised to the power of 51 510NegationThe negative of 50 512Unary plus 50 unchanged (rarely used) Các toán tử này có thể được sử dụng và kết hợp theo cách trực quan, sử dụng dấu ngoặc đơn tiêu chuẩn để nhóm các hoạt động. Ví dụ Trong 1] 55 Ra[1] 56 Phép chia tầng là phép chia thực có phần phân số bị cắt bớt Trong 2] 57 58 Trong 3] # Floor division print(11 // 2) 5 Toán tử chia tầng đã được thêm vào Python 3; Cuối cùng, tôi sẽ đề cập đến toán tử số học thứ tám đã được thêm vào Python 3. 5. toán tử 515, dùng để chỉ ra tích ma trận của 50 và 51, để sử dụng trong các gói đại số tuyến tính khác nhau Hoạt động theo bitNgoài các phép toán số tiêu chuẩn, Python bao gồm các toán tử để thực hiện các phép toán logic bit trên số nguyên. Chúng ít được sử dụng hơn nhiều so với các phép toán số học tiêu chuẩn, nhưng thật hữu ích khi biết rằng chúng tồn tại. Sáu toán tử bitwise được tóm tắt trong bảng sau Toán tử TênMô tả518Bitwise ANDBits được xác định bằng cả 50 và 51____381Bitwise ORBits được xác định bằng 50 hoặc 51 hoặc cả hai 584Bitwise XORBits được xác định bằng 50 hoặc 51 nhưng không phải cả hai 587Bit shift left Dịch chuyển bit của 50 sang trái bởi 51 đơn vị 570Bit shift phảiShift bit của 50 sang phải bằng 51 đơn vị 573Bitwise negation của NOT10 Các toán tử bitwise này chỉ có ý nghĩa về mặt biểu diễn nhị phân của các số mà bạn có thể thấy bằng cách sử dụng hàm 575 tích hợp Trong [4] 52 Ra[4] 51 Kết quả có tiền tố là 576, biểu thị biểu diễn nhị phân. Các chữ số còn lại cho biết số 10 được biểu thị dưới dạng tổng $1 \cdot 2^3 + 0 \cdot 2^2 + 1 \cdot 2^1 + 0 \cdot 2^0$. Tương tự, chúng ta có thể viết Trong [5] 58 Ra[5] 57 Bây giờ, sử dụng OR theo bit, chúng ta có thể tìm số kết hợp các bit của 4 và 10 Trong [6] 560 Ra[6] 561 Trong [7] 562 Ra[7] 563 Các toán tử bitwise này không hữu ích ngay lập tức như các toán tử số học tiêu chuẩn, nhưng sẽ hữu ích nếu bạn nhìn thấy chúng ít nhất một lần để hiểu chúng thực hiện loại phép toán nào. Đặc biệt, người dùng từ các ngôn ngữ khác đôi khi bị cám dỗ sử dụng XOR (i. e. , 584) khi chúng thực sự có nghĩa là lũy thừa (i. e. , 527) Hoạt động chuyển nhượngChúng ta đã thấy rằng các biến có thể được gán với toán tử " 579" và các giá trị được lưu trữ để sử dụng sau này. Ví dụ Trong [8] 564 565 Chúng ta có thể sử dụng các biến này trong các biểu thức với bất kỳ toán tử nào đã đề cập trước đó. Ví dụ, để thêm 2 vào 50, chúng ta viết Trong [9] 566 Ra[9] 567 Chúng tôi có thể muốn cập nhật biến 50 với giá trị mới này; . Bởi vì loại phép toán và phép gán kết hợp này rất phổ biến, Python bao gồm các toán tử cập nhật tích hợp sẵn cho tất cả các phép toán số học Trong [10] 568 569 Có một toán tử gán tăng cường tương ứng với từng toán tử nhị phân được liệt kê trước đó; 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 Mỗi cái tương đương với phép toán tương ứng theo sau là phép gán. nghĩa là, đối với bất kỳ toán tử nào " 5615", biểu thức 5616 tương đương với 5617, với một chút bắt. Đối với các đối tượng có thể thay đổi như danh sách, mảng hoặc DataFrames, các hoạt động gán tăng cường này thực sự khác biệt một cách tinh tế so với các đối tác dài dòng hơn của chúng. họ sửa đổi nội dung của đối tượng ban đầu thay vì tạo một đối tượng mới để lưu trữ kết quả Hoạt động so sánhMột loại hoạt động khác có thể rất hữu ích là so sánh các giá trị khác nhau. Đối với điều này, Python thực hiện các toán tử so sánh tiêu chuẩn, trả về các giá trị Boolean 5618 và 5619. Các hoạt động so sánh được liệt kê trong bảng sauOperationDescriptionOperationDescription 5620 50 bằng 51 5623 50 không bằng 51 5626 50 nhỏ hơn 51 5629 50 lớn hơn 51 5632 50 nhỏ hơn hoặc bằng 51 5635 50 lớn hơn hoặc bằng 51 Các toán tử so sánh này có thể được kết hợp với các toán tử số học và bitwise để thể hiện phạm vi kiểm tra gần như vô hạn cho các số. Ví dụ: chúng ta có thể kiểm tra xem một số có phải là số lẻ hay không bằng cách kiểm tra xem mô đun với 2 có trả về 1 không Trong [11] 570 Ra[11] 571 Trong [12] 572 Ra[12] 573 Chúng ta có thể xâu chuỗi nhiều phép so sánh lại với nhau để kiểm tra các mối quan hệ phức tạp hơn Trong [13] 574 Ra[13] 571 Và, chỉ để làm bạn đau đầu một chút, hãy xem sự so sánh này Trong [14] 576 Ra[14] 571 Nhớ lại rằng 5638 là toán tử lật bit và rõ ràng khi bạn lật tất cả các bit bằng 0, bạn sẽ có -1. Nếu bạn tò mò về lý do tại sao lại như vậy, hãy tra cứu sơ đồ mã hóa số nguyên bổ sung của cả hai, đây là cách mà Python sử dụng để mã hóa các số nguyên có dấu và nghĩ xem điều gì sẽ xảy ra khi bạn bắt đầu lật tất cả các bit của số nguyên được mã hóa theo cách này Hoạt động BooleanKhi làm việc với các giá trị Boolean, Python cung cấp các toán tử để kết hợp các giá trị bằng cách sử dụng các khái niệm chuẩn về "và", "hoặc" và "không". Có thể dự đoán, các toán tử này được biểu thị bằng các từ 5639, 5640 và 5641 Trong [15] 578 Ra[15] 571 Trong [16] 580 Ra[16] 571 Trong [17] 582 Ra[17] 573 Những người hâm mộ đại số Boolean có thể nhận thấy rằng toán tử XOR không được bao gồm; . Mặt khác, một thủ thuật thông minh mà bạn có thể sử dụng để XOR các giá trị Boolean như sau Trong [18] 584 Hết[18] 573 Các loại phép toán Boolean này sẽ trở nên cực kỳ hữu ích khi chúng ta bắt đầu thảo luận về các câu lệnh luồng điều khiển như điều kiện và vòng lặp Một điều đôi khi khó hiểu về ngôn ngữ này là khi nào sử dụng toán tử Boolean ( 5639, 5640, 5641) và khi nào sử dụng phép toán bitwise ( 5645, 5646, 5638). Câu trả lời nằm trong tên của họ. Các toán tử Boolean nên được sử dụng khi bạn muốn tính toán các giá trị Boolean (i. e. , đúng hay sai) của toàn bộ câu lệnh. Các thao tác bitwise nên được sử dụng khi bạn muốn thao tác trên các bit riêng lẻ hoặc các thành phần của các đối tượng được đề cập Toán tử nhận dạng và thành viênGiống như 5639, 5640 và 5641, Python cũng chứa các toán tử giống như văn xuôi để kiểm tra danh tính và tư cách thành viên. Họ là những người sau đâyToán tửMô tả 5651True nếu 50 và 51 là các đối tượng giống hệt nhau 5654True nếu 50 và 51 không phải là đối tượng giống hệt nhau 5657True nếu 50 là thành viên của 51 5660True nếu 50 không phải là thành viên của 51 toán tử nhận dạng. "______2663" và "______2664"Các toán tử nhận dạng, " 5663" và "______2664" kiểm tra danh tính đối tượng. Danh tính đối tượng khác với bình đẳng, như chúng ta có thể thấy ở đây Trong 19] 586 Trong 20] 587 Hết[20] 571 Trong [21] 589 Hết[21] 573 Trong [22] # Floor division print(11 // 2)1 Hết[22] 571 Các đối tượng giống hệt nhau trông như thế nào? Trong [23] # Floor division print(11 // 2)3 Hết[23] 571 Sự khác biệt giữa hai trường hợp ở đây là trong trường hợp đầu tiên, 50 và 51 trỏ đến các đối tượng khác nhau, trong khi ở trường hợp thứ hai, chúng trỏ đến cùng một đối tượng. Như chúng ta đã thấy trong phần trước, biến Python là con trỏ. Toán tử "______2663" kiểm tra xem hai biến có đang trỏ đến cùng một vùng chứa (đối tượng) hay không, thay vì đề cập đến những gì vùng chứa chứa. Với suy nghĩ này, trong hầu hết các trường hợp, người mới bắt đầu muốn sử dụng " 5663", ý nghĩa thực sự của chúng là 5671 nhà khai thác thành viênToán tử thành viên kiểm tra tư cách thành viên trong các đối tượng phức hợp. Vì vậy, ví dụ, chúng ta có thể viết Trong [24] # Floor division print(11 // 2)5 Ra[24] 571 Trong [25] # Floor division print(11 // 2)7 Hết[25] 573 Các hoạt động thành viên này là một ví dụ về những gì làm cho Python dễ sử dụng so với các ngôn ngữ cấp thấp hơn như C. Trong C, tư cách thành viên thường được xác định bằng cách xây dựng thủ công một vòng lặp trên danh sách và kiểm tra sự bằng nhau của từng giá trị. Trong Python, bạn chỉ cần nhập những gì bạn muốn biết, theo cách gợi nhớ đến văn xuôi tiếng Anh đơn giản Toán tử của bitwise và là gì?Toán tử AND theo bit ( & ) so sánh từng bit của toán hạng thứ nhất với bit tương ứng của toán hạng thứ hai . Nếu cả hai bit là 1, bit kết quả tương ứng được đặt thành 1. Mặt khác, bit kết quả tương ứng được đặt thành 0. Cả hai toán hạng cho toán tử AND theo bit phải có các kiểu tích phân.
Toán tử and trong Python là gì?Python và toán tử cho phép bạn xây dựng các biểu thức Boolean phức hợp mà bạn có thể sử dụng để quyết định tiến trình hành động của chương trình . Bạn có thể sử dụng toán tử and để giải quyết một số vấn đề cả trong ngữ cảnh Boolean hoặc không phải Boolean.
&& Có phải là toán tử Bitwise không?Toán tử Bitwise And được biểu thị là '&' và toán tử logic được biểu thị là '&&' . Sau đây là một số khác biệt cơ bản giữa hai toán tử. a) Toán tử logic và toán tử '&&' mong đợi các toán hạng của nó là các biểu thức boolean (1 hoặc 0) và trả về một giá trị boolean.
Sự khác biệt giữa logic && và bitwise & là gì?Toán tử logic AND hoạt động trên các biểu thức Boolean và chỉ trả về các giá trị Boolean. Toán tử bitwise AND hoạt động trên dữ liệu kiểu int integer, short int, long, unsigned int và cũng trả về kiểu dữ liệu đó |