DANH MỤC: PYTHON CƠ BẢN

Bài 4: Chuỗi trong Python


Tất cả các ngôn ngữ lập trình đều có kiểu dữ liệu là kiểu chuỗi, và trong Python nó cũng không ngoại lệ. Bài này mình sẽ cùng mọi người tìm hiểu xem chuỗi trong Python có ưu điểm gì hơn các ngôn ngữ khác không nhé.

1, Các ký tự đặc biệt trong chuỗi.

Để sử dụng các ký tự đặc biệt trong Python khi in ra dữ liệu thì mọi người sử dụng ký tự \ trước nó.

VD: Khi bạn muốn in ra "  mà bạn lại sử dụng  "" để chứa nội dung int ra chuỗi.

print("Website \"Toidicode.com\" ")
#Website "Toidicode.com"

Tương tự chúng ta có thể làm với '.

print('Website \'Toidicode.com\' ')
#Website 'Toidicode.com'

Các ký tự đặc biệt khác:

  • \n ngắt xuống dòng và bắt đầu dòng mời.
  • \t đẩy nội dung phía sau nó cách 1 tab.
  • \a chuông cảnh báo.
  • \b xóa bỏ khoảng trắng phía trước nó.
  • Ngoài ra bạn cũng có thể sử dụng để in ra các ký tự đặc biệt khác bằng việc sử dụng theo cú pháp \xnn, với n là 0->9, hoặc a->f hoặc A->F.

VD:

print("Website \t Toidicode.com")
#Website          Toidicode.com

2, Fomat chuỗi.

Ngoài những cách in ra dữ liệu ở trên thì mọi người cũng có thể sử dụng các keyword định dạng cho kiểu giá trị và binding nó vào chuỗi. Sử dụng với cú pháp:

print("%type" %(binding))

Trong đó:

  • type là các kiểu dữ liệu các bạn muốn binding và thay thế vào vị trí đó.
  • binding là giá trị mà các bạn muốn binding vào vị trí được xác định trong chuỗi.

Type là các kiểu sau:

Cú pháp fomat Mô tả
%c character
%s chuỗi
%i số nguyên
%d số nguyên
%u số nguyên
%o bát phân
%x thập lục phân (in thường)
%X thập lục phân (in hoa)
%e số mũ  (với e thường)
%E số mũ  (với e hoa)
%f số thực
%g dạng rút gọn của %f and %e
%G dạng rút gọn của %f and %E

VD: Mình sẽ thực hiện binding 1 chuỗi vào trong 1 chuỗi.

guy = "Ban"
full = "Chao mung %s den voi website toidicode.com" %(guy)
print(full)
# Chao mung Ban den voi website toidicode.com

Trong đó nếu như bạn muốn binding nhiều chuỗi vào trong chuỗi thì mỗi giá trị bạn muốn binding cách nhau bởi 1 dấu ,

VD:

guy = "Ban"
doamin = "toidicode.com"
full = "Chao mung %s den voi website %s" %(guy, doamin)
print(full)
# Chao mung Ban den voi website toidicode.com

3, Truy cập tới từng giá trị của chuỗi.

Chuỗi trong Python được lưu trữ vào trong các ô nhớ với mỗi ô nhớ tương đương với một ký tự đơn (khác với các ngôn ngữ khác) và các ký tự này được xếp liên tiếp với nhau. Do đó kiểu dữ liệu chuỗi trong Python có thể được truy xuất đến từng ký tự trong nó (các ngôn ngữ khác không có, PHP7.1.X mới hỗ trợ ở đây là reverse index string).

Để truy cập đến từng ký tự bên trong chuỗi, các bạn sử dụng cú pháp sau:

stringName[index]

Trong đó:

  • stringName là tên của biến chứa chuỗi, hoặc chuỗi.
  • index là vị trí của ký tự bạn muốn lấy ra. Index này hỗ trợ chúng ta truy xuất được cả 2 chiều của chuỗi nếu:
    • Tính từ đầu thì nó bắt đầu từ 0.
    • Tính từ cuối thì nó bắt đầu từ -1.

Để cho dễ hiểu thì bạn có thể xem hình sau:

string index trong python

VD

name = "Vu Thanh Tai"
print(name[0]) # V
print(name[-1]) # i

Nếu trong trường hợp các bạn muốn lấy nội dung của một đoạn chuỗi trong chuỗi đó thì có thể sử dụng cú pháp sau:

stringName[start:end]

Trong đó:

  • stringName là tên của biến chứa chuỗi, hoặc chuỗi.
  • start là vị trí của ký tự bắt đầu lấy, nếu để trống start thì nó sẽ lấy từ 0.
  • end là vị trí kết thúc (nó sẽ lấy trong khoảng từ start đến < end), nếu để trống end thì nó sẽ lấy đến hết chuỗi.

VD:

name = "Vu Thanh Tai"

print(name[0:2]) # Vu

print(name[-3:12]) # Tai

print(name[9:]) # Tai

print(name[-3:]) # Tai

4, Lời kết.

Chuỗi trong Python được hỗ trợ rất mạnh, và phần này cũng rất quan trọng nên mọi người chú ý giúp mình.

Nguồn: Toidicode.com

Thông tin tác giả

Vũ Thanh Tài

Vũ Thanh Tài

The best way to learn is to share

Hãy tham gia group facebook để cùng giao lưu chia sẻ kiến thức! Tham Gia

Bình Luận

  • Chào Tài !

    trong bài viết có phần 

    Do đó kiểu dữ liệu chuỗi trong Python có thể được truy xuất đến từng ký tự trong nó (các ngôn ngữ khác không có, PHP7 mới hỗ trợ).

    Mình không biết có sự nhầm lẩn ở đây không, Vì trước giờ giờ code php mình vẫn dùng index của string, và đã thử đoạn code dưới cả php 5.6 và 7.0 đều chạy được

    $a = 'abcd';
    
    echo $a[1];

    Còn java thì mình không biết, nhưng nhớ không lầm thì bạn mình có demo thuật toán cho mình thì vẫn lấy phần tử theo index được

    Nên nhờ Tài xem lại rồi giải đáp thắc mắc giúp mình

    Cám ơn !

    • Haha, Mình viết thiếu đó bạn ạ, ý mình đang nói ở đây là index ngược của chuỗi cơ :D.
      VD:

      $str = 'abc';
      echo $str[-1];
      //out: c

       

  • Đoạn code này 

    print(name[-3:12]) # Tai

    Phải là 

    print(name[-3:12]) # TaiVu Thanh Tai

    chứ nhỉ hay mình hiểu sai nè mong giải thích giùm

    • Mình thấy #Tai là đúng.

      Thiết nghĩ với những ví dụ ntn thì bạn nên chạy thử xem ra gì đã, nếu thực sự khác (do khác version chẳng hạn) thì hãy hỏi. Chứ chỉ đọc không rồi suy theo ý mình thì không hẳn là cách hay.

      (vui)

  • Phần 3 nếu ai học kĩ  pascal để thi HSG thì sẽ dễ dàng hiểu phần này, cái này vui vãi chưởng: năm trước cháu ôn bài chán quá thử code trang web chỉ 4 site (nó chạy giống web nhưng đâu phải web :) phải nạp giá trị từng kí tự ( 24 * 80 màn output của pascal) cảm giác như tạo ra cái máy tính thời năm 1 9 hòi đó ấy :)