Các thư viện xử lý string trong python
Ngôn ngữ lập trình Python hỗ trợ cho chúng ta khá nhiều hàm để xử lý hay thao tác với chuỗi. Show
Xin được nhắc lại, chuỗi trong Python phải được đặt trong cặp nháy kép ("") hoặc cặp nháy đơn (''). Bài học này sẽ trình bày một số hàm thường phổ biến sử dụng trong quá trình xử lý và thao tác với chuỗi. 1. capitalize()Hàm này có tác dụng in hoa chữ cái đầu tiên của chuỗi hiện thời (là chuỗi cần thao tác). Ví dụ: str = "v1Study.com" print(str.capitalize()) Kết quả: V1Study.com 2. center()Hàm này có tác dụng trả về chuỗi mới chứa nội dung chuỗi hiện thời, trong đó chuỗi hiện thời được hiển thị nằm giữa chuỗi mới. Cú pháp: Trong đó:
Ví dụ không sử dụng đối số char: str = "v1study.com" print(str.center(10)) Kết quả: v1study.com str = "v1study.com" print(str.center(20)) Kết quả: v1study.com Ví dụ có sử dụng đối số char: str = "v1study.com" print(str.center(10, '*')) Kết quả: v1study.com str = "v1study.com" print(str.center(20, '*')) Kết quả: ****v1study.com***** 3. count()Hàm này dùng để tìm và đếm xem trong chuỗi hiện thời có bao nhiêu chuỗi cần tìm. Hàm trả về số lượng chuỗi tìm thấy. Cú pháp: str.count(str1, [start], [end]) Trong đó:
Ví dụ: str = "Lap trinh Python" print(str.count('t')) #tìm chuỗi t trong chuỗi hiện thời Kết quả: 2 string = "Lap trinh Python" # tìm chuỗi t trong chuỗi hiện thời bắt đầu từ vị trí thứ 6 print(string.count('t', 6)) Kết quả: 1 string = "Lap trinh Python" # tìm chuỗi t trong chuỗi hiện thời bắt đầu từ vị trí thứ 6 # và kết thúc ở vị trí thứ 12 print(string.count('t', 6, 12)) Kết quả: 0 4. encode()Hàm này có tác dụng mã hóa (encode) chuỗi hiện thời. Cú pháp:
Trong đó:
Ví dụ: str = "v1study.com" print(str.encode()) Kết quả: b'v1study.com' str = "v1study.com" # dùng loại mã hóa utf-16 print(str.encode('utf-16')) Kết quả: b'\xff\xfev\x001\x00s\x00t\x00u\x00d\x00y\x00.\x00c\x00o\x00m\x00' 5. decode()Hàm này có tác dụng ngược với hàm encode(), cụ thể decode() dùng để giải mã (decode) chuỗi hiện thời. Ví dụ: str = b'v1study.com' # dùng loại giải mã là utf-8 print(str.decode('utf-8')) Kết quả: v1study.com str = b'\xff\xfev\x001\x00s\x00t\x00u\x00d\x00y\x00.\x00c\x00o\x00m\x00' # dùng loại giải mã là utf-16 print(str.decode('utf-16')) Kết quả: v1study.com 6. endswith()Hàm này có tác dụng kiểm tra xem chuỗi hoặc khoảng chuỗi có được kết thúc bằng ký tự nào đó hay không. Nó sẽ trả về Cú pháp:
Trong đó:
Ví dụ: str = "V1Study" print(str.endswith('y')) Kết quả: True str = "V1Study" print(str.endswith('S', 1, 3)) Kết quả: True 7. expandtabs()Hàm này có tác dụng tìm kiếm và thay thế tab (\t) bằng các ký tự khoảng trắng (space). Cú Pháp: str.expandtabs(number) Trong đó: number là số lượng khoảng trắng mà bạn muốn thay thế cho một \t. Nếu không được sử dụng thì mặc định Trong ví dụ dưới đây thì \t đang được cấu hình ứng với 2 dấu cách. Ví dụ: str = "V1Study:\tLập trình Python" print(str.expandtabs(4)) Kết quả: V1Study: Lập trình Python 8. find()Hàm này có nhiệm vụ tìm kiếm một chuỗi trong chuỗi hiện thời. find() sẽ trả về vị trí theo chỉ số bắt đầu của chuỗi tìm được trong chuỗi nếu tìm thấy và trả về -1 nếu không tìm thấy. Cú pháp: str.find(sub, start, end) Trong đó:
Ví dụ: str = "V1Study" print(str.find("St")) Kết quả: 2 str = "V1Study" print(str.find("St", 3)) Kết quả: -1 str = "V1Study" print(str.find("St", 0, 4)) Kết quả: 2 9. index()Hàm này tương tự như hàm find() chỉ khác duy nhất là nếu như không tìm thấy thì hàm này sẽ trả về ngoại lệ (exception). Ví dụ: string = "v1study.com" print(string.index('dangtranlong')) Kết quả: ValueError: substring not found 10. isalnum()Hàm isalnum() có nhiệm vụ kiểm tra xem chuỗi có chứa ký tự nào không phải là chữ hay số không, nếu chuỗi có chứa ký tự không phải là chữ và số thì hàm sẽ trả về False, ngược lại hàm sẽ trả về True. Ví dụ: string = "V1Study" # chuỗi này chỉ chứa chữ và số print(string.isalnum()) Kết quả: True string = "v1study.com" # chuỗi này có chứa ký tự . print(string.isalnum()) Kết quả: False string = "Lập trình Python" # chuỗi này có chứa ký tự space print(string.isalnum()) Kết quả: False string = "LậptrìnhPython" # chuỗi này chỉ chứa chữ print(string.isalnum()) Kết quả: False 11. isalpha()Hàm isalpha() có nhiệm vụ kiểm tra xem chuỗi hiện thời có chứa ký tự nào không phải là chữ không, nếu chuỗi có chứa ký tự không phải là chữ thì hàm sẽ trả về False, ngược lại hàm sẽ trả về True. Ví dụ: string = "V1Study" print(string.isalpha()) Kết quả: False string = "Talent" print(string.isalpha()) Kết quả: True 12. isdigit()Hàm isdigit() có nhiệm vụ kiểm tra xem chuỗi hiện thời có chứa ký tự nào không phải là số không, nếu chuỗi có chứa ký tự không phải là số thì hàm sẽ trả về False, ngược lại hàm sẽ trả về True. Ví dụ: string = "V1Study" print(string.isdigit()) Kết quả: False string = "0123456789" print(string.isdigit()) Kết quả: True 13 islower()Hàm này có nhiệm vụ kiểm tra xem chuỗi hiện thời có chữ nào in hoa không, nếu có sẽ trả về False và ngược lại thì trả về True. Ví dụ: string = "v1study" print(string.islower()) Kết quả: True string = "V1Study" print(string.islower()) Kết quả: False 14. isupper()Ngược với hàm islower(), hàm isupper() sẽ kiểm tra xem chuỗi có chứa chữ nào là chữ in thường không, nếu có sẽ trả về False và ngược lại thì trả về True. Ví dụ: string = "V1Study" print(string.isupper()) Kết quả: False string = "V1STUDY" print(string.isupper()) Kết quả: True 15. isnumeric()Hàm isnumeric() có nhiệm vụ kiểm tra xem chuỗi hiện thời có chứa ký tự nào không phải là số không, nếu chuỗi có chứa ký tự không phải là số thì hàm sẽ trả về False, ngược lại hàm sẽ trả về True. Ví dụ: string = "v1study.com" print(string.isnumeric()) Kết quả: False string = "0123456789" print(string.isnumeric()) Kết quả: True 16. isspace()Hàm isspace() có nhiệm vụ kiểm tra xem chuỗi hiện thời có chứa ký tự nào không phải là dấu cách (space) không, nếu chuỗi có chứa ký tự không phải là space thì hàm sẽ trả về False, ngược lại hàm sẽ trả về True. Ví dụ: string = " " print(string.isspace()) Kết quả: True string = " V " print(string.isspace()) Kết quả: False 17 istitle()Hàm này có tác dụng kiểm tra xem chuỗi có phải là dạng title hay không, chuỗi có dạng title là chuỗi trong đó các chữ cái đầu của mỗi từ đều được in hoa. Nó sẽ trả
về Ví dụ: string = "V1Study" print(string.istitle()) Kết quả: True string = "v1Study" print(string.istitle()) False 18. join(sub)Hàm join() có nhiệm vụ nối các thành phần của sub lại với nhau bằng chuỗi hiện thời. Cú pháp: str.join(sub) Trong đó: Ví dụ: str = "-" sub = "V1Study" print(str.join(sub)) Kết quả: V-1-S-t-u-d-y str = "-" sub = ["V1", "Study"] print(str.join(sub)) Kết quả: V1-Study str = "-" sub = ("Lập", "trình", "Python") print(str.join(sub)) Kết quả: Lập-trình-Python 19. len()Hàm này có tác dụng trả về độ dài của chuỗi hiện thời. Ví dụ: str = "V1Study" print(len(str)) Kết quả: 7 20. ljust()Cú pháp:
Trong đó:
Tác dụng: Hàm ljust() có tác dụng trả về một chuỗi mới, trong đó nếu width<= độ dài chuỗi hiện thời thì hàm sẽ trả về chuỗi hiện thời, ngược lại thì hàm sẽ trả về chuỗi mới gồm chuỗi hiện thời nằm bên trái và nằm bên phải là các ký tự Ví dụ: str = "V1Study" print(str.ljust(20, '*')) Kết quả: V1Study************* 21. rjust()Hàm rjust() có tác dụng ngược với hàm Ví dụ: str = "V1Study" print(str.rjust(20, '*')) Kết quả: *************V1Study 22. lower()Hàm này có tác dụng chuyển chuyển tất cả các ký tự in hoa của chuỗi hiện thời thành in thường và trả về chuỗi mới tương ứng. Ví dụ: str = "V1Study" print(str.lower()) Kết quả: v1study 23. upper()Hàm này có tác dụng ngược với hàm lower. Ví dụ: str = "V1Study" print(str.upper()) Kết quả: V1STUDY 24. lstrip(char)Hàm này có tác dụng loại bỏ đi các ký tự Ví dụ: str = " V1Study" print(str.lstrip()) Kết quả: V1Study str = "***V1Study***" print(str.lstrip('*')) Kết quả: V1Study*** 25. rstrip(char)Ngược với Ví dụ: str = "V1Study " print("\"" + str.rstrip() + "\"") Kết quả: "V1Study" str = "***V1Study***" print("\"" + str.rstrip('*') + "\"") Kết quả: "***V1Study" 26. strip(char)Hàm này là sự kết hợp của Ví dụ: str = "***V1Study***" print("\"" + str.strip('*') + "\"") Kết quả: "V1Study" 27. rfind()Tương tự như hàm Ví dụ: str = "Programming" print(str.rfind("r")) Kết quả: 4 28. rindex()Tương tự như hàm Ví dụ: str = "Programming" print(str.rfind("r")) Kết quả: 4 29. replace()Hàm này có tác dụng tìm kiếm và thay thế chuỗi tìm được bằng chuỗi mới. Cú Pháp: str.replace(old, new, count) Trong đó:
Ví dụ: str = "abacadaeaf" print(str.replace('a', 'A')) Kết quả: AbAcAdAeAf str = "abacadaeaf" print(str.replace('a', 'A', 3)) Kết quả: AbAcAdaeaf 30. max()Hàm này trả về ký tự có vị trí lớn nhất trong bảng mã ASCII so với các ký tự khác của chuỗi. Ví dụ: str = "v1study.com" print(max(str)) Kết quả: y 31. min()Hàm này ngược với hàm max(), cụ thể là hàm trả về ký tự có vị trí nhỏ nhất trong bảng mã ASCII so với các ký tự khác của chuỗi. Ví dụ: str = "v1study.com" print(max(str)) Kết quả: . 32. title()Hàm này có tác dụng chuyển đổi chuỗi sang dạng chuẩn title. Ví dụ: str = "dang tran long" print(str.title()) Kết quả: Dang Tran Long 33. swapcase()Hàm này có tác dụng chuyển đổi các ký tự của chuỗi sang dạng nghịch đảo của nó, cụ thể là ký tự in thường thành in hoa và ký tự in hoa thành ký tự in thường. Ví dụ: str = "V1Study" print(str.swapcase()) Kết quả: v1sTUDY str = "v1study.com" print(str.swapcase()) Kết quả: V1STUDY.COM 34. zfill()Hàm này có tác dụng như hàm Ví dụ: str = "v1study" print(str.zfill(20)) Kết quả: 0000000000000v1study 35. isdecimal()Hàm này có tác dụng gần tương tự như hàm isdigit(). Ví dụ: str = "123.456" print(str.isdecimal()) Kết quả: False str = "123456" print(str.isdecimal()) Kết quả: True 36. split(sep)Hàm này có tác dụng tác chuỗi thành một list bằng chuỗi Cú pháp:
Trong đó:
Ví dụ: str = "axbxcxdxexf" print(str.split('x')) Kết quả: ['a', 'b', 'c', 'd', 'e', 'f'] str = "axbxcxdxexf" print(str.split('x', 3)) Kết quả: ['a', 'b', 'c', 'dxexf'] 37. splitlines()Hàm này sẽ tách chuỗi thành một mảng bằng các ký tự \n. Nếu đối số của hàm là False hoặc 0 thì các chuỗi mới sẽ không chứa \n (bỏ đi \n), còn nếu đối số là True hoặc một số nguyên khác 0 thì các chuỗi mới sẽ vẫn chứa \n. Ví dụ: str = "Dang\nTran\nLong" print(str.splitlines(False)) Kết quả: ['Dang', 'Tran', 'Long'] str = "Dang\nTran\nLong" print(str.splitlines(True)) Kết quả: ['Dang\n', 'Tran\n', 'Long'] 38. startswith()Hàm này có tác dụng kiểm tra xem chuỗi hoặc khoảng chuỗi có được bắt đầu bằng ký tự nào đó hay không. Nó sẽ trả về Cú pháp:
Trong đó:
Ví dụ: str = "V1Study" print(str.startswith('V1')) Kết quả: True str = "V1Study" print(str.startswith('St', 2)) Kết quả: True str = "V1Study" print(str.startswith('St', 2, 3)) Kết quả: False 39. maketrans()Hàm này có nhiệm vụ "dịch" một ký tự sang một chuỗi tương ứng, hàm chấp nhận 2 đối số là 2 chuỗi có độ dài bằng nhau (khi đó hàm sẽ trả về một từ điển với các key là các ký tự tương ứng được lấy của chuỗi 1 và các value là các giá trị tương ứng được lấy của chuỗi 2), hoặc chấp nhận 1 đối số là 1 dictionary trong đó key của dictionary phải là 1 ký tự. Ví dụ: inp = "abcdefghijklmnopqrstuxyz" out = "ABCDEFGHIJKLMNOPQRSTUXYZ" str = "Dang Tran Long"; result = str.maketrans(inp, out) print(result) Kết quả: {97: 65, 98: 66, 99: 67, 100: 68, 101: 69, 102: 70, 103: 71, 104: 72, 105: 73, 106: 74, 107: 75, 108: 76, 109: 77, 110: 78, 111: 79, 112: 80, 113: 81, 114: 82, 115: 83, 116: 84, 117: 85, 120: 88, 121: 89, 122: 90} dict = {"D": "Dang", "T": "Tran", "L": "Long"} str = "Dang Tran Long"; result = str.maketrans(dict) print(result) Kết quả: {68: 'Dang', 84: 'Tran', 76: 'Long'} 40. translate()Hàm này có tác dụng thực thi việc dịch chuỗi, translate() thường dùng kết hợp với hàm makestrans(). Ví dụ: inp = "abcdefghijklmnopqrstuxyz" out = "ABCDEFGHIJKLMNOPQRSTUXYZ" str = "Dang Tran Long"; result = str.maketrans(inp, out) print(str.translate(result)) Kết quả: DANG TRAN LONG dict = {"V": "V1", "S": "Study"} str = "VS" result = str.maketrans(dict) print(str.translate(result)) Kết quả: V1Study |