Sử Dụng Kiểu Dữ Liệu String Trong Python - Góc Học IT

1. Tạo String trong Python

Một String là một chuỗi các ký tự (character). Một ký tự chỉ đơn giản là một biểu tượng (symbol) được vẽ trên màn hình bằng các pixel. Các ký tự hiển thị trên màn hình được lưu trữ bởi các số nhị phân 0 và 1.

Quá trình chuyển đổi ký tự thành số nhị phân được gọi là mã hóa. Và quá trình ngược lại gọi là giải mã. ASCII và Unicode là một số bảng mã phổ biến được sử dụng.

Trong Python, một String là một chuỗi các ký tự Unicode. Bảng mã Unicode có khả năng mã hóa và giải mã mọi ký tự trong tất cả các ngôn ngữ, các ký tự đặc biệt,…

Tạo String trong Python

String trong Python có thể được tạo bằng cách sử dụng dấu ngoặc đơn, dấu ngoặc kép và thậm chí sử dụng ba dấu nháy (triple quote).# Creating a String with single Quotes my_string = 'Gochocit.com' print(my_string) # Creating a String with double Quotes my_string = "Gochocit.com" print(my_string) # Creating a String with triple Quotes my_string = '''Gochocit.com''' print(my_string) # Creating a String with triple Quotes my_string = """Hello, welcome to Gochocit.com!""" print(my_string) # Creating String with triple Quotes allows multiple lines my_string = '''Hello, This is Gochocit.com''' print(my_string)

Kết quả
Gochocit.com Gochocit.com Gochocit.com Hello, welcome to Gochocit.com! Hello, This is Gochocit.com

Biến (variable) tham chiếu đến String

Chúng ta có thể gán một String cho một biến bằng toán tử gán (=). Lúc này, biến đó sẽ tham chiếu đến một đối tượng của lớp str. Ví dụ:website = "Gochocit.com" print(website) print(type(website))

Kết quả
Gochocit.com <class 'str'>

2. Truy cập các ký tự của String trong Python

Chúng ta có thể truy cập từng ký tự trong String bằng index của chúng. Index của một String bắt đầu đầu bằng 0, phải là một số nguyên. Python cho phép index của String là số nguyên âm. Index bằng -1 là vị trí của ký tự cuối cùng bên phải trong String.

Index trong String
website = 'gochocit.com' print('website = ', website) #first character print('website[0] = ', website[0]) #character at index 5 print('website[5] = ', website[5]) #last character print('website[-1] = ', website[-1]) #character at index -5 print('website[-5] = ', website[-5])
Kết quả
website = gochocit.com website[0] = g website[5] = c website[-1] = m website[-5] = t

Chúng ta có thể truy xuất một số ký tự liền kề bằng cách sử dụng toán tử slicing :.website = 'gochocit.com' print('website = ', website) #slicing 2nd to 5th character print('website[1:5] = ', website[1:5]) #slicing 6th to 2nd last character print('website[5:-2] = ', website[5:-2])

Kết quả
website = gochocit.com website[1:5] = ocho website[5:-2] = cit.c

Khi truy cập một ký tự với index không thuộc khoảng index trong String sẽ gây ra lỗi IndexError. Nếu index không phải là kiểu integer thì sẽ gây ra lỗi TypeError.website = 'gochocit.com' print('website = ', website) # index must be in range # IndexError: string index out of range print('website[50] = ', website[50]) # index must be an integer # TypeError: string indices must be integers print('website[1.5] = ', website[1.5])

3. Các thao tác trên String trong Python

3.1. Thay đổi hoặc xóa một String

Trong Python, String có giá trị bất biến. Có nghĩa là các ký tự trong Strirng không thể thay đổi. Vì thế, String cũng không thể thay đổi. Nếu cố thay đổi sẽ gây ra lỗi TypeError.website = 'gochocit.com' website[1] = 'a'

Kết quả
TypeError: 'str' object does not support item assignment

Nếu muốn có một String khác thì chúng ta chỉ đơn giản là gán String đó cho biến.website = 'gochocit.com' print(website) website = "lhvinhckc.info" print(website)

Kết quả
gochocit.com lhvinhckc.info

Chúng ta không thể xóa một ký tự trong String nhưng có thể sử dụng từ khóa del để xóa một String.website = 'gochocit.com' #TypeError: 'str' object doesn't support item deletion del website[1] del website #NameError: name 'website' is not defined print(website)

3.2. Các toán tử trên String

Toán tử nối 2 hoặc nhiều String

Toán tử + giúp nối các chuỗi lại với nhau. Toán tử * giúp lặp lại một chuỗi với một số lần cho trước.# Python String Operations str1 = 'Hello, ' str2 ='Welcome to ' str3 ='Gochocit.com!' # using + print('str1 + str2 + str3 = ', str1 + str2 + str3) # using * print('str3 * 3 =', str3 * 3)

Kết quả
str1 + str2 + str3 = Hello, Welcome to Gochocit.com! str3 * 3 = Gochocit.com!Gochocit.com!Gochocit.com!

3.3. Duyệt qua từng ký tự trong String

Chúng ta có thể duyệt qua từng ký tự trong một chuỗi bằng vòng lặp for. Bên dưới là một ví dụ để đếm số lượng ký tự ‘c’ trong một chuỗi.# Iterating through a string count = 0 for letter in 'Gochocit.com': if(letter == 'c'): count += 1 print(count,'letters found')

Kết quả
3 letters found

3.4. Kiểm tra một String có thuộc một String khác không?

Sử dụng từ khóa in hoặc not in để kiểm tra một String có thuộc một String khác không?website = 'gochocit.com' #True print("it" in website) #False print("ckc" in website) #True print("itckc" not in website) #False print("com" not in website)

3.5. Định dạng (format) String trong Python

Python cho phép chúng ta định dạng String bằng cách sử dụng hàm format(). Hàm format() sử dụng dấu ngoặc nhọn {} để giữ chổ trong String cho các đối số của hàm format().# Default order String1 = "{} {} {}".format('Goc', 'hoc', 'it') print("Print String in default order: ") print(String1) # Positional Formatting String1 = "{1} {0} {2}".format('Goc', 'hoc', 'it') print("Print String in Positional order: ") print(String1) # Keyword Formatting String1 = "{l} {h} {g}".format(g='Goc', h='hoc', l='it') print("Print String in order of Keywords: ") print(String1)

Kết quả
Goc hoc it Print String in Positional order: hoc Goc it Print String in order of Keywords: it hoc Goc

Chúng ta có thể định dạng các số integerfloat với các ký hiệu format đặc biệt. Ví dụ:# Formatting of Integers String1 = "{0:b}".format(16) print("Binary representation of 16 is ") print(String1) # Formatting of Floats String1 = "{0:e}".format(165.6458) print("Exponent representation of 165.6458 is ") print(String1) # Rounding off Integers String1 = "{0:.2f}".format(1/6) print("one-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

Nếu không sử dụng hàm format(), chúng ta có thể sử dụng kiểu định dạng với toán tử %. Ví dụ:num1 = 12.3456789 print("Formatting in 3.2f format: ") print('The value of num1 is %3.2f' % num1) print("Formatting in 3.4f format: ") print('The value of num1 is %3.4f' % num1)

Kết quả
Formatting in 3.2f format: The value of num1 is 12.35 Formatting in 3.4f format: The value of num1 is 12.3457

3.6. Ký tự escape trong Python

Khi print các chuỗi có đấu nháy đơn hoặc nháy kép hoặc một ký tự không hợp lệ nào đó thì sẽ gây ra lỗi. Ví dụ:#SyntaxError: unterminated string literal print("He said, "What's there?"") txt = "We are the so-called "Vikings" from the north." # SyntaxError: invalid syntax print(txt) #SyntaxError: unterminated string literal print("C:\Python\")

Chúng ta giải quyết những trường hợp này bằng cách sử dụng ký tự escape \. Ngoài ra, chúng ta có thể bỏ qua ký tự escape bằng cách đặt r hoặc R trước String.my_string = 'I\'m a "man"' print("Escaping Single Quote: ") print(my_string) my_string = "I'm a \"man\"" print("Escaping Double Quotes: ") print(my_string) my_path = "C:\\Python\\Geeks\\" print("Escaping Backslashes: ") print(my_path) print("This is \x48\x45\x58 representation") #ignore escape character print(r"This is \x48\x45\x58 representation")

Kết quả
Escaping Single Quote: I'm a "man" Escaping Double Quotes: I'm a "man" Escaping Backslashes: C:\Python\Geeks\ This is HEX representation This is \x48\x45\x58 representation

Các bạn có thể xem tất cả các ký tự escape tại đây.

  • Ngoại lệ (exception) trong PHP
  • Nạp chồng toán tử (operator overloading) trong C++
  • Sự khác nhau giữa echo và print trong PHP
  • Mảng kết hợp (associative array) trong PHP
  • Cấu trúc rẽ nhánh switch case và minh họa với C++

3.7. Một số hàm thường sử dụng khi thao tác với String trong Python

HàmChức năng
enumerate()Trả về một đối tượng bao gồm tất cả index và ký tự tương ứng trong String
len()Trả về số ký tự có trong String
lower()Chuyển các ký tự trong String thành ký tự thường
upper()Chuyển các ký tự trong String thành ký tự hoa
join()Nối các String lại với nhau
split()Trả về một danh sách chứa các từ (word) trong String
find()Trả về vị trí đầu tiên của một String được tìm thấy trong một String khác
replace()Thay thế một String con bằng một String khác trong String cha. Rồi trả về String mới nhận được.
website = "Welcome to Gochocit.com" # enumerate() list_enumerate = list(enumerate(website)) print('list(enumerate(website) = ', list_enumerate) #character count print('len(website) = ', len(website)) print(website.lower()) print(website.upper()) print(website.split()) print(website.join(["How ", " are ", " you?"])) print(website.find("it")) print(website.replace('Gochocit.com','lhvinhckc.info'))
Kết quả
list(enumerate(website) = [(0, 'W'), (1, 'e'), (2, 'l'), (3, 'c'), (4, 'o'), (5, 'm'), (6, 'e'), (7, ' '), (8, 't'), (9, 'o'), (10, ' '), (11, 'G'), (12, 'o'), (13, 'c'), (14, 'h'), (15, 'o'), (16, 'c'), (17, 'i'), (18, 't'), (19, '.'), (20, 'c'), (21, 'o'), (22, 'm')] len(website) = 23 welcome to gochocit.com WELCOME TO GOCHOCIT.COM ['Welcome', 'to', 'Gochocit.com'] How Welcome to Gochocit.com are Welcome to Gochocit.com you? 17 Welcome to lhvinhckc.info 5/5 - (25 bình chọn)Bài trước và bài sau trong môn học<< Sử dụng module và package trong PythonCấu trúc dữ liệu List trong Python >>

Từ khóa » Cách Sử Dụng String Trong Arduino