Str trong Python là gì? Kiểu dữ liệu chuỗi và định dạng chuỗi trong Python

Lập Trình
Str trong Python là gì? Kiểu dữ liệu chuỗi và định dạng chuỗi trong Python
Bài viết được sự cho phép của tác giả Kien Dang Chung Xử lý văn bản là công việc thường xuyên trong các ứng dụng hiện đại, văn bản có ở khắp mọi nơi, do vậy nắm vững kiến thức về kiểu chuỗi sẽ giúp bạn giải quyết được các vấn đề. 1. Kiểu dữ liệu chuỗi Kiểu dữ liệu chuỗi – string trong Python là một trong những kiểu dữ liệu cơ bản và được sử dụng rất phổ biến trong Python , một từ, một đoạn văn bản đều là kiểu chuỗi. Chuỗi (string) được đặt trong dấu ngoặc kép, có thể là dấu ngoặc kép đơn (”) hoặc dấu ngoặc kép đôi (“”). Ví dụ: "Hello, World!" hay 'Python' str trong Python là một lớp (class) được sử dụng để biểu diễn và xử lý các chuỗi ký tự. 1.1 Chuỗi đơn giản Chuỗi trong Python được đánh dấu bằng dấu nháy đơn ‘ hoặc nháy kép “, tuy nhiên nếu bắt đầu bằng dấu nào thì phải kết thúc bằng dấu đấy . Ví dụ: first_name = "Nguyễn" middle_name = 'Văn' last_name = 'A" # Lỗi khi thực hiện do bắt đầu và kết thúc chuỗi khác nhau. Khi muốn đưa các dấu nháy đơn và nháy kép vào trong chuỗi có hai cách: Cách 1: Đóng mở chuỗi bằng dấu khác với loại dấu nháy cần đưa vào chuỗi. speech = 'Một chuyên gia nói: "Python hiện là ngôn ngữ được nhiều người tìm hiểu nhất hiện nay", phát biểu tại Ngày hội Trí tuệ nhân tạo 2019' sentence = "It 's my car" Cách 2: Sử dụng dấu gạch chéo , dấu này giúp Python nhận biết là phải bỏ qua ngữ nghĩa của ký tự ngay sau. example = "Trong một câu có...

Bài viết được sự cho phép của tác giả Kien Dang Chung

Xử lý văn bản là công việc thường xuyên trong các ứng dụng hiện đại, văn bản có ở khắp mọi nơi, do vậy nắm vững kiến thức về kiểu chuỗi sẽ giúp bạn giải quyết được các vấn đề.

1. Kiểu dữ liệu chuỗi

Kiểu dữ liệu chuỗi – string trong Python là một trong những kiểu dữ liệu cơ bản và được sử dụng rất phổ biến trong Python, một từ, một đoạn văn bản đều là kiểu chuỗi.

Chuỗi (string) được đặt trong dấu ngoặc kép, có thể là dấu ngoặc kép đơn (”) hoặc dấu ngoặc kép đôi (“”). Ví dụ: "Hello, World!" hay 'Python'

str trong Python là một lớp (class) được sử dụng để biểu diễn và xử lý các chuỗi ký tự.

1.1 Chuỗi đơn giản

Chuỗi trong Python được đánh dấu bằng dấu nháy đơn ‘ hoặc nháy kép “, tuy nhiên nếu bắt đầu bằng dấu nào thì phải kết thúc bằng dấu đấy. Ví dụ:

first_name = "Nguyễn"
middle_name = 'Văn'

last_name = 'A" # Lỗi khi thực hiện do bắt đầu và kết thúc chuỗi khác nhau.

Khi muốn đưa các dấu nháy đơn và nháy kép vào trong chuỗi có hai cách:

Cách 1: Đóng mở chuỗi bằng dấu khác với loại dấu nháy cần đưa vào chuỗi.

speech = 'Một chuyên gia nói: "Python hiện là ngôn ngữ được nhiều người tìm hiểu nhất hiện nay", phát biểu tại Ngày hội Trí tuệ nhân tạo 2019'

sentence = "It 's my car"

Cách 2: Sử dụng dấu gạch chéo , dấu này giúp Python nhận biết là phải bỏ qua ngữ nghĩa của ký tự ngay sau.

example = "Trong một câu có thể có nhiều dấu " và dấu ' với số lượng tùy ý"

Tuyển dụng lập trình python lương cao cho bạn

1.2 Chuỗi ký tự nhiều dòng

Python hỗ trợ kiểu dữ liệu chuỗi có thể chứa đoạn văn với nhiều dòng bằng cách bắt đầu và kết thúc chuỗi bằng 3 dấu nháy kép “””. Ví dụ:

chuoi_nhieu_dong = """
Một chuyên gia phát biểu:

- "Python là ngôn ngữ được yêu thích nhất hiện nay".

Chuyên gia này phát biểu tại Ngày hội Trí tuệ nhân tạo 2019.
"""

Có thể áp dụng chuỗi ký tự nhiều dòng khi comment code, trong Python khi ghi chú thông tin chúng ta sử dụng dấu # ở đầu câu ghi chú, với ghi chú nhiều dòng chúng ta cần nhiều dấu # ở trước các dòng.

# Khóa học Python từ A đến Z
# Bài số 3: Kiểu dữ liệu chuỗi.

# Ví dụ 1: In ra chuỗi "Hello world"
loi_chao = "Hello world"
print(loi_chao)

Nếu đoạn ghi chú dài, việc sử dụng các dấu # là rất bất cập, chúng ta có thể sử dụng chuỗi đa dòng để ghi chú như sau:

""" 
Khóa học Python từ A đến Z
Bài số 3: Kiểu dữ liệu chuỗi.

Ví dụ 1: In ra chuỗi "Hello world"
"""
loi_chao = "Hello world"
print(loi_chao)

2. Thao tác với các biến kiểu chuỗi

2.1 Nối chuỗi

Chúng ta có thể nối các chuỗi với nhau thành một chuỗi thông qua toán tử +. Ví dụ:

first_name = "Nguyễn"
middle_name = 'Văn'
last_name = "A"

full_name = first_name + " " + middle_name + " " + last_name
print(full_name)

# Kết quả là Nguyễn Văn A

Chú ý, toán tử nối chuỗi chỉ thực hiện được khi các thành phần là chuỗi, ví dụ dưới đây sẽ gây ra lỗi:

age = 35

print("Tuổi của bạn là:" + age)

Do biến age là kiểu số, toán tử nối chuỗi sẽ bị lỗi, nếu muốn nối chuỗi bạn phải chuyển đổi kiểu số sang kiểu chuỗi với hàm str().

age = 35

print("Tuổi của bạn là:" + str(age))

2.2 Độ dài của chuỗi

Đôi khi chúng ta muốn xác định độ dài của một chuỗi để có thể cắt bớt hoặc xử lý cho phù hợp. Ví dụ, tiêu đề của một bài viết là dưới 70 ký tự khi đó chúng ta cần xác định độ dài tiêu đề bài viết. Trong Python sử dụng hàm len() để xác định độ dài chuỗi.

title = "Kiểu dữ liệu chuỗi ký tự và định dạng chuỗi trong Python"
print(len(title))

# Kết quả là 56

2.3 Các phương thức của str trong Python

Mọi chuỗi trong Python đều là đối tượng str, do đó bản thân nó có rất nhiều các hàm nội tại dùng để thao tác với nội dung của chuỗi. Cú pháp sử dụng các hàm str trong Python như sau:

variable_string = "Some thing"
variable_string.methodname(params)
  • str.lower(): Chuyển đổi tất cả các ký tự trong chuỗi thành chữ thường.
  • str.upper(): Chuyển đổi tất cả các ký tự trong chuỗi thành chữ hoa.
  • str.strip(): Loại bỏ các khoảng trắng từ đầu và cuối chuỗi.
  • str.replace(old, new): Thay thế tất cả các xuất hiện của chuỗi con old bằng chuỗi new.
  • str.split(separator): Tách chuỗi thành danh sách các chuỗi con dựa trên ký tự phân cách separator.
  • str.join(iterable): Kết hợp các chuỗi từ một iterable thành một chuỗi duy nhất với ký tự phân cách.
  • isalpha: trả về true nếu chuỗi chỉ chứa chữ cái A-Z và a-z.
  • isnumeric: trả về true nếu chuỗi chứa chỉ các chữ số 0-9.
  • find(x, [y.z]): trả về số lần chuỗi x được tìm thấy trong chuỗi gốc, tùy chọn [y.z] giới hạn vị trí tìm kiếm, trả về -1 nếu không tìm thấy.
  • replace(x, y): thay thế chuỗi x thành chuỗi y trong chuỗi gốc.

Ví dụ:

my_name = "Nguyen Van A"

print(my_name.isalpha) # trả về true
print(my_name.isnumeric) # trả về false
print(my_name.lower) # trả về nguyen van a
print(my_name.upper) # trả về NGUYEN VAN A
print(my_name.find("an")) # trả về 1
print(my_name.replace("Nguyen", "Tran")) # trả về Tran Van A

Tuyển dụng python Hồ Chí Minh mới nhất trên Station D

3. Định dạng chuỗi

3.1 Định dạng với F-string

Định dạng f-string khá đơn giản khi sử dụng, tất cả những gì cần là một chữ f đứng trước một chuỗi thì tất cả các biểu thức (nằm trong cặp đóng mở ngoặc nhọn) sẽ được thực thi và chuyển đổi thành chuỗi và thay thế vào biểu thức đó. Trong ví dụ ở phần trên

age = 35

print("Tuổi của bạn là:" + str(age))

Chúng ta có thể sử dụng định dạng f-string như sau:

age = 35

print(f"Tuổi của bạn là: {age}")

Biểu thức trong {age} sẽ được tính toán và chuyển đổi thành chuỗi và thay thế lại vị trí cũ, do đó kết quả nhận được là “Tuổi của bạn là: 35”. Một ví dụ khác sẽ giúp bạn hiểu rõ hơn:

don_gia = 25000
chiet_khau = 0.25
so_luong = 3

print(f"Bạn mua {so_luong} dia com het tong cong: {don_gia * so_luong} VND")
# Kết quả in ra: Ban mua 3 dia com het tong cong: 75000 VND

print(f"Bạn mua {so_luong} dia com het tong cong: {don_gia * so_luong:,} VND")
# Kết quả in ra: Ban mua 3 dia com het tong cong: 75,000 VND

print(f"Ban duoc chiet khau {chiet_khau:.2%}")
# Kết quả in ra: Ban duoc chiet khau 25%

F-string cũng cho phép chúng ta định dạng số với các dấu phân cách hàng nghìn (,) hoặc định dạng số theo phần trăm (.2%). Một điểm chú ý là f-string nếu sử dụng cho biến số sẽ không thay đổi giá trị khi các thành phần của biến số thay đổi.

don_gia = 25000
so_luong = 3
thong_bao = f"Bạn mua {so_luong} dia com het tong cong: {don_gia * so_luong} VND"

print(thong_bao)
# Kết quả in ra: Ban mua 3 dia com het tong cong: 75000 VND

don_gia = 35000
so_luong = 5

print(thong_bao)
# Kết quả in ra: Ban mua 3 dia com het tong cong: 75000 VND

Kiểu dữ liệu chuỗi và định dạng chuỗi trong PythonKiểu dữ liệu chuỗi và định dạng chuỗi trong Python

Bạn thấy đấy, khi thay đổi số lượng và đơn giá nhưng thông báo in ra vẫn giữ nguyên.

3.2 Định dạng chuỗi với phương thức format()

Bản thân biến dạng chuỗi là một đối tượng str có một hàm nội tại là format() dùng để định dạng nội dung. Ví dụ dưới đây sử dụng hàm format() trong Python:

ten_nguoi_dung = "Nguyen Van A"
cau_chao = "Chao ban {}!"
cau_chao_a = cau_chao.format(ten_nguoi_dung)
print(cau_chao_a)

Nếu bạn muốn có nhiều biến được đưa vào trong nội dung chuỗi, chúng ta cần phải đặt tên cho các vị trí này. Ví dụ:

don_gia = 25000
so_luong = 3
tong_tien = don_gia * so_luong
mau_thong_bao = "Bạn mua {so_luong} dia com het tong cong: {tong_tien} VND"

thong_bao = mau_thong_bao.format(so_luong=so_luong,tong_tien=tong_tien)
print(thong_bao)

don_gia = 35000
so_luong = 5
tong_tien = don_gia * so_luong
mau_thong_bao = "Bạn mua {so_luong} dia com het tong cong: {tong_tien} VND"

thong_bao = mau_thong_bao.format(so_luong=so_luong,tong_tien=tong_tien)
print(thong_bao)

Kết quả chúng ta đạt được như mong muốn.

Kiểu dữ liệu chuỗi và định dạng chuỗi trong PythonKiểu dữ liệu chuỗi và định dạng chuỗi trong Python

Trong một số ví dụ, tôi có sử dụng Jupyter Notebook chạy trên máy cá nhân, nếu bạn muốn tìm hiểu về phần mềm này có thể tham khảo bài viết Jupyter Notebook công cụ không thể thiếu khi học Python.

Bài viết gốc được đăng tải tại allaravel.com

Xem thêm việc làm công nghệ thông tin hấp dẫn trên Station D

Bài viết liên quan

Thị trường EdTech Vietnam- Nhiều tiềm năng nhưng còn bị bỏ ngỏ tại Việt Nam

Thị trường EdTech Vietnam- Nhiều tiềm năng nhưng còn bị bỏ ngỏ tại Việt Nam

Lĩnh vực EdTech (ứng dụng công nghệ vào các sản phẩm giáo dục) trên toàn cầu hiện nay đã tương đối phong phú với nhiều tên tuổi lớn phân phối đều trên các hạng mục như Broad Online Learning Platforms (nền tảng cung cấp khóa học online đại chúng – tiêu biểu như Coursera, Udemy, KhanAcademy,…) Learning Management Systems (hệ thống quản lý lớp học – tiêu biểu như Schoology, Edmodo, ClassDojo,…) Next-Gen Study Tools (công cụ hỗ trợ học tập – tiểu biểu như Kahoot!, Lumosity, Curriculet,…) Tech Learning (đào tạo công nghệ – tiêu biểu như Udacity, Codecademy, PluralSight,…), Enterprise Learning (đào tạo trong doanh nghiệp – tiêu biểu như Edcast, ExecOnline, Grovo,..),… Hiện nay thị trường EdTech tại Việt Nam đã đón nhận khoảng đầu tư khoảng 55 triệu đô cho lĩnh vực này nhiều đơn vị nước ngoài đang quan tâm mạnh đến thị trường này ngày càng nhiều hơn. Là một trong những xu hướng phát triển tốt, và có doanh nghiệp đã hoạt động khá lâu trong ngành nêu tại infographic như Topica, nhưng EdTech vẫn chỉ đang trong giai đoạn sơ khai tại Việt Nam. Tại Việt Nam, hệ sinh thái EdTech trong nước vẫn còn rất non trẻ và thiếu vắng nhiều tên tuổi trong các hạng mục như Enterprise Learning (mới chỉ có MANA), School Administration (hệ thống quản lý trường học) hay Search (tìm kiếm, so sánh trường và khóa học),… Với chỉ dưới 5% số dân công sở có sử dụng một trong các dịch vụ giáo dục online, EdTech cho thấy vẫn còn một thị trường rộng lớn đang chờ được khai phá. *** Vừa qua Station D đã công bố Báo cáo Vietnam IT Landscape 2019 đem đến cái nhìn toàn cảnh về các ứng dụng công...

By stationd
Bộ cài đặt Laravel Installer đã hỗ trợ tích hợp Jetstream

Bộ cài đặt Laravel Installer đã hỗ trợ tích hợp Jetstream

Bài viết được sự cho phép của tác giả Chung Nguyễn Hôm nay, nhóm Laravel đã phát hành một phiên bản chính mới của “ laravel/installer ” bao gồm hỗ trợ khởi động nhanh các dự án Jetstream. Với phiên bản mới này khi bạn chạy laravel new project-name , bạn sẽ nhận được các tùy chọn Jetstream. Ví dụ: API Authentication trong Laravel-Vue SPA sử dụng Jwt-auth Cách sử dụng Laravel với Socket.IO laravel new foo --jet --dev Sau đó, nó sẽ hỏi bạn thích stack Jetstream nào hơn: Which Jetstream stack do you prefer? [0] Livewire [1] inertia > livewire Will your application use teams? (yes/no) [no]: ... Nếu bạn đã cài bộ Laravel Installer, để nâng cấp lên phiên bản mới bạn chạy lệnh: composer global update Một số trường hợp cập nhật bị thất bại, bạn hãy thử, gỡ đi và cài đặt lại nha composer global remove laravel/installer composer global require laravel/installer Bài viết gốc được đăng tải tại chungnguyen.xyz Có thể bạn quan tâm: Cài đặt Laravel Làm thế nào để chạy Sql Server Installation Center sau khi đã cài đặt xong Sql Server? Quản lý các Laravel route gọn hơn và dễ dàng hơn Xem thêm Tuyển dụng lập trình Laravel hấp dẫn trên Station D

By stationd
Principle thiết kế của các sản phẩm nổi tiếng

Principle thiết kế của các sản phẩm nổi tiếng

Tác giả: Lưu Bình An Phù hợp cho các bạn thiết kế nào ko muốn làm code dạo, design dạo nữa, bạn muốn cái gì đó cao hơn ở tầng khái niệm Nếu lập trình chúng ta có các nguyên tắc chung khi viết code như KISS , DRY , thì trong thiết kế cũng có những nguyên tắc chính khi làm việc. Những nguyên tắc này sẽ là kim chỉ nam, nếu có tranh cãi giữa các member trong team, thì cứ đè nguyên tắc này ra mà giải quyết (nghe hơi có mùi cứng nhắc, mình thì thích tùy cơ ứng biến hơn) Tìm các vị trí tuyển dụng designer lương cao cho bạn Nguyên tắc thiết kế của GOV.UK Đây là danh sách của trang GOV.UK Bắt đầu với thứ user cần Làm ít hơn Thiết kế với dữ liệu Làm mọi thứ thật dễ dàng Lặp. Rồi lặp lại lần nữa Dành cho tất cả mọi người Hiểu ngữ cảnh hiện tại Làm dịch vụ digital, không phải làm website Nhất quán, nhưng không hòa tan (phải có chất riêng với thằng khác) Cởi mở, mọi thứ tốt hơn Bao trừu tượng luôn các bạn, trang Gov.uk này cũng có câu tổng quát rất hay Thiết kế tốt là thiết kế có thể sử dụng. Phục vụ cho nhiều đối tượng sử dụng, dễ đọc nhất nhất có thể. Nếu phải từ bỏ đẹp tinh tế – thì cứ bỏ luôn . Chúng ta tạo sản phẩm cho nhu cầu sử dụng, không phải cho người hâm mộ . Chúng ta thiết kế để cả nước sử dụng, không phải những người đã từng sử dụng web. Những người cần dịch vụ của chúng ta nhất là những người đang cảm thấy khó sử dụng dịch...

By stationd
Applicant Tracking System là gì? ATS hoạt động ra sao

Applicant Tracking System là gì? ATS hoạt động ra sao

Công nghệ phát triển hướng đến giải quyết và cải tiến cho mỗi quy trình, hoạt động của doanh nghiệp cũng như đời sống. Đối với lĩnh vực tuyển dụng, sự xuất hiện của phần mềm ATS (Applicant Tracking System) mang đến nhiều thay đổi đáng kể, cả đối với nhà tuyển dụng và ứng viên. Vậy phần mềm ATS là gì? Chúng được sử dụng ra sao? Những thắc mắc về phần mềm ATS trong tuyển dụng sẽ được Station D giải đáp tại bài viết dưới đây. Hệ thống sàng lọc ứng viên ATS (Applicant Tracking System) Applicant Tracking System là gì? Applicant Tracking System (ATS) hay còn gọi là Hệ thống quản lý hồ sơ ứng viên là phần mềm quản lý quy trình tuyển dụng từ đầu đến cuối một cách tự động hóa. ATS được thiết kế để giúp nhà tuyển dụng tiết kiệm thời gian và chi phí trong việc thu thập, sắp xếp và sàng lọc hồ sơ các ứng viên. Các tính năng nổi bật của Applicant Tracking System Các tính năng nổi bật của Applicant Tracking System Applicant Tracking System (ATS) là một công cụ quan trọng giúp các công ty quản lý quy trình tuyển dụng hiệu quả hơn. Cùng chúng tôi điểm qua các tính năng nổi bật của ATS: Sàng lọc và quản lý hồ sơ ứng viên Khả năng tìm kiếm và sàng lọc ứng viên là một trong các tính năng nổi bật nhất của ATS. Với việc sử dụng từ khóa và tiêu chí cụ thể, hệ thống có thể nhanh chóng tìm kiếm và sàng lọc các hồ sơ phù hợp, tự động loại bỏ những ứng viên không đạt yêu cầu. Điều này giúp nhà tuyển dụng tập trung vào những ứng viên...

By stationd
Hiểu về trình duyệt – How browsers work

Hiểu về trình duyệt – How browsers work

Bài viết được sự cho phép của vntesters.com Khi nhìn từ bên ngoài, trình duyệt web giống như một ứng dụng hiển thị những thông tin và tài nguyên từ server lên màn hình người sử dụng, nhưng để làm được công việc hiển thị đó đòi hỏi trình duyệt phải xử lý rất nhiều thông tin và nhiều tầng phía bên dưới. Việc chúng ta (Developers, Testers) tìm hiểu càng sâu tầng bên dưới để nắm được nguyên tắc hoạt động và xử lý của trình duyệt sẽ rất hữu ích trong công việc viết code, sử dụng các tài nguyên cũng như kiểm thử ứng dụng của mình. Cách để npm packages chạy trong browser Câu hỏi phỏng vấn mẹo về React: Component hay element được render trong browser? Khi hiểu được cách thức hoạt động của trình duyệt chúng ta có thể trả lời được rất nhiều câu hỏi như: Tại sao cùng một trang web lại hiển thị khác nhau trên hai trình duyệt? Tại sao chức năng này đang chạy tốt trên trình duyệt Firefox nhưng qua trình duyệt khác lại bị lỗi? Làm sao để trang web hiển thị nội dung nhanh và tối ưu hơn một chút?… Hy vọng sau bài này sẽ giúp các bạn có một cái nhìn rõ hơn cũng như giúp ích được trong công việc hiện tại. 1. Cấu trúc của một trình duyệt Trước tiên chúng ta đi qua cấu trúc, thành phần chung và cơ bản nhất của một trình duyệt web hiện đại, nó sẽ gồm các thành phần (tầng) như sau: Thành phần nằm phía trên là những thành phần gần với tương tác của người dùng, càng phía dưới thì càng sâu và nặng về xử lý dữ liệu hơn tương tác. Nhiệm...

By stationd
Tối ưu tỉ lệ chuyển đổi với Google Optimize và Google Analytics

Tối ưu tỉ lệ chuyển đổi với Google Optimize và Google Analytics

Tối ưu tỷ lệ chuyển đổi là một trong những yếu tố quan trọng mà một Growth Marketer không thể bỏ qua. Google Analytics là công cụ hữu hiệu và phổ biến nhất giúp chúng ta theo dõi, đo lường và tối ưu tỷ lệ chuyển đổi. Số liệu từ Google Analytics giúp chúng ta nhìn ra điểm cần thay đổi để tăng tỷ lệ chuyển đổi. Theo dõi chuyển đổi là quá trình thiết yếu nhưng cũng rất “khó nhằn”. Ngày nay, mọi người đang sử dụng điện thoại di động nhiều hơn và thường xuyên hơn khi mua hàng trực tuyến. Việc tối ưu hóa website phiên bản di động rất quan trọng. Traffic đến từ mobile khá lớn và làm ảnh hưởng nhiều tới tỷ lệ chuyển đổi. Để xem website của bạn có hoạt động tốt trên mobile hay không như thế nào? Làm gì khi tỷ lệ chuyển đổi giảm? Website phiên bản di động của bạn có nội dung hấp dẫn không? Không có những nút điều hướng hành động? Trang bị lỗi …, những điều này có thể ảnh hưởng tới tỉ lệ chuyển đổi Google Analytics, hiểu được điều này, bạn sẽ có cơ sở để khắc phục và hoàn thiện website của mình. Hãy cùng đến với chủ đề “DÙNG GOOGLE ANALYTICS TỐI ƯU TỈ LỆ CHUYỂN ĐỔI TRÊN MOBILE” với sự chia sẻ của diễn giả Nguyễn Minh Đức, CEO IM GROUP tại Vietnam Mobile Day 2018 nhé

By stationd