Trong bài học này bạn sẽ được học cách tạo, định dạng, sửa đổi và xóa các chuỗi trong Python. Ngoài ra, bạn sẽ được giới thiệu các hành động và chức năng liên quan đến chuỗi.

1. Chuỗi String trong Python là gì?

Một chuỗi là một dãy các ký tự được sắp xếp với nhau, một ký tự đơn giản là một biểu tượng và máy tính có thể đọc hiểu được ký tự đó thông qua mã máy ASCII.

Máy tính không hiểu ý nghĩa của các ký tự như con người mà chúng sẽ hiểu sẽ chuyển sang kiểu nhị phân (binary). Mặc dù bạn có thể thấy các ký tự trên màn hình của mình, nhưng bên trong nó được lưu trữ và thao tác dưới dạng kết hợp của 0 và 1.

Việc chuyển đổi từ ký tự thành số đượ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ố dạng mã hóa được sử dụng phổ biến.

Cú pháp tạo string trong Python

Chuỗi có thể được tạo bằng cách đặt các ký tự bên trong cặp nháy đơn hoặc nháy kép. Nếu bạn muốn viết chuỗi trên nhiều dòng thì phải sử dụng ba dấu nháy, cách này thường được dùng để tạo docstring.

Ví dụ tạo chuỗi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# all of the following are equivalent
my_string = 'Hello'
print(my_string)
my_string = "Hello"
print(my_string)
my_string = '''Hello'''
print(my_string)
# triple quotes string can extend multiple lines
my_string = """Hello, welcome to
           the world of Python"""
print(my_string)

Như ví dụ này là một vài cách tạo chuỗi thông thường với nháy đơn và nháy kép, chạy lên kết quả sẽ như sau:

1
2
3
4
5
Hello
Hello
Hello
Hello, welcome to
           the world of Python

Truy cập các ký tự của chuỗi string

String được xem như là một list các ký tự nên bạn có thể truy cập đến các ký tự thông qua chỉ mục index của nó. Chỉ mục bắt đầu từ 0, và nếu bạn cố gắng truy cập một ký tự nằm ngoài phạm vi chỉ mục thì sẽ xuất hiện lỗi IndexError. Chỉ số phải là một số nguyên, không thể sử dụng float hoặc các loại khác vì điều này sẽ dẫn đến TypeError.

Chỉ số -1 đề cập đến phần tử cuối cùng, -2 cho phần tử cuối cùng thứ hai, v.v. Chúng ta có thể truy cập một loạt các phần tử trong một chuỗi bằng cách sử dụng toán tử  Slicing (dấu hai chấm).

Ví dụ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
str = 'programiz'
print('str = ', str)
#first character
print('str[0] = ', str[0])
#last character
print('str[-1] = ', str[-1])
#slicing 2nd to 5th character
print('str[1:5] = ', str[1:5])
#slicing 6th to 2nd last character
print('str[5:-2] = ', str[5:-2])

Chạy chương trình này sẽ cho kết quả như sau:

1
2
3
4
5
str =  programiz
str[0] =  p
str[-1] =  z
str[1:5] =  rogr
str[5:-2] =  am

Nhưng nếu bạn cố gắng truy cập đến một phần tử không tồn tại, thì sẽ báo lỗi như ví dụ dưới đây.

1
2
3
4
5
6
7
8
9
# index must be in range
>>> my_string[15
...
IndexError: string index out of range
# index must be an integer
>>> my_string[1.5]
...
TypeError: string indices must be integers

Thay đổi và xóa chuỗi

Để thay đổi chuỗi thì bạn có thể sử dụng chỉ mục index … Điều này là sai nhé các bạn, chuỗi là bất biến nên bạn không thể thay đổi chuỗi, chỉ được phép gán một chuỗi khác vào biến.

Lỗi đổi giá trị của chuỗi
1
2
3
4
5
6
7
>>> my_string = 'programiz'
>>> my_string[5] = 'a'
...
TypeError: 'str' object does not support item assignment
>>> my_string = 'Python'
>>> my_string
'Python'

Chúng ta không thể xóa một ký tự trong chuỗi nhưng có thể xóa hoàn toàn chuỗi bằng cách sử dụng từ khóa del, đây là từ khóa được sử dụng rất nhiều từ các bài học trước tới giờ.

Lỗi xóa một ký tự trong chuỗi
1
2
3
4
5
6
7
>>> del my_string[1]
...
TypeError: 'str' object doesn't support item deletion
>>> del my_string
>>> my_string
...
NameError: name 'my_string' is not defined

2. Các phép toán với chuỗi trong Python

Có nhiều phép toán được thực hiện với chuỗi string làm cho nó trở thành một trong những kiểu dữ liệu được sử dụng nhiều nhất trong Python.

Nối hai hoặc nhiều chuỗi

Phép toán nối hai hoặc nhiều chuỗi thành một chuỗi thì ta gọi là phép nối chuỗi.

  • Để nối chuỗi thì ta sử dụng toán tử +.
  • Nếu muốn lặp lại chuỗi nhiều lần thì dùng toán tử *.

Hãy xem ví dụ dưới đây:

1
2
3
4
5
6
7
8
str1 = 'Hello'
str2 ='World!'
# using +
print('str1 + str2 = ', str1 + str2)
# using *
print('str1 * 3 =', str1 * 3)

Chạy lên kết quả sẽ như sau:

1
2
str1 + str2 =  HelloWorld!
str1 * 3 = HelloHelloHello

Nếu viết hai chuỗi gần kề nhau thì cũng được xem là phép nối chuỗi. Còn nếu muốn nối hai chuỗi có nhiều dòng thì phải bổ sung thêm cặp ngoặc đơn.

Ví dụ
1
2
3
4
5
6
7
8
9
>>> # two string literals together
>>> 'Hello ''World!'
'Hello World!'
>>> # using parentheses
>>> s = ('Hello '
...      'World')
>>> s
'Hello World'

Lặp qua từng ký tự trong chuỗi

Nếu bạn muốn lặp qua từng ký tự trong chuỗi thì có thể kết hợp với vòng lặp for.

Ví dụ
1
2
3
4
5
count = 0
for letter in 'Hello World':
    if(letter == 'l'):
        count += 1
print(count,'letters found')

Kiểm tra chuỗi con trong chuỗi cha

Tương tự, để kiểm tra một chuỗi con có xuất hiện trong chuỗi cha hay không thì ta dùng toán tử in và not in.

Ví dụ
1
2
3
4
>>> 'a' in 'program'
True
>>> 'at' not in 'battle'
False

3. Các định dạng chuỗi

Ký tự nháy đơn và nháy kép

Nếu trong chuỗi có ký tự nháy đơ hoặc nháy kép thì bạn phải bổ thêm đằng trước nó dấu \, nếu không Python sẽ không hiểu đó là một dãy chuỗi. Việc sử dụng nháy đơn hay kép phụ thuộc vào chuỗi được bao quanh bởi nháy đơn hay kép:

  • Nếu bao quanh bởi nháy đơn thì thêm \ vào nháy đơn
  • Nếu bao quanh bởi nháy kép thì thêm \ vào nháy kép
Ví dụ
1
2
3
4
5
6
7
8
# using triple quotes
print('''He said, "What's there?"''')
# escaping single quotes
print('He said, "What's there?"')
# escaping double quotes
print("He said, \"What's there?\"")

Ký tự thoát

Chúng ta có rất nhiều ký tự thoát trong Python, nó là một dạng chuỗi đặc biệt. Ví dụ bạn thêm \n cuối chuỗi thì python sẽ hiểu đó là ký tự xuống hàng.

Dưới đây là danh sách các ký tự thoát.

Escape Sequence Description
\newline Backslash and newline ignored
\\ Backslash
Single quote
\” Double quote
\a ASCII Bell
\b ASCII Backspace
\f ASCII Formfeed
\n ASCII Linefeed
\r ASCII Carriage Return
\t ASCII Horizontal Tab
\v ASCII Vertical Tab
\ooo Character with octal value ooo
\xHH Character with hexadecimal value HH
Ví dụ
1
2
3
4
5
6
7
8
9
>>> print("C:\\Python32\\Lib")
C:\Python32\Lib
>>> print("This is printed\nin two lines")
This is printed
in two lines
>>> print("This is \x48\x45\x58 representation")
This is HEX representation

Đôi khi trong chuỗi có ký tự thoát nhưng bạn muốn đó là ký tự bình thường thì hãy thêm ký tự r đằng trước chuỗi.

Ví dụ
1
2
3
4
5
>>> print("This is \x61 \ngood example")
This is a
good example
>>> print(r"This is \x61 \ngood example")
This is \x61 \ngood example

4. Lời kết

Như vậy là mình đã giới thiệu sơ lược các kiến thức về xử lý chuỗi trong Python, bài này giải thích rõ phần lý thuyết giúp bạn hiểu một cách tường tận để sau này không phải bở ngỡ trước những bài toán phức tạp. Chúc ban học tốt.

Nguồn:https://freetuts.net

 

 

Được quan tâm nhiều nhất

  • Apple Watch Series 4 Teardown

  • Apple Watch Series 5 Teardown - Always on Display Explained

  • iPhone 11 Pro Max Teardown - Tiny Motherboard & BIG Battery!

Bạn thấy bài viết này thế nào?
Thể hiện yêu thương tác giả ở đây nhé!

Thích bài viết

thích

Chia sẻ ngay!

phuongle

Thành viên từ: 10/12/2019

Điểm uy tín: 8,326

SMod: 1,288 hướng dẫn đã chia sẻ

Team

Lập Trình Thành viên của Lập Trình

1 Thành viên

1,288 bài viết

Thêm bình luận

Bình luận bằng tài khoản Facebook

Săn Sale Ngay Trên Shopee - Giảm giá đến 500K Đóng
Amharic Amharic Arabic Arabic Bengali Bengali Chinese (Simplified) Chinese (Simplified) Chinese (Traditional) Chinese (Traditional) English English Filipino Filipino French French German German Hausa Hausa Hindi Hindi Indonesian Indonesian Italian Italian Japanese Japanese Korean Korean Persian Persian Portuguese Portuguese Russian Russian Serbian Serbian Spanish Spanish Thai Thai Turkish Turkish Urdu Urdu Vietnamese Vietnamese