Hàm strip() trong python

Ai giải thích dùm em cái hàm strip() này với ạ. Em xem qua vài tài liệu rồi nhưng vẫn chưa hiểu rõ lắm. Cho em xin ví dụ chi tiết thì càng tốt ạ. Em xin cảm ơn!

>>> a = "   abc   " 
>>> a.strip() # tạo ra chuỗi mới, xóa khoảng trắng ở đầu và cuối
'abc'
>>> a = "   a   bc   "
>>> a.strip() # khoảng trắng ở giữa không hề gì, vì được bao bọc bởi alphanumeric character
'a   bc'
>>> a = "\t\n   abc  \t\n "
>>> a.strip() # hàm này loại bỏ cả tab, xuống dòng chứ không riêng gì space, tham khảo tài liệu để biết chính xác những kí tự nào sẽ bị loại bỏ
'abc'
2 Likes

Mình hồi xưa cũng rất rất nhiều thắc mắc về hàm strip. May sao có cao nhân khai sáng. Để mình lấy một ví dụ

>>> s = '.........a.......'
>>> s.strip('.')
'a'

Đôi lúc bạn sẽ bị hiểu nhầm, hãy lấy thêm một ví dụ nữa nào

>>> s = 'bcabcafbacaca'
>>> s.strip('abc')

Bạn thử dự đoán kết quả xem? Hồi xưa mình đoán trật lấn. Đáp án đúng là

>>> s
'f'

Và đây là chi tiết của hàm strip. Mình sẽ lấy ví dụ bên trên luôn.
B1 'abc' tách ra làm 3 kí tự 'a', 'b','c'.
B2 Kiểm tra kí tự xem chuỗi 'bcabcafbacaca' có bắt đầu hoặc kết thúc với 'a' hoặc 'b', hoặc 'c' hay không? Nếu có loại bỏ nó.
B2.1 Hãy xét 'a' đầu tiên => 'bcabcafbacac' (loại bỏ 'a').
B2.2 Tiếp đến là xét 'b' => 'cabcafbacac' (loại bỏ 'b').
B2.3 Cuối cùng là 'c' => 'abcafbaca' (loại bỏ 'c')
B2.4 Nếu B2.1, B2.2, B2.3 đều bỏ qua. Có nghĩa là ba bước đó không loại được một kí tự nào thì ta dừng lại bước này, nếu không lặp lại bước B2.1
B3 return lại chuỗi với strip.
Edit: Lưu ý về cái mà nó strip. Nếu bạn không truyền vào cho nó bất cứ thứ gì, có nghĩa là bạn

>>> chuỗi.strip()

Thì những kí tự mặc định sẽ được strip sẽ là các escape sequence mà space

8 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?