Phương thức Lower[] của Python String chuyển đổi tất cả các ký tự viết hoa chữ thường trong một chuỗi thành các ký tự viết thường. Tuy nhiên đối với những chuỗi chỉ chứa ký tự thường sẽ không bị chuyển đổi và giữ nguyên. Phương pháp này cũng được miễn cho các chuỗi chứa ký tự số và ký hiệu, vì chúng không dựa trên trường hợp
Phương thức Lower[] là đối trọng của phương thức Upper[] - kết quả là các chữ cái sẽ được viết hoa;
cú pháp
Sau đây là cú pháp cho phương thức Python String Lower[] -
str.lower[]
Thông số
Phương pháp này không chấp nhận bất kỳ tham số nào
Giá trị trả về
Phương thức này trả về một bản sao của chuỗi trong đó tất cả các ký tự dựa trên chữ hoa chữ thường đã được viết thường
Thí dụ
Chuỗi được lấy làm đầu vào có tất cả các chữ cái viết hoa, vì vậy phương thức trả về kết quả là chuỗi viết thường
Ví dụ sau đây cho thấy cách sử dụng phương thức Python String Lower[]. Ở đây, chúng tôi đang chuyển một giá trị chuỗi viết hoa làm tham số cho phương thức này
str = "THIS IS STRING EXAMPLE"; print[str.lower[]]
Khi chúng tôi chạy chương trình trên, nó tạo ra kết quả sau -
this is string example
Thí dụ
Nếu chuỗi đầu vào được lấy có tất cả các chữ cái viết thường, phương thức sẽ trả về chuỗi ban đầu làm kết quả
str = "this is a string"; print[str.lower[]]
Chương trình trên, khi thực thi, hiển thị kết quả sau -
this is a string
Thí dụ
Khi chúng ta lấy một chuỗi được đánh số làm đầu vào, phương thức sẽ trả về chuỗi gốc làm kết quả
Trong ví dụ sau, chúng ta gán một chuỗi đánh số cho biến str. Sau đó, chúng ta gọi phương thức Lower[] trên chuỗi này
str = "287193778190"; print[str.lower[]]
Khi thực hiện chương trình trên, đầu ra được hiển thị như sau -
287193778190
Thí dụ
Khi chúng ta chuyển một chuỗi ký hiệu làm đầu vào, kết quả do phương thức tạo ra là chính chuỗi gốc
Trong chương trình ví dụ này, chúng tôi đang tạo một chuỗi chỉ có các ký hiệu và gọi phương thức Lower[] trên đó. Phương thức sẽ không sửa đổi chuỗi vì nó không chứa các ký tự phân biệt chữ hoa chữ thường
str = "@#$%^&*["; print[str.lower[]]
Khi chúng tôi chạy chương trình trên, kết quả thu được sau đây -
Thí dụ
Trong môi trường không phân biệt chữ hoa chữ thường, hai chuỗi được so sánh để xem chúng có bằng nhau hay không bằng cách sử dụng phương thức Lower[]. Giá trị trả về sẽ là true hoặc false
Trong chương trình ví dụ này, chúng tôi tạo hai chuỗi chuyển đổi chúng thành chữ thường bằng phương pháp này. Sau đó, bằng cách sử dụng các câu điều kiện, chúng tôi kiểm tra xem cả hai chuỗi có bằng nhau sau khi chúng được viết thường không. Chương trình in ra "Cả hai chuỗi đều bằng nhau" nếu chúng bằng nhau và "Cả hai chuỗi không bằng nhau" nếu ngược lại
Đây là phương thức str trong Python 3, nhưng trong Python 2, bạn sẽ muốn xem PyICU hoặc py2casefold - một số câu trả lời giải quyết vấn đề này tại đây
Python Python 3
Python 3 xử lý các chuỗi ký tự đơn giản dưới dạng unicode
>>> string = 'Километр'
>>> string
'Километр'
>>> string.lower[]
'километр'
Python 2, chuỗi ký tự đơn giản là byte
Trong Python 2, phần bên dưới, được dán vào trình bao, mã hóa chữ thành một chuỗi byte, sử dụng
Và
>>> 'Kilometers'.casefold[]
'kilometers'
0 không ánh xạ bất kỳ thay đổi nào mà byte có thể nhận biết được, vì vậy chúng tôi nhận được cùng một chuỗi>>> string = 'Километр'
>>> string
'\xd0\x9a\xd0\xb8\xd0\xbb\xd0\xbe\xd0\xbc\xd0\xb5\xd1\x82\xd1\x80'
>>> string.lower[]
'\xd0\x9a\xd0\xb8\xd0\xbb\xd0\xbe\xd0\xbc\xd0\xb5\xd1\x82\xd1\x80'
>>> print string.lower[]
Километр
Trong các tập lệnh, Python sẽ phản đối các mã không phải ascii [kể từ Python 2. 5 và cảnh báo trong Python 2. 4] các byte nằm trong một chuỗi không có mã hóa, vì mã hóa dự định sẽ không rõ ràng. Để biết thêm về điều đó, hãy xem cách thực hiện Unicode trong và PEP 263
Sử dụng chữ Unicode, không phải >>> 'Kilometers'.casefold[]
'kilometers'
1 chữ
>>> 'Kilometers'.casefold[]
'kilometers'
Vì vậy, chúng tôi cần một chuỗi
>>> 'Kilometers'.casefold[]
'kilometers'
2 để xử lý chuyển đổi này, được thực hiện dễ dàng bằng một chuỗi ký tự unicode, phân biệt với tiền tố >>> 'Kilometers'.casefold[]
'kilometers'
3 [và lưu ý tiền tố >>> 'Kilometers'.casefold[]
'kilometers'
3 cũng hoạt động trong Python 3]>>> unicode_literal = u'Километр'
>>> print[unicode_literal.lower[]]
километр
Lưu ý rằng các byte hoàn toàn khác với byte
>>> 'Kilometers'.casefold[]
'kilometers'
1 - ký tự thoát là >>> 'Kilometers'.casefold[]
'kilometers'
6 theo sau là chiều rộng 2 byte hoặc biểu diễn 16 bit của các chữ cái >>> 'Kilometers'.casefold[]
'kilometers'
2 này>>> unicode_literal
u'\u041a\u0438\u043b\u043e\u043c\u0435\u0442\u0440'
>>> unicode_literal.lower[]
u'\u043a\u0438\u043b\u043e\u043c\u0435\u0442\u0440'
Bây giờ nếu chúng ta chỉ có nó ở dạng
>>> 'Kilometers'.casefold[]
'kilometers'
1, chúng ta cần chuyển đổi nó thành >>> 'Kilometers'.casefold[]
'kilometers'
2. Loại Unicode của Python là một định dạng mã hóa phổ quát có nhiều liên quan đến hầu hết các bảng mã khác. Chúng ta có thể sử dụng hàm tạo >>> 'Kilometers'.casefold[]
'kilometers'
2 hoặc phương thức >>> "Maße".casefold[]
'masse'
>>> "Maße".lower[]
'maße'
>>> "MASSE" == "Maße"
False
>>> "MASSE".lower[] == "Maße".lower[]
False
>>> "MASSE".casefold[] == "Maße".casefold[]
True
1 với codec để chuyển đổi ______10_______1 thành ____10_______2>>> unicode_from_string = unicode[string, 'utf-8'] # "encoding" unicode from string
>>> print[unicode_from_string.lower[]]
километр
>>> string_to_unicode = string.decode['utf-8']
>>> print[string_to_unicode.lower[]]
километр
>>> unicode_from_string == string_to_unicode == unicode_literal
True
Cả hai phương thức đều chuyển đổi thành loại unicode - và giống như unicode_literal
Thực hành tốt nhất, sử dụng Unicode
Chúng tôi khuyên bạn nên luôn luôn
Phần mềm chỉ nên hoạt động với các chuỗi Unicode bên trong, chuyển đổi sang một mã hóa cụ thể trên đầu ra
Có thể mã hóa lại khi cần thiết
Tuy nhiên, để lấy lại chữ thường trong kiểu
>>> 'Kilometers'.casefold[]
'kilometers'
1, hãy mã hóa lại chuỗi python thành utf-8
>>> print string
Километр
>>> string
'\xd0\x9a\xd0\xb8\xd0\xbb\xd0\xbe\xd0\xbc\xd0\xb5\xd1\x82\xd1\x80'
>>> string.decode['utf-8']
u'\u041a\u0438\u043b\u043e\u043c\u0435\u0442\u0440'
>>> string.decode['utf-8'].lower[]
u'\u043a\u0438\u043b\u043e\u043c\u0435\u0442\u0440'
>>> string.decode['utf-8'].lower[].encode['utf-8']
'\xd0\xba\xd0\xb8\xd0\xbb\xd0\xbe\xd0\xbc\xd0\xb5\xd1\x82\xd1\x80'
>>> print string.decode['utf-8'].lower[].encode['utf-8']
километр
Vì vậy, trong Python 2, Unicode có thể mã hóa thành chuỗi Python và chuỗi Python có thể giải mã thành loại Unicode