Hướng dẫn dùng true true python
Nội dung chính Nội dung chính Nội dung chính
Kiểu Boolean trong Python là một trong những kiểu dữ liệu tích hợp sẵn của Python . Nó được sử dụng để biểu thị giá trị chân lý của một biểu thức. Ví dụ, biểu
thức Trong hướng dẫn này, bạn sẽ học cách:
Kiểu Boolean PythonKiểu Boolean trong Python chỉ có hai giá trị có thể có:
Không có giá trị nào khác sẽ có >>>
Của Kiểu >>>
Mặc dù có thể về mặt kỹ thuật, nhưng để tránh nhầm lẫn, bạn không nên gán một giá trị khác cho Python Booleans làm Từ khóaTên dựng sẵn không phải là từ khóa. Đối với ngôn ngữ Python, chúng là các biến thông thường . Nếu bạn gán cho chúng, thì bạn sẽ ghi đè giá trị tích hợp sẵn. Ngược lại, các tên Có thể gán giá trị Boolean cho các biến, nhưng không thể gán giá trị cho >>>
Vì >>>
You can’t assign to Python Booleans as NumbersBooleans are considered a numeric type in Python. This means they’re numbers for all intents and purposes. In other words, you can apply arithmetic operations to Booleans, and you can also compare them to numbers: >>>
There aren’t many uses for the numerical nature of Boolean values, but there’s one technique you may find helpful. Because For example, if you want to analyze a verse in a classic children’s poem to see what fraction of lines contain the word >>>
Tính tổng tất cả các giá trị trong một biểu thức trình
tạo như thế này cho phép bạn biết số lần Để xem tại sao điều này hoạt động, bạn có thể chia đoạn mã trên thành các phần nhỏ hơn: >>>
Các Vì Toán tử BooleanToán tử Boolean là những toán tử nhận đầu vào Boolean và trả về kết quả Boolean . Lưu ý: Sau đó, bạn sẽ thấy rằng các toán tử này có thể được cung cấp các đầu vào khác và không phải lúc nào cũng trả về kết quả Boolean. Hiện tại, tất cả các ví dụ sẽ sử dụng đầu vào và kết quả Boolean. Bạn sẽ thấy cách điều này tổng quát cho các giá trị khác trong phần về độ tin cậy . Vì các giá trị Boolean trong Python chỉ có hai tùy chọn khả thi, Như bạn sẽ thấy ở phần sau, trong một số tình huống, biết một đầu vào cho một toán tử là đủ để xác định giá trị của nó. Trong những trường hợp đó, đầu vào khác không được đánh giá. Đây được gọi là đánh giá ngắn mạch . Tầm quan trọng của việc đánh giá ngắn mạch phụ thuộc vào từng trường hợp cụ thể. Trong một số trường hợp, nó có thể ít ảnh hưởng đến chương trình của bạn. Trong các trường hợp khác, chẳng hạn như khi cần tính toán nhiều để đánh giá các biểu thức không ảnh hưởng đến kết quả, nó mang lại lợi ích hiệu suất đáng kể. Trong những trường hợp khắc nghiệt nhất, tính đúng đắn của mã của bạn có thể phụ thuộc vào việc đánh giá ngắn mạch. Các nhà khai thác không có đầu vàoBạn có thể nghĩ về Việc coi các giá trị Boolean trong Python như các toán
tử đôi khi rất hữu ích. Ví dụ: cách tiếp cận này giúp nhắc nhở bạn rằng chúng không phải là các biến. Vì lý do tương tự mà bạn không thể gán cho Chỉ có hai giá trị Boolean trong Python tồn tại. Toán tử Boolean không có đầu vào luôn trả về cùng một giá trị. Bởi vì điều này, Các notBoolean điều hànhToán tử Boolean duy nhất có một đối số là Bảng này minh họa >>>
Dòng cuối cùng cho thấy Bạn có thể tự hỏi tại sao không có toán tử Boolean nào khác nhận một đối số duy nhất. Để hiểu lý do tại sao, bạn có thể nhìn vào bảng hiển thị tất cả các toán tử Boolean về mặt lý thuyết có thể sử dụng một đối số:
Chỉ có bốn toán tử khả thi với một đối số. Ngoài ra
Không có toán tử nào khác có thể có với một đối số sẽ hữu ích. Các andBoolean điều hànhCác
Bảng này dài dòng. Tuy nhiên, nó minh họa hành vi tương tự như mô tả ở trên. Nếu Mã sau có đầu vào thứ hai có tác dụng phụ , in ra, để cung cấp một ví dụ cụ thể: >>>
Trong hai trường hợp cuối cùng, không có gì được in. Hàm không được gọi vì việc gọi nó không cần thiết để xác định giá trị của Một ví dụ trong đó hành vi này có thể quan trọng là trong mã có thể tạo ra các ngoại lệ: >>>
Hàm Ngược lại, Các orBoolean điều hànhGiá trị của
Bảng này dài dòng, nhưng nó có ý nghĩa tương tự như phần giải thích ở trên. Khi được sử dụng không chính thức, từ hoặc có thể có một trong hai nghĩa:
Khi Python diễn giải từ khóa Bởi vì nó sử dụng bao gồm hoặc , >>>
The second input isn’t evaluated by Other Boolean OperatorsThe mathematical theory of Boolean logic determines that no other operators beyond Trong thực tế, thậm chí có cả
hai Có mười sáu toán tử Boolean hai đầu vào có thể có. Ngoại trừ Toán tử so sánhMột số toán tử của Python kiểm tra xem liệu mối quan hệ có giữ giữa hai đối tượng hay không. Vì mối quan hệ giữ hoặc không giữ, các toán tử này, được gọi là toán tử so sánh , luôn trả về các giá trị Boolean. Các toán tử so sánh là nguồn phổ biến nhất của các giá trị Boolean. Bình đẳng và Bất bình đẳngCác toán tử so sánh phổ biến nhất là toán tử bình đẳng ( Toán tử bình đẳng ( Toán tử bình đẳng thường được sử dụng để so sánh các số: >>>
Bạn có thể đã sử dụng toán tử bình đẳng trước đây. Chúng là một số toán tử phổ biến
nhất trong Python. Đối với tất cả các đối tượng Python dựng sẵn và đối với hầu hết các lớp của bên thứ ba, chúng trả về giá trị Boolean : Lưu ý: Ngôn ngữ Python không thực thi điều đó Chỉ đứng sau toán tử bình đẳng phổ biến là toán tử bất bình đẳng ( Dưới đây là hai ví dụ về toán tử bất đẳng thức Python đang được sử dụng: >>>
Có lẽ điều đáng ngạc nhiên nhất về toán tử bất đẳng thức Python là thực tế là nó tồn tại ngay từ đầu. Rốt cuộc, bạn có thể đạt được kết quả tương tự như Tuy nhiên, bất bình đẳng được sử dụng thường xuyên đến mức cần có một nhà điều hành riêng cho nó. Trong các phiên bản cũ của Python,
trong Như một trò đùa của ngày Cá tháng Tư, Python vẫn hỗ trợ một cú pháp thay thế cho sự bất bình đẳng với việc >>>
Điều này không bao giờ được sử dụng trong bất kỳ mã nào dành cho mục đích sử dụng thực tế. Tuy nhiên, nó có thể hữu ích cho đêm đố Python tiếp theo của bạn. So sánh đơn hàngMột tập hợp các toán tử kiểm tra khác là các toán tử so sánh thứ tự . Có bốn toán tử so sánh đơn hàng có thể được phân loại theo hai chất lượng:
Vì hai lựa chọn là độc lập, bạn nhận được
Có hai lựa chọn về hướng đi và hai lựa chọn về sự nghiêm khắc. Điều này dẫn đến tổng cộng bốn toán tử so sánh đơn hàng. Các toán tử so sánh thứ tự không được xác định cho tất cả các đối tượng. Một số đối tượng không có thứ tự có ý nghĩa. Mặc dù các danh sách và bộ giá trị được sắp xếp theo thứ tự từ điển , nhưng từ điển không có thứ tự có ý nghĩa: >>>
Không rõ ràng từ điển nên được sắp xếp như thế nào. Theo Zen of Python , khi đối mặt với sự mơ hồ, Python từ chối đoán. Mặc dù chuỗi và số nguyên được sắp xếp riêng biệt, so sánh giữa các loại không được hỗ trợ: >>>
Một lần nữa, vì không có cách rõ ràng để xác định thứ tự, Python từ chối so sánh chúng. Điều này tương tự với toán tử cộng ( Khi các toán tử so sánh thứ tự được xác định, nói chung chúng trả về một Boolean. Lưu ý : Python không bắt buộc các toán tử so sánh trả về Booleans. Trong khi tất cả các đối tượng Python được tích hợp sẵn và hầu hết các đối tượng của bên thứ ba, trả về Boolean khi được so sánh, vẫn có những ngoại lệ. Ví dụ, các toán tử so sánh giữa các mảng NumPy hoặc gấu trúc DataFrames trả về mảng và DataFrames. Bạn sẽ thấy thêm về sự tương tác của các giá trị NumPy và Boolean ở phần sau trong hướng dẫn này. So sánh các số trong Python là một cách phổ biến để kiểm tra các điều kiện biên. Lưu ý rằng điều >>>
Các lập trình viên thường sử dụng các toán tử so sánh mà không nhận ra rằng chúng trả về một giá trị Python Boolean. Người isđiều hànhNgười Một cách sử dụng điển hình của >>>
Even though Keep in mind that the above examples show the The in OperatorThe >>>
Since Since strings are sequences of characters, you might expect them to also check for membership. In other words, characters that are members of the string will return >>>
Since >>>
Since Like the operators Chaining Comparison OperatorsComparison operators can form chains. You can create comparison operator chains by separating expressions with comparison operators to form a larger expression: The expression >>>
Since Chuỗi
so sánh này trả về >>>
Trong trường hợp này, các phần của chuỗi đánh giá theo các Boolean sau:
Điều này có nghĩa là một trong các kết quả là Bạn có thể kết hợp các loại và hoạt động trong một chuỗi so sánh miễn là các loại có thể được so sánh: >>>
Các toán tử không nhất thiết phải giống nhau. Thậm chí không phải tất cả các loại đều giống nhau. Trong các ví dụ trên, bạn có ba kiểu số:
Đây là ba kiểu số khác nhau, nhưng bạn có thể so sánh các đối tượng thuộc các kiểu số khác nhau mà không gặp vấn đề gì. Đánh giá chuỗi ngắn mạchNếu dây chuyền sử dụng ngầm định >>>
Mặc dù Python không thể so sánh thứ tự số nguyên và số chuỗi, nhưng sẽ Đánh giá ngắn mạch của chuỗi so sánh có thể ngăn ngừa các trường hợp ngoại lệ khác: >>>
Chia Một khía cạnh khác đó là quan trọng để hiểu về chuỗi so sánh là khi Python thực hiện đánh giá một yếu tố trong chuỗi, nó đánh giá nó một lần duy nhất: >>>
Bởi vì các yếu tố trung được đánh giá chỉ
một lần, nó không phải lúc nào cũng an toàn để cấu trúc lại Chains are especially useful for range checks, which confirm that a value falls within a given range. For example, in a daily invoice that includes the number hours worked, you might do the following: >>>
If there are Mixing Operators and ChainingUntil now, all our examples involved >>>
Because
Since both parts
are However, people who are used to other operators in Python may assume that, like other expressions involving multiple operators such as You can see why both evaluate to >>>
You can see above that The second expression works differently: >>>
Since Note: Don’t take the above The most important lesson to draw from this is that chaining comparisons with Like >>>
Để giảm thiểu sự nhầm lẫn, ví dụ này xâu chuỗi các phép so sánh với các toán tử
khác nhau và sử dụng Cuối cùng, bạn có thể xâu chuỗi >>>
Lưu ý rằng thứ tự của Thử nghiệm Boolean trong PythonCách sử dụng phổ biến nhất cho Python Boolean là trong một >>>
None dưới dạng Giá trị BooleanĐối tượng singleton Điều này thường hữu ích trong các Ví dụ: bạn có thể sử dụng >>>
Trong ví dụ này, danh sách sẽ không được tạo nếu Các số dưới dạng giá trị BooleanĐối với số, >>>
Tất cả các số nguyên khác không đều là trung thực. Điều này cũng đúng với các số dấu phẩy động , bao gồm các số dấu phẩy động đặc biệt như vô cực và Không phải là số (NaN) : >>>
Vì vô cực và NaN không bằng nhau nên So sánh bình đẳng và bất bình đẳng trên các số dấu phẩy động là các phép toán tinh tế. Vì làm >>>
Các phép tính số dấu phẩy động có thể không chính xác. Do đó, kết quả của số Python có nhiều kiểu số hơn trong thư viện chuẩn và chúng tuân theo các quy tắc tương tự. Đối với các kiểu số không cài sẵn, >>>
Như với số nguyên và số dấu phẩy động, phân số chỉ sai khi chúng bằng Các >>>
Con số Chuỗi dưới dạng giá trị BooleanNói chung, các đối tượng có >>>
Tất cả các đối tượng Python dựng sẵn có độ dài đều tuân theo quy tắc này. Sau đó, bạn sẽ thấy một số ngoại lệ đối với quy tắc này đối với các đối tượng không được tạo sẵn. Các loại khác dưới dạng giá trị BooleanTrừ khi các loại có một >>>
Các phương pháp cũng luôn trung thực. Bạn có thể gặp phải điều này nếu thiếu dấu ngoặc đơn khi bạn gọi một hàm hoặc phương thức: >>>
Điều này có thể xảy ra do dấu ngoặc đơn bị quên hoặc tài liệu gây hiểu lầm không đề cập đến việc bạn cần gọi hàm. Nếu bạn mong đợi một giá trị Boolean trong Python nhưng có một hàm trả về giá trị Boolean, thì nó sẽ luôn là trung thực. Theo mặc định, các loại do người dùng xác định luôn trung thực: >>>
Tạo một lớp trống làm cho mọi đối tượng của lớp đó là trung thực. Tất cả các đối tượng là trung thực trừ khi các phương thức đặc biệt được xác định. Nếu bạn muốn tạo một số trường hợp giả mạo lớp của mình, bạn có thể xác định >>>
Bạn cũng có thể sử dụng >>>
Câu Nếu bạn định nghĩa >>>
Trong ví dụ này, >>>
Định nghĩa >>>
Mặc dù Ví dụ: Mảng NumPyVí dụ trên có vẻ giống như điều gì đó chỉ xảy ra khi bạn viết một lớp nhằm chứng minh các trường hợp cạnh trong Python. Tuy nhiên, có thể nhận được kết quả tương tự bằng cách sử dụng một trong những thư viện phổ biến nhất trên PyPI : NumPy . Mảng , như số, là sai hoặc trung
thực tùy thuộc vào cách chúng so sánh với >>>
Mặc dù Khi mảng có nhiều hơn một phần tử, một số phần tử có thể là sai và một số có thể là trung thực. Trong những trường hợp đó, NumPy sẽ đưa ra một ngoại lệ: >>>
Ngoại lệ là quá dài dòng nên để dễ đọc, mã sử dụng xử lý văn bản để bao bọc các dòng. Một trường hợp cạnh thú vị hơn liên quan đến các mảng trống. Bạn có thể tự hỏi liệu những thứ đó là giả dối như các trình tự khác hay là sự thật bởi vì chúng không bằng Thật thú vị, không có tùy chọn nào trong số này là hoàn toàn đúng: >>>
Mặc dù các mảng trống hiện đang là sai , nhưng việc dựa vào hành vi này là rất nguy hiểm. Trong một số phiên bản NumPy trong tương lai, điều này sẽ đưa ra một ngoại lệ. Toán tử và Chức năngCó một vài nơi khác trong Python nơi thử nghiệm Boolean diễn ra. Một trong số đó là trong toán tử Boolean. Các nhà khai thác >>>
Bảng sự thật cho Trong trường hợp >>>
Các bảng sự thật vẫn đúng, nhưng giờ đây chúng xác định độ tin cậy của các kết quả, điều này phụ thuộc vào độ tin cậy của các đầu vào. Điều này có thể hữu ích khi bạn muốn đặt giá trị mặc định. Giả sử bạn có một hàm được gọi là Vì >>>
Ví dụ này tận dụng sự sai lệch của Các chức năng được tích hợp sẵn >>>
Trong dòng cuối cùng,
>>>
Trong dòng cuối cùng, Phần kết luậnPython Boolean là một kiểu dữ liệu được sử dụng phổ biến với nhiều ứng dụng hữu ích. Bạn có thể sử dụng Booleans với những hoạt động thích Trong hướng dẫn này, bạn đã học cách:
Bây giờ bạn biết cách đánh giá ngắn mạch hoạt động và nhận ra mối liên hệ giữa Booleans và |