Chuỗi là một kiểu dữ liệu bao gồm các ký tự được đặt trong dấu ngoặc kép. Các ký tự này có thể là chữ cái, ký hiệu hoặc số.
Trong Python, có nhiều cách khác nhau để làm việc với chuỗi. Các phương thức này là các hàm tích hợp thay đổi kết quả của chuỗi.
Chẳng hạn, nếu tôi muốn in tên của mình với chữ cái đầu tiên được viết hoa, tôi sử dụng .title()
cách viết hoa chữ cái đầu câu.
Trong bài viết này, chúng ta sẽ tìm hiểu cách chuyển chữ hoa thành chữ thường mà không cần sử dụng phương thức có sẵn.
Cách chuyển đổi một chuỗi thành chữ thường bằng cách sử dụng .lower()
Các chuỗi có thể bao gồm các ký tự khác nhau – một trong những ký tự đó là các chữ cái trong bảng chữ cái. Bạn có thể viết bảng chữ cái tiếng Anh dưới dạng chữ hoa hoặc chữ thường. Khi thay đổi một chuỗi thành chữ thường, nó chỉ áp dụng cho các chữ cái.
Trong Python, có một phương thức tích hợp có thể thay đổi một chuỗi từ chữ hoa thành chữ thường. Nó cũng áp dụng cho các chuỗi có cả chữ hoa và chữ thường. Phương thức “.lower()” đổi chuỗi thành chữ thường.
name = "BOB STONE"
print(name.lower()) # >> bob stone
name1 = "Ruby Roundhouse"
print(name1.lower()) # >> ruby roundhouse
name2 = "joHN Wick"
print(name2.lower()) # >> john wick
name3 = "charlieNew"
print(name3.lower()) # >> charlienew
Chúng ta có thể thấy trong khối mã trên, các biến lưu trữ mỗi chuỗi có chữ hoa. Sau đó với .lower()
phương pháp, nó chuyển đổi các chữ cái thành chữ thường.
Các cách khác để chuyển đổi chuỗi Python thành chữ thường
Ngoài phương thức sẵn có “.lower()”, có nhiều cách khác nhau để chuyển đổi chữ hoa thành chữ thường trong Python. Trong bài viết này, chúng ta sẽ xem xét hai cách khác nhau.
Có hai cách để truy cập các chữ cái:
- sao chép chúng theo cách thủ công vào một danh sách hoặc
- sử dụng chuẩn Unicode
Cách truy cập các chữ cái từ danh sách
Ý tưởng là lặp qua một danh sách các chữ cái và thay thế các chữ cái viết hoa trong một chuỗi bằng các chữ cái viết thường.
Đầu tiên, tạo một biến lưu trữ đầu vào chấp nhận một chuỗi có chữ hoa.
Sau đó, tạo một biến khác lưu danh sách các chữ hoa và chữ thường.
Cuối cùng, tạo biến cuối cùng lưu trữ một chuỗi rỗng, là nơi lưu trữ các chữ cái viết thường.
word = str(input("Enter a word: ” ))
alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
lowercase_letters=""
Trong danh sách trên ta thấy nó có chữ thường và chữ in hoa. Có 26 chữ cái trong bảng chữ cái tiếng Anh, nhưng chỉ mục trong danh sách bắt đầu từ 0, vì vậy số đếm của bảng chữ cái là 51 (cho cả chữ hoa và chữ thường).
Chúng ta cũng có thể thấy rằng các chữ thường được viết trước (bên trái) và các chữ hoa được viết sau (bên phải). Chỉ số của chữ thường nằm trong khoảng từ 0 – 25, trong khi chỉ số của chữ hoa nằm trong khoảng từ 26 – 51.
Tiếp theo, chúng tôi lặp qua từng ký tự trong chuỗi.
for char in word:
<char>
là tên biến mới lưu trữ tất cả các ký tự từ <word>
Biến đổi.
Có hai trường hợp chuỗi chúng ta sẽ chuyển đổi. Trường hợp đầu tiên là các chuỗi chỉ có chữ hoa và trường hợp thứ hai có các chuỗi có ký hiệu đặc biệt, chữ số, một số chữ thường và một số chữ hoa.
TRƯỜNG HỢP I: chuỗi chỉ có chữ hoa
Để chuyển đổi chữ hoa thành chữ thường, chúng ta phải tìm chỉ mục của từng chữ cái được lưu trữ bởi biến <char>
từ danh sách. Để tìm một chỉ mục, chúng ta sử dụng phương thức “.index()”:
alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
word = str(input("Enter a word: " ))
for char in word:
print(alphabet.index(char))
# Results
# Enter a word: GIRL
# 32
# 34
# 43
# 37
Trong đoạn mã trên, chỉ mục của các chữ cái trong
Trong danh sách, chữ thường có chỉ số từ 0 – 25 và chữ hoa có chỉ số từ 26 – 51. Khi đặt điều kiện (câu lệnh “if”) ta bắt đầu kiểm tra xem chỉ số của chữ có lớn hơn ’25’ hay không vì chỉ mục chữ hoa đầu tiên bắt đầu từ ’26’ .
Để có được các chữ cái viết thường tương ứng, chúng tôi trừ 26 từ mỗi chỉ số chữ hoa. Khi chúng tôi lấy chỉ mục của các số viết thường, chúng tôi sử dụng chỉ mục (tên_biến[index_number]) để tìm các chữ cái tương ứng. Các chữ thường hiện được thêm vào tên biến
Chúng ta trả về biến
for char in word:
if alphabet.index(char) > 25:
lowercase_letters += alphabet[alphabet.index(char)-26]
print(lowercase_letters)
Đây là mã trông như thế nào khi chúng ta kết hợp tất cả lại với nhau:
def change_to_lowercase(word):
alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
lowercase_letters=""
for char in word:
if alphabet.index(char) > 25:
lowercase_letters += alphabet[alphabet.index(char)-26]
return lowercase_letters
word = str(input("Enter a word: " ))
print(change_to_lowercase(word=word))
# Results
# Enter a word: FERE
# fere
# Enter a word: PYTHONISFUN
# pythonisfun
TRƯỜNG HỢP II: chuỗi ký hiệu đặc biệt, chữ số, chữ thường bên cạnh chữ hoa.
Trước khi chuyển chữ hoa thành chữ thường, chúng ta cần kiểm tra một số điều kiện. Các điều kiện sẽ kiểm tra xem mỗi ký tự <char>
từ từ:
- không phải là một lá thư
- có cả chữ hoa và chữ thường trong từ. Nếu một số chữ cái trong từ là chữ thường, chúng sẽ được giữ nguyên.
Sau những lần kiểm tra này, nó giả sử các ký tự còn lại là chữ in hoa.
Để kiểm tra xem một ký tự có phải là chữ cái hay không, chúng ta sử dụng từ khóa “not in”. Để kiểm tra xem một ký tự có phải là chữ thường hay không, chúng tôi tìm chỉ mục và so sánh nó với số lượng chữ cái viết thường cuối cùng trong danh sách.
Một lần nữa, các chữ cái viết thường có chỉ số từ 0-25 và chỉ số của chữ cái viết thường cuối cùng
for char in word:
if char not in alphabet or alphabet.index(char)<=25:
lowercase_letters += char
Trong khối mã trên, chúng tôi đã sử dụng .index()
phương pháp tìm vị trí của các chữ cái trong bảng chữ cái.
Đối với các ký tự còn lại mà chúng tôi giả định là chữ in hoa, trong danh sách các chữ cái, chỉ số của các chữ cái đó là từ 26 – 51. Để tìm chỉ số chữ thường tương ứng của chúng, chúng tôi trừ đi 26 và sử dụng công cụ .index()
phương pháp tìm chữ cái.
Lập chỉ mục = tên_biến[index_number]. Chúng tôi thêm kết quả cuối cùng vào biến lưu trữ chuỗi rỗng.
for char in word:
if char not in alphabet or alphabet.index(char)<=25:
lowercase_letters += char
else:
lowercase_letters += alphabet[alphabet.index(char)-26]
Sau đó, chúng tôi in chữ thường bên ngoài vòng lặp:
for char in word:
if char not in alphabet or alphabet.index(char)<=25:
lowercase_letters += char
else:
lowercase_letters += alphabet[alphabet.index(char)-26]
print(lowercase_letters)
Đây là mã trông như thế nào khi chúng ta kết hợp tất cả lại với nhau:
def change_to_lowercase(word):
alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
lowercase_letters=""
for char in word:
if char not in alphabet or alphabet.index(char)<=25:
lowercase_letters += char
else:
lowercase_letters += alphabet[alphabet.index(char)-26]
return lowercase_letters
word = str(input("Enter a word: " ))
print(change_to_lowercase(word=word))
# Results
# Enter a word: 2022BlackADAM&&
# 2022blackadam&&
# Enter a word: [email protected]
# [email protected]
Cách truy cập các chữ cái bằng tiêu chuẩn Unicode
Unicode có nghĩa là tiêu chuẩn mã hóa ký tự phổ quát. Theo unicode.org,
“Chuẩn Unicode cung cấp một số duy nhất cho mọi ký tự, bất kể nền tảng, thiết bị, ứng dụng hay ngôn ngữ nào.”
Nói một cách đơn giản, tất cả các chữ cái từ các ngôn ngữ khác nhau đều có một số duy nhất đại diện cho mọi ký tự có trong Unicode.
Chúng tôi sử dụng hai phương pháp khi làm việc với Unicode trong Python: ord()
và chr()
.
- ord(): hàm này chấp nhận các ký tự (chữ cái trong bất kỳ ngôn ngữ nào) và trả về số duy nhất theo tiêu chuẩn Unicode.
- chr(): hàm này chấp nhận số nguyên và trả về ký tự tương đương theo tiêu chuẩn Unicode.
Trước khi đi sâu vào giải thích mã, đây là biểu đồ chứa tất cả các số duy nhất cho bảng chữ cái tiếng Anh, cả chữ thường và chữ hoa.

Bây giờ chúng ta đã quen thuộc với Unicode là gì và cách truy cập các giá trị trong Python, hãy đi sâu vào.
Đầu tiên, tạo một biến lưu trữ đầu vào chấp nhận một chuỗi có chữ hoa.
Sau đó, tạo biến cuối cùng lưu trữ một chuỗi rỗng, là nơi lưu trữ các chữ cái viết thường.
word = str(input("Enter a word: ” ))
lowercase_letters=""
Sau đó, chúng tôi lặp qua từng ký tự trong chuỗi.
for char in word:
<char>
là tên biến mới lưu trữ tất cả các ký tự từ <word>
Biến đổi.
TRƯỜNG HỢP I: chuỗi chỉ chứa chữ in hoa.
Trước khi chuyển chữ hoa thành chữ thường, chúng ta cần kiểm tra xem từng ký tự
Theo biểu đồ Unicode, chữ hoa A có số “65” và chữ hoa Z có số “90”. Chúng tôi kiểm tra xem mỗi ký tự <char>
Trong <word>
có số từ 65 đến 90. Nếu có, chúng là chữ in hoa.
print((ord('A')))
# RESULT
# 65
print((ord('Z')))
# RESULT
# 90
print((ord('F')))
# RESULT
# 70
Các ord()
hàm trả về số duy nhất của mỗi chữ cái viết hoa.
Để chuyển đổi chữ hoa thành chữ thường, chúng ta thêm sự khác biệt giữa cả hai trường hợp, “32”, cho mỗi số từ chữ hoa để có được chữ thường.
Ví dụ:
number_for_A = ord('A')
number_for_a = ord('a')
difference_a = number_for_a - number_for_A
print("Differences in letters" , difference_a)
print("The unique number for A", number_for_A)
print("The unique number for a", number_for_a)
# Results
# The unique number for A 65
# The unique number for a 97
# Differences in letters 32
number_for_F = ord('F')
number_for_f = ord('f')
difference_f = number_for_f - number_for_F
print("The unique number for F", number_for_F)
print("The unique number for f", number_for_f)
print("Differences in letters" , difference_f)
# Results
# The unique number for F 70
# The unique number for f 102
# Differences in letters 32
Trong đoạn mã trên, ‘a’ là 97 trên biểu đồ unicode và ‘A’ là 65. Sự khác biệt giữa chúng là 32. Nếu chúng ta muốn lấy giá trị của “a” trên biểu đồ, chúng ta thêm 32 vào giá trị của Một “65” và nhận được “97”.
Vì vậy, để chuyển đổi thành chữ thường, chúng ta phải thêm 32 vào mỗi số của các chữ cái viết hoa để có được các chữ cái viết thường tương ứng của chúng.
word = str(input("Enter a word: " ))
lowercase_letters=""
for char in word:
if ord(char) >= 65 and ord(char) <= 90:
char = ord(char) + 32
print(char)
# Results
# Enter a word: REAL
# 114
# 101
# 97
# 108
Trong đoạn mã trên, chúng ta lặp qua biến <word>
để có được quyền truy cập vào từng ký tự.
Sau đó, chúng tôi kiểm tra xem mỗi ký tự trong biến <word>
có một số duy nhất trong khoảng từ 65 đến 90. Nếu có, nó bao gồm các chữ cái viết hoa.
Để có được các chữ cái viết thường tương ứng, chúng ta thêm 32. Kết quả trên in ra số lượng các chữ cái viết thường duy nhất.
Chúng ta có thể nối các số với các chữ cái của chúng bằng cách sử dụng chr()
chức năng.
word = str(input("Enter a word: " ))
lowercase_letters=""
for char in word:
if ord(char) >= 65 and ord(char) <= 90:
char = ord(char) + 32
to_letters = chr(char)
print(to_letters)
# Result
# Enter a word: REAL
# r
# e
# a
# l
Bây giờ chúng ta thấy rằng các chữ cái được trả về là chữ thường. Để lấy các chữ cái trong một dòng, chúng ta thêm nó vào biến lưu trữ chuỗi rỗng và trả về biến.
word = str(input("Enter a word: " ))
lowercase_letters=""
for char in word:
if ord(char) >= 65 and ord(char) <= 90:
char = ord(char) + 32
to_letters = chr(char)
lowercase_letters += to_letters
print(lowercase_letters)
# Result
# Enter a word: FERE
# fere
Đây là những gì nó trông giống như khi chúng ta kết hợp tất cả lại với nhau:
def change_to_lowercase(word):
lowercase_letters=""
for char in word:
if ord(char) >= 65 and ord(char) <= 90:
char = ord(char)+32
to_letters = chr(char)
lowercase_letters += to_letters
return lowercase_letters
word = str(input("Enter a word: " ))
print(change_to_lowercase(word=word))
# Results
# Enter a word: HARDWORKPAYS
# hardworkpays
# Enter a word: PYTHONISFUN
# pythonisfun
TRƯỜNG HỢP II: chuỗi ký hiệu đặc biệt, chữ số, chữ thường bên cạnh chữ hoa.
Đối với các chuỗi không phải là chữ cái và một số chữ cái viết thường, chúng tôi thêm câu lệnh ‘else’ để trả về các giá trị khi chúng xuất hiện trong chuỗi. Các chữ hoa sau đó được chuyển đổi thành chữ thường:
word = str(input("Enter a word: " ))
lowercase_letters=""
for char in word:
if ord(char) >= 65 and ord(char) <= 90:
char = ord(char)+32
to_letters = chr(char)
lowercase_letters += to_letters
else:
lowercase_letters += char
print(lowercase_letters)
# Result
# Enter a word: @#&YEAERS09=
# @#&yeaers09=
Đây là những gì nó trông giống như khi chúng ta kết hợp tất cả lại với nhau:
def change_to_lowercase(word):
lowercase_letters=""
for char in word:
if ord(char) >= 65 and ord(char) <= 90:
char = ord(char)+32
to_letters = chr(char)
lowercase_letters += to_letters
else:
lowercase_letters += char
return lowercase_letters
word = str(input("Enter a word: " ))
print(change_to_lowercase(word=word))
# Enter a word: YOUGOT#$^
# yougot#$
# Enter a word: [email protected]
# [email protected]
Tôi biết phương pháp thứ hai tốn nhiều công sức nhưng nó cũng mang lại cho bạn kết quả, giống như phương pháp đầu tiên.
Tóm lược
Trong bài viết này, bạn đã học về cách chuyển đổi ký tự và chuỗi từ trường hợp này sang trường hợp khác. Chúng tôi cũng đã xem bảng ASCII.
Phương pháp thứ hai hiệu quả và đơn giản hơn khi bạn biết cách sử dụng hai chức năng quan trọng. Các chỉ mục của các chữ cái được tích hợp sẵn trong Python, vì vậy không cần phải ghi nhớ chúng.
Cảm ơn bạn đã đọc!