❮ 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
, nhưng phương thức
lower[]
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 string1
và string2
. Nếu các chuỗi là từ tiếng Thổ Nhĩ Kỳ, include_special_i
tham 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ẻ