Hướng dẫn dùng python casefold python

  • Phương thức chuỗi ký tự casefold () trong Python
      • Ví dụ
    • Định nghĩa và Cách sử dụng
    • Cú pháp
    • Giá trị tham số
      • Related posts:

❮ Phương thức chuỗi


Ví dụ

Đặt chuỗi ký tự viết thường:

txt = “Hello, And Welcome To My World!”

x = txt.casefold()

print(x)

Hãy tự mình thử »


Định nghĩa và Cách sử dụng

Phương thức casefold() trả về một chuỗi trong đó tất cả các ký tự đều là chữ thường.

Phương thức này tương tự như phương pháp
lower()
, nhưng phương thức
casefold() mạnh hơn, linh hoạt hơn, có nghĩa là nó sẽ chuyển đổi nhiều ký tự hơn thành chữ thường và sẽ tìm thấy nhiều kết quả khớp hơn khi so sánh hai chuỗi và cả hai đều được chuyển đổi bằng cách sử dụng [ Phương pháp CODE_4] .


Cú pháp

Giá trị tham số

Không có thông số


❮ Phương thức chuỗi

botvietbai.com

BCK là giải pháp tích hợp thanh toán MOMO, ViettelPay, VNPay, Vietcombank, Vietinbank, Techcombank, MB.. dành cho cá nhân !

1) Trong Python 3, casefold()nên được sử dụng để thực hiện đối sánh chuỗi không cấp.

Bắt đầu với Python 3.0, các chuỗi được lưu trữ dưới dạng Unicode. Tiêu chuẩn Unicode Chương 3.13 xác định đối sánh không trả tiền mặc định như sau:

Chuỗi X là đối sánh không tính tiền cho chuỗi Y nếu và chỉ khi:
toCasefold (X) = toCasefold (Y)

Python's casefold()thực hiện Unicode's toCasefold(). Vì vậy, nó nên được sử dụng để thực hiện đối sánh chuỗi không có tiền mặt. Mặc dù, chỉ riêng việc ghép chữ cái không đủ để bao phủ một số trường hợp góc và để vượt qua Bài kiểm tra Thổ Nhĩ Kỳ (xem Điểm 3).

2) Kể từ Python 3.6, casefold () không thể vượt qua Bài kiểm tra Thổ Nhĩ Kỳ.

Đối với hai ký tự, chữ hoa I và chữ hoa dấu chấm I, Tiêu chuẩn Unicode xác định hai ánh xạ chữ hoa chữ thường khác nhau.

Giá trị mặc định (đối với các ngôn ngữ không phải tiếng Thổ Nhĩ Kỳ):
I → i (U + 0049 → U + 0069)
İ → i̇ (U + 0130 → U + 0069 U + 0307)

Phương án thay thế (dành cho các ngôn ngữ Thổ Nhĩ Kỳ):
I → ı (U + 0049 → U + 0131)
İ → i (U + 0130 → U + 0069)

Pythons chỉ casefold()có thể áp dụng ánh xạ mặc định và không thành công trong Bài kiểm tra gà tây . Ví dụ: các từ tiếng Thổ Nhĩ Kỳ "LİMANI" và "limanı" là các từ tương đương không tính tiền, nhưng "LİMANI".casefold() == "limanı".casefold()trả về False. Không có tùy chọn nào để bật ánh xạ thay thế.

3) Cách thực hiện đối sánh chuỗi không tính tiền trong Python 3.

Tiêu chuẩn Unicode Chương 3.13 mô tả một số thuật toán đối sánh không phân biệt. Đối sánh không tiền mặt chuẩn có thể sẽ phù hợp với hầu hết các trường hợp sử dụng. Thuật toán này đã tính đến tất cả các trường hợp góc. Chúng tôi chỉ cần thêm một tùy chọn để chuyển đổi giữa phân loại chữ hoa không phải người Thổ Nhĩ Kỳ và người Thổ Nhĩ Kỳ.

import unicodedata

def normalize_NFD(string):
    return unicodedata.normalize('NFD', string)

def casefold_(string, include_special_i=False):
    if include_special_i:
        string = unicodedata.normalize('NFC', string)
        string = string.replace('\u0049', '\u0131')
        string = string.replace('\u0130', '\u0069')
    return string.casefold()

def casefold_NFD(string, include_special_i=False):
    return normalize_NFD(casefold_(normalize_NFD(string), include_special_i))

def caseless_match(string1, string2, include_special_i=False):
    return  casefold_NFD(string1, include_special_i) == casefold_NFD(string2, include_special_i)

casefold_()là một trình bao bọc cho Python casefold(). Nếu tham số của nó include_special_iđược đặt thành True, thì nó sẽ áp dụng ánh xạ Turkic và nếu nó được đặt thành Falseánh xạ mặc định sẽ được sử dụng.

caseless_match()có đối sánh không tiền mặt chuẩn cho string1string2. Nếu các chuỗi là từ tiếng Thổ Nhĩ Kỳ, include_special_itham số phải được đặt thành True.

Ví dụ:

>>> caseless_match('LİMANI', 'limanı', include_special_i=True)
True
>>> caseless_match('LİMANI', 'limanı')
False
>>> caseless_match('INTENSIVE', 'intensive', include_special_i=True)
False
>>> caseless_match('INTENSIVE', 'intensive')
True

17 hữu ích 1 bình luận chia sẻ