Trong Python, String là các mảng byte đại diện cho các ký tự Unicode. Tuy nhiên, Python không có kiểu dữ liệu ký tự, một ký tự đơn giản chỉ là một string có độ dài là 1. Dấu ngoặc vuông có thể được sử dụng để truy cập các phần tử của string.
Nội dung chính
1. Tạo một string
String trong Python có thể được tạo bằng cách sử dụng dấu ngoặc đơn hoặc dấu ngoặc kép hoặc thậm chí ba dấu ngoặc đơn.
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------
# Python Program for
# Creation of String
# Creating a String
# with single Quotes
String1 = 'Welcome to the Cafedev World'
print("String with the use of Single Quotes: ")
print(String1)
# Creating a String
# with double Quotes
String1 = "I'm a Cafedev"
print("\nString with the use of Double Quotes: ")
print(String1)
# Creating a String
# with triple Quotes
String1 = '''I'm a Cafedev and I live in a world of "Cafedev"'''
print("\nString with the use of Triple Quotes: ")
print(String1)
# Creating String with triple
# Quotes allows multiple lines
String1 = '''Cafedev
For
Life'''
print("\nCreating a multiline String: ")
print(String1)
Kết quả:
String with the use of Single Quotes:
Welcome to the Cafedev World
String with the use of Double Quotes:
I'm a Cafedev
String with the use of Triple Quotes:
I'm a Cafedev and I live in a world of "Cafedev"
Creating a multiline String:
Cafedev
For
Life
2. Truy cập các ký tự trong Python
Trong Python, các ký tự riêng lẻ của String có thể được truy cập bằng cách sử dụng phương thức chỉ mục. Phương thức chỉ mục cho phép các tham chiếu địa chỉ âm để truy cập các ký tự ở hàng sau của String, ví dụ -1 để chỉ ký tự cuối cùng, -2 để chỉ ký tự cuối cùng thứ hai, v.v.
Việc truy cập một chỉ mục ngoài phạm vi sẽ gây ra IndexError. Chỉ kiểu Integer (nguyên) mới được phép truyền dưới dạng chỉ mục, kiểu float (thực) hoặc các kiểu khác sẽ gây ra TypeError .
[Hình ảnh]
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------
# Python Program to Access
# characters of String
String1 = "Cafedev.vn"
print("Initial String: ")
print(String1)
# Printing First character
print("\nFirst character of String is: ")
print(String1[0])
# Printing Last character
print("\nLast character of String is: ")
print(String1[-1])
Kết quả:
Initial String:
Cafedev.vn
First character of String is:
C
Last character of String is:
n
2.1 Cắt string
Để truy cập vào một loạt các ký tự trong String, phương pháp cắt được sử dụng. Cắt trong String được thực hiện bằng cách sử dụng toán tử Cắt (dấu hai chấm).
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------
# Python Program to
# demonstrate String slicing
# Creating a String
String1 = "Cafedev.vnCafedev"
print("Initial String: ")
print(String1)
# Printing 3rd to 12th character
print("\nSlicing characters from 3-12: ")
print(String1[3:12])
# Printing characters between
# 3rd and 2nd last character
print("\nSlicing characters between " +
"3rd and 2nd last character: ")
print(String1[3:-2])
Kết quả:
Initial String:
Cafedev.vnCafedev
Slicing characters from 3-12:
edev.vnCafed
Slicing characters between 3rd and 2nd last character:
dev.vnC
3. Xóa / Cập nhật từ một String
Trong Python, không được phép cập nhật hoặc xóa các ký tự khỏi String. Điều này sẽ gây ra lỗi vì việc gán mục hoặc xóa mục khỏi String không được hỗ trợ mặc dù có thể xóa toàn bộ String với việc sử dụng từ khóa del được tích hợp. Điều này là do String không thay đổi, do đó các thành phần của String không thể thay đổi sau khi được gán. Chỉ các string mới có thể được gán lại cho cùng một tên.
3.1 Cập nhật ký tự:
# Python Program to Update
# character of a String
String1 = "Hello, I'm a Geek"
print("Initial String: ")
print(String1)
# Updating a character
# of the String
String1[2] = 'p'
print("\nUpdating character at 2nd Index: ")
print(String1)
Lỗi:
Traceback (most recent call last):
File “/home/360bb1830c83a918fc78aa8979195653.py”, line 10, in
String1[2] = ‘p’
TypeError: ‘str’ object does not support item assignment
3.2 Cập nhật toàn bộ string:
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------
# Python Program to Update
# entire String
String1 = "Hello, I'm a Cafedev"
print("Initial String: ")
print(String1)
# Updating a String
String1 = "Welcome to the Cafedev World"
print("\nUpdated String: ")
print(String1)
Kết quả:
Initial String:
Hello, I'm a Cafedev
Updated String:
Welcome to the Cafedev World
3.3 Xóa một ký tự:
# Python Program to Delete
# characters from a String
String1 = "Hello, I'm a Cafedev"
print("Initial String: ")
print(String1)
# Deleting a character
# of the String
del String1[2]
print("\nDeleting character at 2nd Index: ")
print(String1)
Lỗi:
Traceback (most recent call last):
File “/home/499e96a61e19944e7e45b7a6e1276742.py”, line 10, in
del String1[2]
TypeError: ‘str’ object doesn’t support item deletion
3.4 Xóa toàn bộ string:
Có thể xóa toàn bộ string với việc sử dụng từ khóa del. Hơn nữa, nếu chúng ta cố gắng in string, điều này sẽ gây ra lỗi vì String bị xóa và không có sẵn để in.
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------
# Python Program to Delete
# entire String
String1 = "Hello, I'm a Cafedev"
print("Initial String: ")
print(String1)
# Deleting a String
# with the use of del
del String1
print("\nDeleting entire String: ")
print(String1)
Lỗi:
Traceback (most recent call last):
File “/home/e4b8f2170f140da99d2fe57d9d8c6a94.py”, line 12, in
print(String1)
NameError: name ‘String1’ is not defined
4. Trình tự thoát trong Python
Trong khi việc in String giữa dấu ngoặc đơn và dấu ngoặc kép gây ra lỗi SyntaxError vì String đã có sẵn Dấu ngoặc đơn và Dấu ngoặc kép và do đó không thể được in bằng cách sử dụng một trong hai. Vì vậy, để in một String như vậy, ta có thể sử dụng 3 dấu ngoặc hoặc các Escape Sequence.
Escape Sequence bắt đầu bằng dấu gạch chéo ngược và có thể được thông dịch một cách khác nhau. Nếu dấu ngoặc đơn được sử dụng để thể hiện một string, thì tất cả các dấu ngoặc đơn có trong string phải được thoát và tương tự được thực hiện cho Dấu ngoặc kép.
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------
# Python Program for
# Escape Sequencing
# of String
# Initial String
String1 = '''I'm a "Cafedev"'''
print("Initial String with use of Triple Quotes: ")
print(String1)
# Escaping Single Quote
String1 = 'I\'m a "Cafedev"'
print("\nEscaping Single Quote: ")
print(String1)
# Escaping Doule Quotes
String1 = "I'm a \"Cafedev\""
print("\nEscaping Double Quotes: ")
print(String1)
# Printing Paths with the
# use of Escape Sequences
String1 = "C:\\Python\\Cafedev\\"
print("\nEscaping Backslashes: ")
print(String1)
Kết quả:
Initial String with use of Triple Quotes:
I'm a "Cafedev"
Escaping Single Quote:
I'm a "Cafedev"
Escaping Double Quotes:
I'm a "Cafedev"
Escaping Backslashes:
C:\Python\Cafedev\
Để bỏ qua các escape sequence trong String, r hoặc R được sử dụng, điều này ngụ ý rằng string là một string thô và các Escape sequence bên trong nó sẽ bị bỏ qua.
# Printing Cafedev in HEX
String1 = "This is \x47\x65\x65\x6b\x73 in \x48\x45\x58"
print("\nPrinting in HEX with the use of Escape Sequences: ")
print(String1)
# Using raw String to
# ignore Escape Sequences
String1 = r"This is \x47\x65\x65\x6b\x73 in \x48\x45\x58"
print("\nPrinting Raw String in HEX Format: ")
print(String1)
Kết quả:
Printing in HEX with the use of Escape Sequences:
This is Cafedev in HEX
Printing Raw String in HEX Format:
This is \x47\x65\x65\x6b\x73 in \x48\x45\x58
5. Định dạng của string
Các string trong Python có thể được định dạng bằng cách sử dụng phương thức format(), một công cụ rất linh hoạt và mạnh mẽ để định dạng các String. Phương thức định dạng trong String chứa dấu ngoặc nhọn {} dưới dạng giữ chỗ có thể giữ các đối số theo vị trí hoặc từ khóa để chỉ định thứ tự.
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------
# Python Program for
# Formatting of Strings
# Default order
String1 = "{} {} {}".format('Cafedev', 'For', 'Life')
print("Print String in default order: ")
print(String1)
# Positional Formatting
String1 = "{1} {0} {2}".format('Cafedev', 'For', 'Life')
print("\nPrint String in Positional order: ")
print(String1)
# Keyword Formatting
String1 = "{l} {f} {g}".format(g = 'Cafedev', f = 'For', l = 'Life')
print("\nPrint String in order of Keywords: ")
print(String1)
Kết quả:
Print String in default order:
Cafedev For Life
Print String in Positional order:
For Cafedev Life
Print String in order of Keywords:
Life For Cafedev
Các số nguyên như nhị phân, thập lục phân, v.v. và số thực có thể được làm tròn hoặc hiển thị ở dạng số mũ với việc sử dụng các chỉ định định dạng.
# Formatting of Integers
String1 = "{0:b}".format(16)
print("\nBinary representation of 16 is ")
print(String1)
# Formatting of Floats
String1 = "{0:e}".format(165.6458)
print("\nExponent representation of 165.6458 is ")
print(String1)
# Rounding off Integers
String1 = "{0:.2f}".format(1/6)
print("\none-sixth is : ")
print(String1)
Kết quả:
Binary representation of 16 is
10000
Exponent representation of 165.6458 is
1.656458e+02
one-sixth is :
0.17
Một string có thể là left() hoặc center(^) được chứng minh bằng việc sử dụng các chỉ định định dạng, được phân tách bằng dấu hai chấm(:).
# String alignment
String1 = "|{:<10}|{:^10}|{:>10}|".format('Cafedev','for','Cafedev')
print("\nLeft, center and right alignment with Formatting: ")
print(String1)
# To demonstrate aligning of spaces
String1 = "\n{0:^16} was founded in {1:<4}!".format("CafedevforCafedev", 2009)
print(String1)
Kết quả:
Left, center and right alignment with Formatting:
|Cafedev | for | Cafedev|
CafedevforCafedev was founded in 2009 !
Định dạng kiểu cũ đã được thực hiện mà không sử dụng phương thức định dạng bằng cách sử dụng toán tử %
# Python Program for
# Old Style Formatting
# of Integers
Integer1 = 12.3456789
print("Formatting in 3.2f format: ")
print('The value of Integer1 is %3.2f' %Integer1)
print("\nFormatting in 3.4f format: ")
print('The value of Integer1 is %3.4f' %Integer1)
Kết quả:
Formatting in 3.2f format:
The value of Integer1 is 12.35
Formatting in 3.4f format:
The value of Integer1 is 12.3457
6. Hằng số string
CHỨC NĂNG TÍCH HỢP. | MÔ TẢ |
string.ascii_letters | Ghép các hằng số ascii_lowercase và ascii_uppercase. |
string.ascii_lowercase | Ghép chữ thường |
string.ascii_uppercase | Ghép chữ hoa |
string.digits | Chữ số trong string |
string.hexdigits | Hexadigit trong string |
string.letters | Ghép string chữ thường và chữ hoa |
string.lowercase | Một string phải chứa các chữ cái viết thường. |
string.octdigits | Số thập phân trong một string |
string. | Ký tự ASCII có ký tự dấu chấm câu. |
string.printable | String ký tự có thể in được |
String.endswith() | Trả về True nếu một string kết thúc bằng hậu tố đã cho, nếu không trả về False |
String.startswith () | Trả về True nếu một string bắt đầu bằng tiền tố đã cho, nếu không trả về False |
String.isdigit() | Trả về True nếu tất cả các ký tự trong string là chữ số, nếu không, nó trả về False. |
String.isalpha() | Trả về True nếu tất cả các ký tự trong string là bảng chữ cái, nếu không, nó trả về False. |
string.isdecimal() | Trả về true nếu tất cả các ký tự trong string là số thập phân. |
str.format() | Mộtr trong các phương thức định dạng string trong Python 3, cho phép nhiều định dạng thay thế và định dạng giá trị. |
String.index | Trả về vị trí xuất hiện đầu tiên của string con trong string |
string.uppercase | Một string phải chứa các chữ cái viết hoa. |
String.whitespace() | Một string chứa tất cả các ký tự được coi là khoảng trắng. |
string.swapcase() | Phương thức chuyển đổi tất cả các ký tự chữ hoa thành chữ thường và ngược lại của string đã cho và trả về nó |
replace() | Trả về một bản sao của string trong đó tất cả các lần xuất hiện của một string con được thay thế bằng một string con khác. |
7. Hàm không dùng nữa
CHỨC NĂNG TÍCH HỢP | MÔ TẢ |
string.Isdecimal | Trả về true nếu tất cả các ký tự trong string là số thập phân |
String.Isalnum | Trả về true nếu tất cả các ký tự trong một string đã cho là chữ và số. |
string.Istitle | Trả về Đúng nếu string là một string được chuẩn độ |
String.partition | Tách string ở lần xuất hiện đầu tiên của dấu phân cách và trả về một tuple. |
String.Isidentifier | Kiểm tra xem một string có phải là một định danh hợp lệ hay không. |
String.len | Trả về độ dài của string. |
String.rindex | Trả về chỉ mục cao nhất của string con bên trong string nếu tìm thấy string con. |
String.Max | Trả về ký tự chữ cái cao nhất trong một string. |
String.min | Trả về ký tự chữ cái tối thiểu trong một string. |
String.splitlines | Trả về một danh sách các dòng trong string. |
string.capitalize | Trả lại một từ với ký tự đầu tiên viết hoa. |
string.Exandtabs | Mở rộng các tab trong một string thay thế chúng bằng một hoặc nhiều khoảng trắng |
string.find | Trả về indexin thấp nhất một string con. |
string.rfind | Tìm chỉ số cao nhất. |
string.count | Trả về số lần xuất hiện (không chồng lấp) của string con phụ trong string |
string.lower | Trả về một bản sao của s, nhưng với chữ in hoa được chuyển thành chữ thường. |
string.split | Trả về danh sách các từ của string, Nếu sep đối số thứ hai tùy chọn không có hoặc Không có |
string.rsplit() | Trả về danh sách các từ của string s, quét s từ cuối. |
rpartition() | Phương thức chia string đã cho thành ba phần |
string.splitfields | Trả về danh sách các từ của string khi chỉ được sử dụng với hai đối số. |
string.join | Nối một danh sách hoặc một bộ các từ với sự xuất hiện của sep. |
string.strip() | Nó trả về một bản sao của string với cả hai ký tự đầu và cuối được loại bỏ |
string.lstrip | Trả về một bản sao của string với các ký tự hàng đầu bị loại bỏ. |
string.rstrip | Trả về một bản sao của string với các ký tự dấu được loại bỏ. |
string.swapcase | Chuyển đổi chữ in thường thành chữ in hoa và ngược lại. |
string.transTable | Dịch các ký tự bằng bảng |
string.upper | chữ thường được chuyển thành chữ hoa |
string.ljust | trái chứng minh trong một lĩnh vực có chiều rộng nhất định. |
string.rjust | Phải chứng minh trong một lĩnh vực có chiều rộng nhất định. |
string.center() | Trung tâm biện minh trong một lĩnh vực có chiều rộng nhất định. |
string-zfill | Pad một string số ở bên trái với các chữ số 0 cho đến khi đạt được chiều rộng cho trước. |
string.replace | Trả về một bản sao của string s với tất cả các lần xuất hiện của string con cũ được thay thế bằng mới. |
string.casefold() | Trả về string bằng chữ thường có thể được sử dụng để so sánh ngẫu nhiên. |
string.encode | Mã hóa string thành bất kỳ mã hóa nào được hỗ trợ bởi mã hóa Python.Default là utf-8. |
string.maketrans | Trả về bảng dịch có thể sử dụng cho str.translate () |
Nguồn và Tài liệu tiếng anh tham khảo:
Tài liệu từ cafedev:
- Full series tự học Python từ cơ bản tới nâng cao tại đây nha.
- Ebook về python tại đây.
- Các series tự học lập trình khác
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
Chào thân ái và quyết thắng!