Python dainganxanh
  • Lời nói đầu
  • Chương I. SƠ LƯỢC
    • Bài 1. Cài đặt môi trường
    • Bài 2. Từ khóa và định danh
    • Bài 3. Câu lệnh, khối lệnh và chú thích
    • Bài 4. Nhập, xuất dữ liệu
    • Bài 5. Toán tử và lệnh gán
    • Bài 6. Biến, Hằng
    • Bài 7. Kiểu dữ liệu
    • Bài 8. Thao tác với tệp (cơ bản)
    • Bài 9. Tổng quan về Python
    • Bài tập chương 1
  • Chương II. RẼ NHÁNH - LẶP
    • Bài 10. Cấu trúc rẽ nhánh if…else
    • Bài 11. Cấu trúc lặp với for
    • Bài 12. Cấu trúc lặp với while
    • Bài 13. Lệnh break và continue
    • Bài tập chương 2
  • Chương III. HÀM & MODULE
    • Bài 14. Hàm
    • Bài 15. Tham số hàm
    • Bài 16. Đệ quy
    • Bài 17. Hàm ẩn danh
    • Bài 18. Biến toàn cục và cục bộ
    • Bài 19. Module
    • Bài 20. Package
  • Chương IV. KIỂU DỮ LIỆU
    • Bài 21. Dữ liệu kiểu số
    • Bài 22. Dữ liệu kiểu string
    • Bài 23. Dữ liệu kiểu list
    • Bài 24. Dữ liệu kiểu tuple
    • Bài 25. Dữ liệu kiểu set
    • Bài 26. Dữ liệu kiểu dictionary
  • Chương V. TỆP & THƯ MỤC
    • Bài 27. Đọc và ghi file
    • Bài 28. Quản lý file và folder
  • Chương VI. LỖI & NGOẠI LỆ
    • Bài 29. Ngoại lệ
    • Bài 30. Xử lý ngoại lệ
    • Bài 31. Xây dựng ngoại lệ
  • Chương VII. HƯỚNG ĐỐI TƯỢNG
    • Bài 32. Lập trình hướng đối tượng
    • Bài 33. Đối tượng và Lớp
    • Bài 34. Kế thừa
    • Bài 35. Đa kế thừa
    • Bài 36. Nạp chồng toán tử
  • Chương VIII. NGÀY - GIỜ
    • Python datetime
    • Python strftime()
    • Python strptime()
    • Current date and time
    • Get Current time
    • Timestamp to datetime
    • Python time Module
    • Python sleep()
  • Chương IX. CHỦ ĐỀ NÂNG CAO
    • Python Iterators
    • Python Generators
    • Python Closures
    • Python Decorators
    • Python @property decorator
    • Python RegEx
    • Python Examples
  • PHỤ LỤC - GHI CHÉP
    • Hàm map()
    • Cài Sublime Text để code Python
    • Ghi chép - ghi chú
    • Mảng 2 chiều
    • Công thức với dãy số
  • Tài liệu tham khảo
  • www.dainganxanh.com
  • 🐍Khóa học Python
  • 🤷‍♀️Hỏi đáp, chia sẻ (FG)
  • 🎮Sinh Test chấm Themis
Powered by GitBook
On this page
  • Khởi tạo string
  • Truy cập ký tự trong string
  • Thêm, sửa, xóa ký tự trong string
  • Kiểm tra xâu con chứa trong xâu
  • Lặp theo ký tự của xâu
  • Hàm dựng sẵn cho string
  • Định dạng xâu
  • Một số thao tác khác với dấu \
  • Định dạng với f-string
  • Định dạng theo phương thức format()
  • Phương thức thường dùng

Was this helpful?

  1. Chương IV. KIỂU DỮ LIỆU

Bài 22. Dữ liệu kiểu string

Một xâu (string - chuỗi) là một dãy các ký tự. Một ký tự chỉ đơn giản là một biểu tượng (một lần nhấn phím). Ví dụ, ngôn ngữ tiếng Anh có 26 ký tự.

Máy tính không xử lý các ký tự, chúng xử lý các số (nhị phân). Mặc dù ta có thể nhìn thấy các ký tự trên màn hình của mình, nhưng bên trong nó vẫn được lưu trữ và thao tác dưới dạng kết hợp của 0 và 1.

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

Trong Python, string là một chuỗi các ký tự Unicode. Unicode là bảng mã có thể biểu diễn mọi ký tự trong tất cả các ngôn ngữ hiện nay trên thế giới.

Khởi tạo string

Các ký tự được đặt trong cặp nháy đơn, kép, ba nháy đơn được gọi là một xâu (string). Một xâu có thể có 1 hoặc nhiều ký tự. Xâu không chứa ký tự gọi là xâu rỗng.

Ví dụ:

s = 'Hello'
print(s)           # Hello

s = "Hello"
print(s)           # Hello

s = '''Hello'''
print(s)           # Hello

s = """Hello, welcome to
           the world of Python"""
print(s)           
# với ba nháy đơn hoặc ba nháy kép cho phép string viết trên nhiều dòng

Truy cập ký tự trong string

Ta có thể truy cập từng ký tự của chuỗi thông qua chỉ số. Chỉ số của các ký tự trong chuỗi được bắt đầu từ 0 và theo chiều ngược lại được bắt đầu từ -1.

Ví dụ:

str = 'Python3'
print('str = ', str)               # str =  Python3

print('str[0] = ', str[0])         # str[0] =  P

print('str[-1] = ', str[-1])       # str[-1] =  3

print('str[1:5] = ', str[1:5])     # str[1:5] =  ytho

print('str[3:-2] = ', str[3:-2])   # str[3:-2] =  ho

Chỉ số chỉ có thể là số nguyên trong phạm vi từ 0 đến chiều dài xâu - 1.

Thêm, sửa, xóa ký tự trong string

String không cho phép sửa đổi ký tự sau khi gán. Ta chỉ có thể ghép xâu với toán tử +, * hoặc gán lại giá trị mới cho xâu. Ta cũng có thể xóa biến xâu bằng từ khoá del.

Ví dụ:

a = "Học "
b = "Python "
c = a + b
print(c)        # Học Python 
print(c*3)      # Học Python Học Python Học Python 

c = c + "rất vui"
print(c)        # Học Python rất vui

del a
print(a) # báo lỗi: NameError: name 'a' is not defined

Lưu ý: (1) Khi viết 2 string gần nhau sẽ cho kết quả như sử dụng phép cộng 2 string. (2) Ta có thể nối các string trên các dòng khác nhau bằng dấu ngoặc.

Ví dụ:

a = "học " "python"

b = ("học "
     "Python "
     "thật vui")

print(a)          # học python
print(b)          # học python thật vui

Kiểm tra xâu con chứa trong xâu

Ta có thể kiểm tra xem một xâu con có tồn tại trong một xâu hay không bằng cách sử dụng từ khóa in.

a = "học python"
print('a' in a)        # False
print('py' in a)       # True 
print('x' not in a)    # True

Lặp theo ký tự của xâu

a = 'Hello World'
count = 0
for x in a:
    if(x == 'l'):
        count += 1
print(f'Tìm thấy {count} chữ l trong xâu "{a}"')
# output: Tìm thấy 3 chữ l trong xâu "Hello World"

Hàm dựng sẵn cho string

Có nhiều hàm để làm việc với xâu. Các hàm thường dùng khi làm việc với xâu là hàm len() và emurate().

a = 'done'

lst_a = list(enumerate(a))
dic_a = dict(enumerate(a))
len_a = len(a)

print(lst_a)    # [(0, 'd'), (1, 'o'), (2, 'n'), (3, 'e')]
print(dic_a)    # {0: 'd', 1: 'o', 2: 'n', 3: 'e'}
print(len_a)    # 4

Định dạng xâu

Yêu cầu 1: Viết chương trình in ra màn hình dòng sau: He said, "What's there?"

Nếu ta dùng cặp nháy đơn hay nháy kép đều sẽ gặp lỗi vì bản thân câu trên đã có chứa cả nháy đơn và nháy kép.

Cách xử lý là dùng cặp ba nháy đơn hoặc dùng ký tự "\" để bỏ qua dấu khóa string. Ví dụ:

a = '''He said, "What's there?"'''
b = 'He said, "What\'s there?"'
c = "He said, \"What's there?\""

print(a)    # He said, "What's there?"
print(b)    # He said, "What's there?"

Yêu cầu 2: Viết chương trình in ra màn hình dòng sau: C:\My Documents\noname

Trong Python, khi gặp dấu \ thì Python sẽ coi ký tự tiếp theo là một ký tự xâu bình thường và không coi nó là toán tử hay keyword nữa (trừ những toán tử, keyword đi kèm dấu \).

Vì vậy trong trường hợp ta muốn Python coi dấu \ là một ký tự thông thường thì ta phải thêm từ khóa r vào trường nháy mở xâu.

Ví dụ, chạy thử chương trình sau để thấy sự khác nhau giữa 2 câu lệnh

print('C:\My Documents\noname')
print(r'C:\My Documents\noname')

Một số thao tác khác với dấu \

Lệnh

Ý nghĩa

\a

ASCII Bell (âm báo)

\b

ASCII Backspace (xóa lùi)

\f

ASCII Formfeed (trang mới)

\n

ASCII Linefeed (dòng mới)

\r

ASCII Carriage Return

\t

ASCII Horizontal Tab (tab ngang)

\v

ASCII Vertical Tab (tab dọc)

\ooo

Character with octal value ooo (Ký tự có giá trị bát phân là ooo)

\xHH

Character with hexadecimal value HH (Ký tự có giá trị thập lục phân là HH)

Định dạng với f-string

Xét ví dụ dưới đây:

a = 12
b = 12.3456789
c = ['hoa', 'lá', 'cành']

print("Biểu diễn nhị phân của {a} là {a:b}".format(a))
print(f"Biểu diễn dạng số mũ của {a} là {a:e}")
print(f'Số {a} có thể viết thành: {a:.4f}')
print(f'Số {b} có thể viết thành {b:.2f}')
print(f'|{c[0]:<10}|{c[2]:^20}|{c[1]:>10}|')

Định dạng theo phương thức format()

a = 36
b = 12.3456789
c = ['hoa', 'lá', 'cành']

print("Biểu diễn nhị phân của {0} là {0:b}".format(a))
print("Biểu diễn dạng số mũ của {0} là {0:e}".format(a))
print('Số {0} có thể viết thành: {0:.4f}'.format(a))
print('Số {0} có thể viết thành {0:.2f}'.format(b))
print('|{0:<10}|{2:^20}|{1:>10}|'.format(c[0],c[1],c[2]))

Phương thức thường dùng

Python có rất nhiều phương thức làm việc với string. Một số phương pháp thường được sử dụng là lower(), upper(), join(), split(), find(), replace(), index()...

Ví dụ:

a = 'Học Python'
a = a.upper()
print(a)            # HỌC PYTHON
a = a.lower()
print(a)            # học python
a = a.split()
print(a)            # ['học', 'python']
a = ' '.join(a)
print(a)            # học python
t = a.find('c')
print(t)            # 2
a = a.replace('học','learn')    
print(a)            # learn python
print(a.index('n')) # 4
PreviousBài 21. Dữ liệu kiểu sốNextBài 23. Dữ liệu kiểu list

Last updated 3 years ago

Was this helpful?

Có thể tham khảo .

các phương thức khác làm việc với string tại đây