Computer >> Máy Tính >  >> Lập trình >> Python

Python Startswith and Endswith:Hướng dẫn từng bước

Con trăn startswith() Hàm kiểm tra xem một chuỗi có bắt đầu bằng một chuỗi con được chỉ định hay không. Python endswith() kiểm tra xem một chuỗi có kết thúc bằng một chuỗi con hay không. Cả hai hàm đều trả về True hoặc False .


Thông thường, khi bạn đang làm việc với các chuỗi trong khi lập trình, bạn có thể muốn kiểm tra xem một chuỗi bắt đầu bằng hay kết thúc bằng một giá trị cụ thể.

Ví dụ:nếu bạn đang tạo một chương trình thu thập số điện thoại của người dùng, bạn có thể muốn kiểm tra xem người dùng đã chỉ định mã quốc gia của họ hay chưa. Hoặc có lẽ bạn đang tạo một chương trình để kiểm tra xem tên người dùng có kết thúc bằng e hay không cho một chương trình khuyến mãi đặc biệt mà trò chơi điện tử của bạn đang thực hiện.

Đó là nơi các hàm tích hợp sẵn startswith()endswith() vào. startswith()endswith() có thể được sử dụng để xác định xem một chuỗi bắt đầu bằng hay kết thúc tương ứng với một chuỗi con cụ thể.

Hướng dẫn này sẽ thảo luận về cách sử dụng cả Python startswith()endswith() các phương thức để kiểm tra xem một chuỗi bắt đầu bằng hay kết thúc bằng một chuỗi con cụ thể. Chúng tôi cũng sẽ làm việc thông qua một ví dụ về từng phương pháp này được sử dụng trong một chương trình.

Trình làm mới chỉ mục chuỗi

Trước khi nói về startedWith và endWith, chúng ta nên dành một chút thời gian để làm mới kiến ​​thức của mình về chỉ mục chuỗi python.

Chuỗi là một chuỗi các ký tự như số, khoảng trắng, chữ cái và ký hiệu. Bạn có thể truy cập các phần khác nhau của chuỗi theo cách giống như cách bạn có thể làm với danh sách.

Mọi ký tự trong một chuỗi đều có một giá trị chỉ mục. Chỉ mục là một vị trí mà ký tự nằm trong chuỗi. Số chỉ mục bắt đầu bằng 0. Ví dụ:đây là chuỗi Python Substrings với số chỉ mục:

81% người tham gia cho biết họ cảm thấy tự tin hơn về triển vọng công việc công nghệ của mình sau khi tham gia một cuộc thi đào tạo. Kết hợp với bootcamp ngay hôm nay.

Sinh viên tốt nghiệp bootcamp trung bình dành ít hơn sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được công việc đầu tiên của họ.

P y t h o n
S u b s t r tôi n g s
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Ký tự đầu tiên trong chuỗi là P với giá trị chỉ mục là 0. Ký tự cuối cùng của chúng tôi, s , có giá trị chỉ mục là 16. Bởi vì mỗi ký tự có số chỉ mục riêng, chúng ta có thể thao tác các chuỗi dựa trên vị trí của mỗi ký tự.

Python Startswith

startswith() phương thức chuỗi kiểm tra xem một chuỗi có bắt đầu bằng một chuỗi con cụ thể hay không. Nếu chuỗi bắt đầu bằng một chuỗi con được chỉ định, thì startswith() phương thức trả về True; nếu không, hàm trả về giá trị False.

Đây là cú pháp cho Python startswith() phương pháp:

string_name.startswith(substring, start_pos, end_pos)

startswith() với phương thức có ba tham số như sau:

  • chuỗi con là chuỗi được kiểm tra trong chuỗi lớn hơn (bắt buộc)
  • start_pos là vị trí chỉ mục bắt đầu mà tại đó quá trình tìm kiếm chuỗi con sẽ bắt đầu (tùy chọn)
  • end_pos là vị trí chỉ mục mà tại đó quá trình tìm kiếm chuỗi con sẽ kết thúc (tùy chọn)

Tham số chuỗi con có phân biệt chữ hoa chữ thường . Vì vậy, nếu bạn đang tìm kiếm s trong một chuỗi, nó sẽ chỉ tìm kiếm các bản sao của s viết thường . Nếu bạn muốn tìm chữ hoa S , bạn sẽ cần chỉ định ký tự đó. Ngoài ra, hãy nhớ rằng các vị trí chỉ mục trong Python bắt đầu tại , điều này sẽ ảnh hưởng đến start_posend_pos thông số.

Hãy xem qua một ví dụ để giới thiệu startswith() phương pháp đang hoạt động.

Giả sử rằng chúng tôi là một nhà điều hành trò chơi điện tử và chúng tôi đang thực hiện một chương trình khuyến mãi đặc biệt. Mọi khách hàng có tên bắt đầu bằng J được thưởng thêm 200 vé cho mỗi 1000 vé mà họ giành được tại trò chơi điện tử. Để đổi những vé này, khách hàng phải quét thẻ trò chơi điện tử của họ tại bàn, nơi chạy chương trình để kiểm tra chữ cái đầu tiên trong tên của họ.

Đây là mã chúng tôi có thể sử dụng để kiểm tra xem chữ cái đầu tiên của tên khách hàng có bằng J hay không :

customer_name = "John Milton"

print(customer_name.startswith("J"))

Mã của chúng tôi trả về:Đúng. Trên dòng đầu tiên của mã, chúng tôi xác định một biến có tên là customer_name lưu trữ tên của khách hàng của chúng tôi. Sau đó, chúng tôi sử dụng startswith() để kiểm tra xem “customer_name ”Biến bắt đầu bằng J . Trong trường hợp này, tên khách hàng của chúng tôi bắt đầu bằng J , vì vậy chương trình của chúng tôi trả về True.

Nếu bạn không chỉ định start_pos hoặc end_pos đối số, startswith() sẽ chỉ tìm kiếm chuỗi con mà bạn đã chỉ định ở đầu chuỗi.

Bây giờ, giả sử chúng tôi đang thay đổi chương trình khuyến mại của mình và chỉ những người có tên chứa s giữa chữ cái thứ hai và thứ năm trong tên đầy đủ của họ. Chúng tôi có thể kiểm tra xem tên đầy đủ của khách hàng có chứa s hay không giữa các chữ cái thứ hai và thứ năm trong tên đầy đủ của họ bằng cách sử dụng mã này:

customer_name = "John Milton"

print(customer_name.startswith("s", 1, 5))

Mã của chúng tôi trả về:Sai. Trong mã của chúng tôi, chúng tôi đã chỉ định cả start_pos và một end_pos , được đặt thành 1 và 5, tương ứng. Điều này cho startswith() chỉ để tìm kiếm chữ cái s giữa các ký tự thứ hai và thứ năm trong chuỗi của chúng tôi (các ký tự có giá trị chỉ mục từ 1 đến 5).

Python Endswith

endswith() Phương pháp định dạng chuỗi có thể được sử dụng để kiểm tra xem một chuỗi có kết thúc bằng một giá trị cụ thể hay không. endswith() hoạt động theo cách tương tự như startswith() nhưng thay vì tìm kiếm một chuỗi con ở đầu chuỗi, nó sẽ tìm kiếm ở cuối.

Đây là cú pháp cho endswith() phương pháp:

string_name.endswith(substring, start_pos, end_pos)

Các định nghĩa cho các tham số này giống với các định nghĩa được sử dụng với startswith() phương pháp.

Hãy cùng khám phá một ví dụ để giới thiệu cách thức của endswith() phương thức có thể được sử dụng trong Python. Giả sử chúng tôi đang điều hành một hãng hàng không và chúng tôi muốn xử lý khoản hoàn phí trên thẻ tín dụng của khách hàng. Để làm như vậy, chúng tôi cần biết bốn chữ số cuối trong số thẻ của họ để có thể kiểm tra nó với số mà chúng tôi có trong hồ sơ.

Đây là một ví dụ về endswith() được sử dụng để kiểm tra xem bốn chữ số do khách hàng đưa ra có khớp với những chữ số trong hồ sơ hay không:

on_file_credit_card = '4242 4242 4242 4242'

matches = on_file_credit_card.endswith('4242')

print(matches)

Chương trình của chúng tôi trả về:Đúng. Trong trường hợp này, khách hàng của chúng tôi đã cung cấp cho chúng tôi các chữ số 4242 . Chúng tôi đã sử dụng endswith() để xác minh xem những con số đó có khớp với những con số mà chúng tôi có trong hồ sơ hay không. Trong trường hợp này, thẻ tín dụng trong hồ sơ kết thúc bằng 4242 , vì vậy chương trình của chúng tôi đã trả về True.

Chúng tôi cũng có thể sử dụng start_pos tùy chọn và end_pos đối số để tìm kiếm một chuỗi con tại một vị trí chỉ mục nhất định.

Giả sử chúng tôi đang điều hành một quán cà phê và chúng tôi có một chuỗi lưu trữ mọi thứ mà khách hàng đã đặt. Đầu bếp của chúng tôi muốn biết liệu đơn đặt hàng có chứa Ham Sandwich hay không và biết độ dài chuỗi của chúng ta là 24. Năm ký tự cuối cùng của chuỗi chứa ORDER . Vì vậy, chúng tôi muốn bỏ qua năm ký tự đầu tiên trong chuỗi của chúng tôi.

Chúng tôi có thể thực hiện tìm kiếm này bằng mã sau:

order = "ORDER Latte Ham Sandwich"

includes_ham_sandwich = order.endswith("Ham Sandwich", 0, 19)

print(includes_ham_sandwich)

Mã của chúng tôi trả về:True .

Trong ví dụ của chúng tôi, chúng tôi chỉ định Ham Sandwich làm tham số chuỗi con của chúng tôi.

Sau đó, chúng tôi chỉ định dưới dạng start_pos vì chúng tôi sẽ sử dụng end_pos tham số và start_pos không được để trống khi chúng tôi sử dụng end_pos . Chúng tôi chỉ định 19 là end_pos của chúng tôi đối số vì năm ký tự cuối cùng của chuỗi của chúng ta là ORDER và ký tự trước đó là khoảng trắng.

Chuỗi của chúng tôi kết thúc bằng Ham Sandwich , vì vậy chương trình của chúng tôi trả về True. Nếu chuỗi của chúng tôi không kết thúc bằng Ham Sandwich , nếu không thì hậu tố trả về False.

Python kết thúc với danh sách

Ngoài ra, endswith() có thể lấy một danh sách hoặc một bộ làm substring đối số, cho phép bạn kiểm tra xem một chuỗi có kết thúc bằng một trong nhiều chuỗi hay không. Giả sử chúng tôi đang tạo một chương trình kiểm tra xem tên tệp có kết thúc bằng .mp3 hay không hoặc .mp4 . Chúng tôi có thể thực hiện kiểm tra này bằng cách sử dụng mã sau:

potential_extensions = ['.mp3', '.mp4']
file_name = 'music.mp3'

print(file_name.endswith(potential_extensions))

Mã của chúng tôi trả về:Đúng. Trong ví dụ này, chúng tôi đã tạo một mảng có tên là potential_extensions lưu trữ danh sách các phần mở rộng tệp. Sau đó, chúng tôi khai báo một biến có tên là file_name nơi lưu trữ tên của tệp có phần mở rộng mà chúng tôi muốn kiểm tra.

Cuối cùng, chúng tôi sử dụng endswith() phương pháp để kiểm tra xem chuỗi của chúng tôi có kết thúc bằng bất kỳ phần mở rộng nào trong potential_extensions của chúng tôi hay không danh sách. Trong trường hợp này, tên tệp của chúng tôi kết thúc bằng .mp3 , được liệt kê trong potential_extensions của chúng tôi danh sách, vì vậy chương trình của chúng tôi trả về True.

Kết luận

startswith()endswith() các phương thức có thể được sử dụng để kiểm tra xem một chuỗi Python bắt đầu bằng hay kết thúc bằng một chuỗi con cụ thể, tương ứng. Mỗi phương thức bao gồm các tham số tùy chọn cho phép bạn chỉ định nơi tìm kiếm sẽ bắt đầu và kết thúc trong một chuỗi.

Hướng dẫn này thảo luận về cách sử dụng cả startswith()endswith() và khám phá một vài ví dụ về từng phương pháp đang hoạt động. Bây giờ, bạn đã sẵn sàng để kiểm tra xem các chuỗi bắt đầu bằng hay kết thúc bằng một chuỗi con bằng cách sử dụng startswith()endswith() phương pháp như một chuyên gia.