Hướng dẫn ký tự trong python
Chuỗi ký tự (string) là kiểu dữ liệu phổ biến hàng đầu trong Python. Hầu như bất kỳ chương trình nào cũng đều cần dùng đến kiểu string. Bài học này sẽ giới thiệu chi tiết về kiểu chuỗi ký tự (string) trong Python. String trong Python có nhiều điểm tương đồng với chuỗi trong các ngôn ngữ tựa C hay C#. Show String trong PythonKiểu string trong Python là chuỗi các ký tự Unicode. Python cho phép viết giá trị chuỗi theo nhiều cách khác nhau:
Python không có kiểu ký tự như các ngôn ngữ khác. Kiểu ký tự trong Python có thể xem như một chuỗi chỉ chứa 1 ký tự. Cuỗi ký tự đặt trong cặp dấu nháy đơn có thể chứa dấu nháy kép. Tương tự, nếu chuỗi ký tự đặt trong cặp dấu nháy kép thì có thể chứa cả dấu nháy đơn. Chuỗi ký tự tạo ra bởi cặp dấu nháy đơn hoặc nháy kép bắt buộc phải nằm trên một dòng. \’ và \” được gọi là các escape character biểu diễn cho ký tự ‘ và “. Cặp 3 dấu nháy đơn (hoặc cặp 3 dấu nháy kép) cho phép tạo ra chuỗi với nhiều dòng. Ví dụ: text = """Strings are amongst the most popular types in Python. We can create them simply by enclosing characters in quotes. Python treats single quotes the same as double quotes. Creating strings is as simple as assigning a value to a variable.""" print(text) line = "Hello world" print(line) Tương tự như các kiểu số trong Python, string cũng là kiểu dữ liệu bất biến (immutable). Nghĩa là mọi thao tác cập nhật chuỗi đều dẫn đến tạo chuỗi mới. Điều này cũng tương tự như kiểu string trong C#. Escape character trong Python stringNếu bạn đã học C hẳn đã gặp các ký tự như \r, \n, \t. Các ký tự này được gọi là escape character. Chuỗi trong Python cũng sử dụng các escape character tương tự như trong C. Escape character là một số ký tự có ý nghĩa đặc biệt nếu xuất hiện trong xâu. Mỗi escape character là một ký tự. Mỗi ký tự này có thể được biểu diễn ở dạng dấu xược quen thuộc (backslash notation) hoặc ở dạng mã hex. Dưới đây là một số escape character thường gặp:
Đây chỉ là các ký tự thông dụng. Ngoài ra còn một số ký tự nữa ít gặp hơn. Trong các ký tự trên, \r, \n, \t là thường gặp nhất khi in dữ liệu ra console:
>>> print("Hello\tworld") Hello world >>> print("Hello\nworld") Hello world >>> Trong cách viết chuỗi, \’ và \” cũng là các escape character biểu diễn cho ký tự ‘ và “. Nếu bạn muốn Python bỏ qua tất cả các escape character, bạn có thể viết như sau: >>> print(r'Hello\nworld') # đặt thêm r vào trước giá trị chuỗi Hello\nworld Bạn đặt thêm r (hoặc R) vào trước giá trị của chuỗi. Ký tự r (R) khi này sẽ biến chuỗi thành chuỗi thô (raw string). Trong chuỗi thô mọi ký tự đặc biệt như escape character sẽ bị bỏ qua. Nếu bạn có xuất phát điểm là C#: trong C# bạn không thể viết chuỗi Các phép toán trên kiểu string trong PythonPython cung cấp sẵn một số phép toán trên chuỗi ký tự. Để dễ minh họa các phép toán này, chúng ta giả sử có hai chuỗi a = ‘Hello’ và b = ‘Python’.
Lưu ý các phép so sánh chuỗi sẽ so từng cặp ký tự từ trái qua phải, ký tự hoa khác ký tự thường. Python cũng áp dụng các phép so sánh >, <, >=, <= cho kiểu chuỗi ký tự. Bạn có thể thử nghiệm các phép toán trên như sau: >>> a, b = 'Hello', 'Python' >>> a + b 'HelloPython' >>> a[1:] 'ello' >>> a[-1:] 'o' >>> a[-1:0] '' >>> a[-2:] 'lo' >>> 'lo' in a True >>> 'lol' in a False >>> a * 2 'HelloHello' >>> a[0] 'H' >>> Chuỗi định dạng (formated string) trong PythonHãy xem ví dụ sau: >>> name, age = 'Donald', 40 >>> greeting = 'Welcome, %s, %i years old' % (name, age) >>> greeting 'Welcome, Donald, 40 years old' >>> print('Welcome to heaven, %s, %i years old' % (name, age)) Welcome to heaven, Donald, 40 years old >>> Ví dụ này minh họa cách tạo một xâu có định dạng từ một khuôn mẫu và các biến. Lưu ý các biến phải đặt trong cặp dấu () và phân tách nhau bởi dấu phẩy. Danh sách biến (thực chất là một biến kiểu tuple) phân tách với chuỗi bằng ký tự Dưới đây là các ký tự định dạng trong Python:
Đây là cách thức tạo chuỗi có định dạng từ Python 2.x. Trong Python 3 bạn vẫn có thể dùng được lối viết này. Nếu không muốn dùng phép toán định dạng %, bạn có thể sử dụng hàm >>> print('Welcome to heaven, {1}, {0} years old'.format(age, name)) Welcome to heaven, Donald, 40 years old Khi sử dụng hàm format bạn tạo ra các placeholder trong chuỗi với số thứ tự (tính từ 0). Biến với số thứ tự tương ứng từ phương thức format sẽ được đặt vào thay cho placeholder để tạo thành chuỗi hoàn chỉnh. Lối viết này hoàn toàn giống chuỗi định dạng trong C#. Cách viết này tiện lợi hơn so với sử dụng phép toán định dạng %. Bạn không cần nhớ các ký tự định dạng nữa. Từ Python 3.6 bạn có thể sử dụng một lối viết chuỗi định dạng khác: >>> name, age = 'Donald', 40 >>> print(f'Hello, {name}. You are {age}. Welcome to heaven!') Hello, Donald. You are 40. Welcome to heaven! Đây là lối viết chuỗi định dạng tiện lợi nhất trong Python. Trong lối viết này bạn đặt ký tự f vào đầu chuỗi. Bên trong chuỗi bạn có thể sử dụng biến đặt trong cặp {}. Loại chuỗi này được gọi là f-string. Bên trong cặp {} bạn có thể sử dụng bất kỳ giá trị hoặc biểu thức nào của Python. Cách viết này rất giống với string interpolation trong C#. Các phương thức xử lý chuỗi trong PythonChuỗi trong Python là một object với nhiều phương thức xây dựng sẵn. Dưới đây là minh họa một số phương thức thường gặp. >>> greeting = 'Hello, Donald. Welcome to heaven' >>> greeting 'Hello, Donald. Welcome to heaven' >>> # các hàm sau đây phải sử dụng từ object của chuỗi >>> greeting.capitalize() # viết hoa chữ cái đầu tiên, tất cả chữ cái còn lại viết thường 'Hello, donald. welcome to heaven' >>> greeting.lower() # chuyển về chuỗi viết thường 'hello, donald. welcome to heaven' >>> greeting.upper() # chuyển về chuỗi viết hoa 'HELLO, DONALD. WELCOME TO HEAVEN' >>> greeting.title() # viết hoa chữ cái đầu mỗi từ 'Hello, Donald. Welcome To Heaven' >>> greeting.split() # cắt một chuỗi ra các từ ['Hello,', 'Donald.', 'Welcome', 'to', 'heaven'] >>> greeting = ' Hello, Donald. Welcome to heaven ' >>> greeting.strip() # cắt các khoảng trống ở đầu và cuối chuỗi 'Hello, Donald. Welcome to heaven' >>> greeting.rstrip() # cắt các khoảng trống ở cuối chuỗi (lề phải) ' Hello, Donald. Welcome to heaven' >>> greeting.lstrip() # cắt các khoảng trống ở đầu chuỗi (lề trái) 'Hello, Donald. Welcome to heaven ' >>> # một số hàm kiểm tra >>> my_string = "Hello World" >>> my_string.isalnum() #kiểm tra xem chuỗi có chứa toàn chữ số False >>> my_string.isalpha() # chuỗi chứa toàn chữ cái False >>> my_string.isdigit() # chuỗi có chứa chứ số False >>> my_string.isupper() # chuỗi chứa toàn ký tự hoa False >>> my_string.islower() # chuỗi chứa toàn kỹ tự thường False >>> my_string.isspace() # chuỗi chỉ chứa khoảng tráng False >>> my_string.endswith('d') # kết thúc là d True >>> my_string.startswith('H') # bắt đầu là H True >>># hàm sau đây là hàm toàn cục >>> len(greeting) # lấy độ dài chuỗi 32 >>> Lưu ý: do string trong Python là một class với nhiều phương thức hỗ trợ, bạn cần gọi các phương thức này từ biến (ví dụ greeting.upper()). Đây là điểm khác biệt so với các hàm toàn cục như print hay input (không gọi từ biến). Chúng ta sẽ học chi tiết về class trong Python ở phần sau của bài giảng. Kết luậnBài học này đã giới thiệu chi tiết về kiểu chuỗi ký tự (string) trong Python. Điểm lưu ý là trong Python có nhiều cách khác nhau để viết giá trị kiểu string (so với các ngôn ngữ như C# hay Java). Tuy nhiên, string trong Python có nhiều điểm tương đồng với chuỗi trong các ngôn ngữ tựa C như escape sequence và cách viết định dạng (kiểu cũ). Python 3 có cách định dạng rất giống với C#. + Nếu bạn thấy site hữu ích, trước khi rời đi hãy giúp đỡ site bằng một hành động nhỏ để site có thể phát triển và phục vụ bạn tốt hơn. |