Cách xác thực các chuỗi bằng Boolean trong Python

Boolean là một khái niệm quan trọng trong lập trình. Ở bài viết này, hãy cùng Download.vn tìm hiểu cách dùng Boolean để xử lý các chuỗi trong Python nhé!

Cách dùng Python

Python

Một string trong Python là một chuỗi các ký tự. Bạn có thể thực hiện nhiều hành động khác nhau trên các chuỗi (string) bằng cách dùng một nhóm những phương pháp có sẵn. Các kiểu boolean của chuỗi là một tập hợp phụ của các phương pháp đó, được dùng để kiểm tra xem chuỗi được đưa ra có tuân thủ các quy tắc hay không.

Giờ hãy cùng tìm hiểu cách dùng một số phương pháp Boolean trong Python 3 để xử lý chuỗi hiệu quả hơn.

Cách kiểm tra một chuỗi chỉ chứa các ký tự chữ và số

Bạn có thể kiểm tra chuỗi được đưa ra chỉ chứa các ký tự chữ và số hay không bằng phương pháp isalnum().

Phương pháp này trả về True nếu tất cả các ký tự đều là số và chữ, bao gồm (A-Z), (a-z) và (0-9). Nếu bất kỳ ký tự nào trong chuỗi không phải ký tự trên, phương pháp này trả về False.

Ví dụ:

str1 = "WelcomeToMUO"
# This method will return "True" as all the characters are alphanumeric
checkstr1 = str1.isalnum()
print(checkstr1)
str2 = "Welcome To MUO"
# This method will return "False" as the string have 2 whitespaces which are not alphanumeric
checkstr2 = str2.isalnum()
print(checkstr2)
str3 = "#WelcomeToMUO"
# This method will return "False" as the string have a special character "#" which is not alphanumeric
checkstr3 = str3.isalnum()
print(checkstr3)
str4 = "274962472"
# This method will return "True" as all the characters are alphanumeric
checkstr4 = str4.isalnum()
print(checkstr4)
str5 = "Welcome2MUO"
# This method will return "True" as all the characters are alphanumeric
checkstr5 = str5.isalnum()
print(checkstr5)

Kết quả:

True
False
False
True
True

Cách kiểm tra mỗi chuỗi chỉ chứa các ký tự bằng chữ

Bạn có thể kiểm tra xem chuỗi đưa ra chỉ chứa chữ hay không bằng phương pháp isalpha(). Phương pháp này trả về True nếu tất cả ký tự đều là chữ cái từ A-Z và a-z. Nếu có bất kỳ ký tự nào trong chuỗi không phải chữ, phương pháp này trả về False.

Ví dụ:

str1 = "WelcomeToMUO"
# This method will return "True" as all the characters are alphabetic
checkstr1 = str1.isalpha()
print(checkstr1)
str2 = "Welcome To MUO"
# This method will return "False" as the string have 2 whitespaces which are not alphabetic
checkstr2 = str2.isalpha()
print(checkstr2)
str3 = "#WelcomeToMUO"
# This method will return "False" as the string have a special character "#" which is not alphabetic
checkstr3 = str3.isalpha()
print(checkstr3)
str4 = "274962472"
# This method will return "False" as all the characters are not alphabetic
checkstr4 = str4.isalpha()
print(checkstr4)
str5 = "Welcome2MUO"
# This method will return "False" as the string has a digit "2" which is not alphabetic
checkstr5 = str5.isalpha()
print(checkstr5)

Kết quả:

True
False
False
False
False

Cách kiểm tra toàn bộ ký tự trong chuỗi là số thập phân, chữ số hay số

Bạn có thể kiểm tra xem chuỗi được đưa ra chỉ bao gồm ký tự thập phân, số hoặc chữ số hay không bằng các phương pháp isdecimal(), isdigit() và isnumeric() tương ứng. Tất cả 3 phương pháp này đều tương tự như nhau nhưng chúng có những điểm khác biệt chính sau:

  • isdecimal(): Các ký tự thập phân có thể được dùng để tạo thành số theo cơ số 10, ví dụ: U+0660, ARABIC-INDIC DIGIT ZERO. Về mặt hình thức, một ký tự thập phân là ký tự dưới dạng Unicode General Category “Nd”.
  • isdigit(): Chữ số bao gồm các ký tự thập phân và cần được xử lý đặc biệt, chẳng hạn như các chỉ số trên khả năng tương thích. Điều này bao gồm các chữ số không thể được dùng để tạo thành số trong cơ số 10, chẳng hạn như số Kharosthi. Về mặt hình thức, một chữ số là ký tự có giá trị thuộc tính Numeric_Type=Digit hoặc Numeric_Type=Decimal.
  • isnumeric(): Các ký tự số bao gồm những ký tự chữ số và tất cả ký tự có thuộc tính giá trị số Unicode, ví dụ: U+2155, VULGAR FRACTION ONE FIFTH. Về mặt hình thức, các ký tự số là những ký tự có giá trị thuộc tính Numeric_Type = Digit, Numeric_Type = Decimal hoặc Numeric_Type = Numeric.

Theo định nghĩa, mối quan hệ giữa 3 phương pháp này có thể được trình bày như sau:

isdecimal() ⊆ isdigit() ⊆ isnumeric()

Điều đó có nghĩa, nếu một chuỗi là số thập phân thì nó cũng có thể là số và chữ số.

Ví dụ:

# Digits
str1 = "8734947"
print("str1:")
print("str1.isdecimal() : ",str1.isdecimal())
print("str1.isdigit() : ",str1.isdigit())
print("str1.isnumeric() : ",str1.isnumeric())
# Fractional Value
str2 = "½"
print("str2:")
print("str2.isdecimal() : ",str2.isdecimal())
print("str2.isdigit() : ",str2.isdigit())
print("str2.isnumeric() : ",str2.isnumeric())
# Superscript Values
str3 = "⁰¹²³⁴⁵⁶⁷⁸⁹"
print("str3:")
print("str3.isdecimal() : ",str3.isdecimal())
print("str3.isdigit() : ",str3.isdigit())
print("str3.isnumeric() : ",str3.isnumeric())

Kết quả:

str1:
str1.isdecimal() : True
str1.isdigit() : True
str1.isnumeric() : True
str2:
str2.isdecimal() : False
str2.isdigit() : False
str2.isnumeric() : True
str3:
str3.isdecimal() : False
str3.isdigit() : True
str3.isnumeric() : True

Cách kiểm tra xem một chuỗi có phải là ký hiệu nhận dạng hợp lệ

Bạn có thể kiểm tra xem chuỗi được đưa ra có phải là một ký hiệu nhận dạng hợp lệ hay không bằng phương pháp isidentifier(). Phương pháp này trả về True nếu chuỗi đó là một ký hiệu nhận dạng hợp lệ. Nếu không, nó sẽ trả về False.

Mỗi chuỗi được xem là ký hiệu nhận dạng hợp lệ nếu thỏa mãn các điều kiện sau:

  • Nó chỉ chứa các ký tự chữ & số hoặc dấu gạch dưới.
  • Nó không bắt đầu bằng một ký tự số.
  • Nó không chứa khoảng trắng.

Ví dụ:

str1 = "var1"
# This method will return "True" as the given string is a valid identifier
checkstr1 = str1.isidentifier()
print(checkstr1)
str2 = "var 1"
# This method will return "False" as the string contains a whitespace
checkstr2 = str2.isidentifier()
print(checkstr2)
str3 = "var1#"
# This method will return "False" as the string have a special character "#"
checkstr3 = str3.isidentifier()
print(checkstr3)
str4 = "_var1_"
# This method will return "True" as the given string is a valid identifier
checkstr4 = str4.isidentifier()
print(checkstr4)
str5 = "1var"
# This method will return "False" as the string starts with a digit "1"
checkstr5 = str5.isidentifier()
print(checkstr5)

Kết quả:

True
False
False
True
False

Các chuỗi (string) cực kỳ hữu ích trong việc truyền tải thông tin từ chương trình tới người dùng. Sử dụng xác thực boolean không phải cách duy nhất để xử lý các chuỗi Python nhưng nó cực kỳ hiệu quả và khá dễ dùng với người mới bắt đầu.

  • 521 lượt xem
👨 Vy Vy Cập nhật: 03/05/2021
Xem thêm: Boolean Python
Sắp xếp theo