Giáo trình Python - Bài 8: Kiểu xâu kí tự string

pdf 35 trang Kim Kim 13/03/2026 90
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Python - Bài 8: Kiểu xâu kí tự string", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfgiao_trinh_python_bai_8_kieu_xau_ki_tu_string.pdf

Nội dung text: Giáo trình Python - Bài 8: Kiểu xâu kí tự string

  1. BÀI 8: KIỂU XÂU KÍ TỰ string
  2. NỘI DUNG CHÍNH § Kiểu xâu kí tự string § Khai báo biến xâu § Các phép toán xử lý xâu § Một số bài toán ứng dụng
  3. XÂU KÝ TỰ § Một dãy các ký tự liên tiếp >>> str1 = "Hello" § Một biến có kiểu string khi được >>> str2 = 'there' gán giá trị là một xâu ký tự >>> str = str1 + str2 >>> print(str) § Viết các ký tự trong cặp dấu nháy Hellothere >>> str3 = "” đơn hoặc nháy kép để biểu thị >>> print(str3) một hằng xâu ký tự § Xâu có thể rỗng (gồm 0 ký tự) § Nối hai xâu bằng toán tử “+”
  4. MỘT SỐ KÝ TỰ ĐẶC BIỆT Mã C++ Tên ký tự § Các ký tự đặc biệt được chấp \n Xuống dòng nhận như bảng ký tự đặc biệt \r Về đầu dòng (Enter) ở hình bên \t Tab \v Tab dọc >>> \b Lùi trái (Backspace) print("abc\ndef\"\t\ghik\\ \f Hết form ") \' Nháy đơn ' abc \" Nháy kép " def" \ghik\ \\ Dấu sổ ngược \ >>>
  5. XÂU KÝ TỰ § Xâu chứa ký tự số khác với >>> str3 = '123' một số >>> str3 = str3 + 1 Traceback (most recent call § Có thể chuyển số xâu ký tự last): File " ", line 1, số thành số và ngược lại in TypeError: cannot concatenate 'str' and 'int' objects >>> x = int(str3) + 1 >>> print(x) 124 >>> 5
  6. CHUYỂN KIỂU XÂU KÝ TỰ § Tất cả dữ liệu đọc vào từ >>> dayso = input("Hay nhap vao 1 day so:") bàn phím đều được lưu Hay nhap vao 1 day so:123456789 >>> print(dayso) dưới dạng xâu kí tự 123456789 § Dữ liệu kiểu string có thể >>> list(dayso) ['1', '2', '3', '4', '5', '6', '7', '8', được chuyển sang kiểu mà '9'] người dùng mong muốn >>> set(dayso) (Ví dụ: list, float, int, tuple, {'4', '2', '8', '6', '5', '1', '9', '3', '7'} set) bằng các câu lệnh >>> tuple(dayso) chuyển kiểu tương ứng ('1', '2', '3', '4', '5', '6', '7', '8', '9') >>>
  7. CẤU TRÚC XÂU KÝ TỰ § Có thể lấy từng ký tự trong xâu thông qua chỉ số đặt trong cặp dấu b a n a n a ngoặc vuông § Giá trị chỉ số phải là số nguyên bắt 0 1 2 3 4 5 đầu từ 0 >>> fruit = 'banana' >>> letter = fruit[1] § Giá trị chỉ số có thể là một biểu thức >>> print(letter) tính toán a >>> x = 3 >>> w = fruit[x - 1] >>> print(w) n
  8. CẤU TRÚC XÂU KÝ TỰ § Nếu chỉ số vượt quá giới hạn >>> zot = 'abc' của xâu, python sẽ thông báo lỗi >>> print(zot[5]) § Nếu độ dài của xâu là thì chỉ Traceback (most recent call n last): File " ", line số phải nằm trong k hoảng 1, in [0,n) IndexError: string index out of range >>>
  9. MỘT SỐ ĐẶC ĐIỂM CỦA XÂU KÝ TỰ TRONG PYTHON § Xâu kí tự là KHÔNG THỂ SỬA • Không thể thay đổi bất kỳ ký tự nào trong xâu • Các thao tác trên xâu trả về một xâu mới >>> fruit = 'banana' >>> letter = fruit[1] >>> print(letter) a >>> fruit[3] = b Traceback (most recent call last): File " ", line 1, in TypeError: 'str' object does not support item assignment
  10. CẤU TRÚC XÂU KÝ TỰ § Có thể lấy từng ký tự trong xâu thông qua chỉ số đặt trong cặp dấu b a n a n a ngoặc vuông § Giá trị chỉ số phải là số nguyên bắt 0 1 2 3 4 5 đầu từ 0 >>> fruit = 'banana' >>> letter = fruit[1] § Giá trị chỉ số có thể là một biểu thức >>> print(letter) tính toán a >>> x = 3 >>> w = fruit[x - 1] >>> print(w) n
  11. HÀM CHO BIẾT ĐỘ DÀI CỦA XÂU § Hàm len() dựng sẵn trong python trả về độ dài của một xâu ký tự b a n a n a § Thường được sử dụng để 0 1 2 3 4 5 duyệt các phần tử của xâu >>> fr = 'banana' >>> print(len(fr)) 6
  12. DUYỆT XÂU KÝ TỰ 0 b § Sử dụng vòng lặp for hoặc fr = 'banana’ 1 a while để duyệt qua từng ký id = 0 while id < len(fr): 2 n tự của xâu ký tự kt = fr[id] 3 a § Vòng while cần dùng đến print(id, kt) 4 n id = id + 1 hàm len() 5 a § Vòng lặp for có thể không fr = 'banana' b cần dùng đến len for id in range(len(fr)): a print(id,fr[i]) Kết quả hai lệnh n for có gì khác??? fr = 'banana' a for kt in fr: n print(kt) a
  13. BẢN CHẤT DUYỆT XÂU KÝ TỰ § Biến lặp chạy trên toàn xâu ký tự (tập ký tự có thứ tự), duyệt qua từng ký tự củA xâu Biến lặp Xâu có 6 ký tự § Đoạn lệnh thân vòng for được thực hiện trên từng ký tự (giá trị củA kt) củA xâu for kt in 'banana' : print(kt)
  14. BẢN CHẤT DUYỆT XÂU KÝ TỰ b a n a n a Yes No Hết? Đọc ký tự print(kt) for kt in 'banana' : print(kt)
  15. BÀI TẬP 7-1. ĐẾM SỐ LẦN XUẤT HIỆN Viết chương trình thực hiện công việc sau: a. Cho phép nhập vào một xâu ký tự b. Viết hàm đếm số lần xuất hiện của một ký tự trong một xâu. Dùng hàm vừa viết để đếm số lần xuất hiện của kí tự ‘a’ trong xâu vừa nhập c. Viết hàm thống kê các ký tự và số lần xuất hiện của từng ký tự đó trong xâu. (Gợi ý: Sử dụng từ điển)
  16. MỘT SỐ PHÉP TOÁN VỚI XÂU: PHÉP GÁN § � = �: Gán xâu � bằng xâu � >>> s = "hello" § Chú ý: >>> t =" everyone" >>> s = s + t • Máy phải cấp phát bộ nhớ và >>> s copy các ký tự từ xâu � sang xâu 'hello everyone' � • Độ phức tạp tính toán bằng độ dài xâu �
  17. MỘT SỐ PHÉP TOÁN VỚI XÂU: PHÉP NỐI XÂU § � + �: Với �, � là hai xâu, phép � + � trả về >>> s = "hello" xâu tạo thành bằng cách ghép xâu � vào >>> t = " everyone" cuối xâu � >>> s1 = s+t § Chú ý >>> s1 • Phép cộng xâu không có tính giao hoán: � + 'hello everyone' � ≠ � + � >>> s2 = t+s • Có thể thực hiện toán tử +=: Viết � += � thay >>> s2 cho � = � + � ' everyonehello' >>> • Máy phải cấp phát bộ nhớ và copy các ký tự từ xâu � và � sang xâu kết quả (Độ phức tạp tính toán bằng độ dài xâu kết quả)
  18. MỘT SỐ PHÉP TOÁN VỚI XÂU: CẮT XÂU [ ] = ten_xau[bg:end] M o n t y P y t h o n 0 1 2 3 4 5 6 7 8 9 10 11 § Lấy một xâu ký tự từ vị trí bg đến end, không bao gồm ký tự end >>> s = 'Monty Python' • Cắt xâu con từ một xâu sử dụng dáu >>> print(s[0:4]) “:” Mont • Bg: vị trí bắt đầu >>> s1 = s[6:7] • End: vị trí kết thúc (ko lấy ký tự ở vị trí >>> print(s1) end) P § Nếu end vượt quá vị trí cuối cùng >>> print(s[6:20]) của xâu thì sẽ dừng ở cuối xâu. Python
  19. MỘT SỐ PHÉP TOÁN VỚI XÂU: CẮT XÂU M o n t y P y t h o n 0 1 2 3 4 5 6 7 8 9 10 11 § Nếu không có tham số bg, >>> s = 'Monty Python' chương trình mặc định lấy từ >>> print(s[:2]) đầu xâu Mo § Nếu không có tham số end, >>> print(s[8:]) thon mặc định lấy đến vị trí cuối >>> print(s[:]) cùng của xâu Monty Python
  20. MỘT SỐ PHÉP TOÁN VỚI XÂU: PHÉP SO SÁNH § Trên xâu có đầy đủ các phép so sánh: >>> s1 'hello everyone' • ==; !=; ; = >>> s2 = t+s § Các toán tử so sánh căn cứ theo thứ tự >>> s2 từ điển ' everyonehello' >>> s1 > s2 True >>> s < s1 True >>> "10" < "9" True >>>