Thủ thuật Python: Đơn giản hóa câu lệnh If & Đánh giá Boolean – python if tuyên bố boolean

Đánh giá boolean hoạt động như thế nào đối với các kiểu dữ liệu khác nhau hoặc các lớp tùy chỉnh? Làm thế nào có thể đánh giá boolean đơn giản nếu câu lệnh? Lập trình python hiệu quả

Bạn đang xem: python if tuyên bố boolean

Ảnh của Hitesh Choudhary trên Gỡ khóa

Thủ thuật Python: Đơn giản hóa câu lệnh If & amp; Đánh giá Boolean

Đánh giá boolean giúp rút gọn câu lệnh if như thế nào?

Chào mừng bạn đến với một loạt các bài đăng ngắn, mỗi bài có các thủ thuật Python hữu ích có thể giúp bạn trở thành một lập trình viên Python giỏi hơn. Trong blog này, chúng ta sẽ xem xét đánh giá boolean.

Tình huống

Giả sử chúng ta có một biến x và chúng ta muốn làm điều gì đó nếu một điều kiện nhất định được đáp ứng. Cách tiếp cận cơ bản sẽ như sau:

 

if x == condition:
print ("Các điều kiện đã đáp ứng!")
else:
print ("Các điều kiện không được đáp ứng!")

Với toán tử == , chúng tôi đang thực hiện đánh giá boolean xem x bằng điều kiện . Nhưng bạn có biết rằng không phải lúc nào chúng ta cũng cần gọi một cách rõ ràng đánh giá boolean để câu lệnh if hoạt động không?

Boolean Đánh giá Kiểu Số

Chúng ta đều biết rằng Đúng Sai trong Python có thể được biểu diễn dưới dạng 1 0 tương ứng là một số nguyên. Điều này có nghĩa là thay vì kiểm tra xem x có phải là 1 hay không, chúng ta chỉ cần thực hiện sau:

 

x = 1

# Điều này sẽ trả về True
nếu x:
print ("True")
else:
print ("Sai")

Trên thực tế, tất cả các số nguyên và float ngoại trừ 0 0.0 sẽ trả về True khi được đánh giá là boolean. (Có, ngay cả np.inf np.nan được đánh giá là Đúng )

 

cho x trong phạm vi (-10, 11):
print (f" {x}: {bool (x)} ") # Chỉ 0 là Sai

nhập numpy dưới dạng np
cho x trong np.arange (-10, 11, .5) :
print (f "{x}: {bool (x)}") # Chỉ 0,0 sẽ là Sai

print (bool (np.inf)) # True
print (bool (np.nan)) # True

Boolean Đánh giá Không có

Các hàm trích xuất thông tin từ đầu vào để trả về là khá phổ biến. Không có nếu không có gì có thể được trích xuất. Ví dụ về điều này là re.match :

 

nhập lại

match = re.match (r "Goodbye", "Hello, World!")
nếu đối sánh là Không:
print ("Không khớp.")
else:
print ("Đối sánh.")

Tuy nhiên, đôi khi nó có thể gây nhầm lẫn khi bạn có một loạt nếu x là
Không có
nếu x không là Không , v.v. Và đây là lúc sử dụng đánh giá boolean và gắn bó với một phương pháp nhất quán có thể giúp:

 

import re

match = re .match (r "Goodbye", "Hello, World!")
nếu khớp:
# khối này sẽ chạy nếu khớp không Không có
print ("Phù hợp.")
else: # khối này sẽ chạy nếu kết quả phù hợp là Không có
print ("Không khớp.")

Tùy thuộc vào sở thích của bạn, bạn có thể có nếu khớp hoặc nếu không khớp làm câu lệnh if của bạn. Chìa khóa ở đây là gắn bó và không kết hợp cả hai trong cùng một cơ sở mã. Ngoài ra, nếu bạn đang sử dụng Python 3.9 trở lên, bạn cũng có thể sử dụng toán tử Walrus để đơn giản hóa thêm đoạn mã trên:

 

nhập lại

if match: = re.match (r "Goodbye", "Hello, World!"):
# khối này sẽ chạy nếu khớp không Không có
print ("Phù hợp.")
else:
# khối này sẽ chạy nếu kết quả phù hợp là Không có
print ("Nó không khớp.")

Đánh giá Boolean về Lặp lại

Ngoài int , float Không có , cũng có thể đánh giá dict , set , list , tuple str dưới dạng boolean (Lưu ý rằng namestuple không nằm trong số đó). Cách đánh giá boolean hoạt động trên các tệp lặp này là với phương thức __ len__ tích hợp của chúng. Nghĩa là, độ dài của tệp có thể lặp lại sẽ được sử dụng làm bool. Áp dụng lại logic đánh giá boolean cho các kiểu số, giờ đây chúng ta cũng biết rằng các trường hợp đặc biệt sau là những trường hợp mà các vòng lặp được đánh giá là Sai :

 

print (bool (tuple ())) # Sai

print (bool (dict ())) # Sai

print (bool (set ())) # Sai

print (bool (list ())) # Sai

print (bool ("")) # Sai

Điều đó có nghĩa là thay vì làm:

 

x = [0, 1, 2, 3]

if len (x) & gt; 0:
print ("Danh sách không trống")
else:
print ("Danh sách trống")

Chúng ta có thể làm điều này:

< pre class = "no np nq nr gz ns bt nt">

x = [0, 1, 2, 3]

if x:
print (“Danh sách không trống”)
else:
print (“Danh sách trống”)

Đánh giá Boolean về Lớp học

Bây giờ chúng ta Biết phép đánh giá boolean đối với các cấu trúc dữ liệu phức tạp hơn phụ thuộc vào phương thức tích hợp sẵn __ len__ , chúng ta có thể mở rộng kiến ​​thức cho các lớp khác. Giả sử chúng ta có một lớp:

 

class Dummy:
def __init __ (self):
self .__ state = False

def toggle (self):
self .__ state = not self .__ state

def __len __ (self):
return self .__ state

Nếu chúng ta chạy các đoạn mã sau, chúng ta sẽ thấy cách đánh giá boolean của lớp Thay đổi giả:

d = Dummy ()

bool (d) # False

d.toggle ()
bool (d) # True

d.toggle ()
bool (d) # Sai

Lưu ý rằng việc gọi __ len__ sau khi thay đổi self .__ state sẽ ném ra một TypeError as Không có không thể được truyền vào int là kiểu mà __ len__ phải trả về.

Kết luận

Blog này đã thảo luận về cách đánh giá boolean hoạt động và nó có thể giúp đơn giản hóa câu lệnh if và làm cho cơ sở mã dễ bảo trì hơn. Tóm lại, đây là danh sách logic đánh giá boolean cho một số kiểu không phải boolean trong Python:

  • int : Sai if 0 , nếu không True
  • float : Sai nếu 0.0 , ngược lại Đúng
  • dict , set , list , tuple str : Sai nếu độ dài là 0 , nếu không thì Đúng
  • < li class = "oj ok jz lq b lr os lu ot lx ou mb ov mf ow mj oo op oq or gc" id = "f9ce"> Các lớp tùy chỉnh: Sai < / code> if __ len__ trả về 0 , ngược lại Đúng


Xem thêm những thông tin liên quan đến chủ đề python if tuyên bố boolean

Control Flow in Python - If Elif Else Statements

  • Tác giả: Programming with Mosh
  • Ngày đăng: 2018-11-06
  • Đánh giá: 4 ⭐ ( 8528 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Learn how to use if elif else statements in Python to control the flow of your programs.
    🔥Subscribe for more videos like this: https://goo.gl/6PYaGF
    🔥Python tutorial for beginners: https://youtu.be/yE9v9rt6ziw

    Python Exercises for Beginners:
    https://programmingwithmosh.com/python/python-exercises-and-questions-for-beginners/

    Python Cheat Sheet:
    https://programmingwithmosh.com/python/python-3-cheat-sheet/

    Want to learn more from me? Check out my blog and courses:

    http://programmingwithmosh.com
    https://www.facebook.com/programmingwithmosh/
    https://twitter.com/moshhamedani

Python boolean if statement

  • Tác giả: tutorial.eyehunts.com
  • Đánh giá: 3 ⭐ ( 2583 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Booleans represent one of two values: True or False. Is used in if statement in Python. If it's true execute the block of code or else skip..

Python

  • Tác giả: www.pythontutorial.net
  • Đánh giá: 5 ⭐ ( 4210 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Python Booleans

  • Tác giả: pythonguides.com
  • Đánh giá: 3 ⭐ ( 7555 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Learn about python Booleans, Python Boolean types, Where to use Boolean in python, Function return Boolean in python, True and false in python, and Boolean string in python.

8. Compound statements — Python 3.10.5 documentation

  • Tác giả: docs.python.org
  • Đánh giá: 3 ⭐ ( 4807 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Python Booleans

  • Tác giả: www.w3schools.com
  • Đánh giá: 5 ⭐ ( 8286 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Using a Boolean in an If-Statement in Python

  • Tác giả: stackoverflow.com
  • Đánh giá: 4 ⭐ ( 9277 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  Nhận một ký tự từ một chuỗi trong JavaScript - lấy ký tự từ chuỗi javascript