tiêu chuẩn. tìm từ C++ STL, phương thức chỉ mục trong Python, phương thức indexOf trong Java, phương thức indexOf trong JavaScript là một số hàm sẵn có trong thư viện của các ngôn ngữ tương ứng để tìm chỉ mục bắt đầu của một chuỗi con trong một chuỗi đã cho. Cho một xâu và một số nguyên M, in ra tất cả các xâu tròn riêng biệt có độ dài M theo thứ tự từ điển.
ví dụ.
Khuyến khích. Vui lòng thử cách tiếp cận của bạn trên {IDE} trước, trước khi chuyển sang giải pháp Cách tiếp cận. Hàm substr được sử dụng để giải quyết vấn đề. Đầu tiên nối chuỗi vào chính nó. Lặp lại chiều dài của chuỗi để tạo ra tất cả các chuỗi con có thể có độ dài M. Set được sử dụng trong C++ để lưu trữ tất cả các chuỗi con riêng biệt có độ dài 4, set theo mặc định lưu trữ tất cả phần tử của nó theo thứ tự từ điển. Khi tất cả các chuỗi được tạo, hãy in các phần tử trong tập hợp từ đầu. Kể từ Python 3. 6, chuỗi f là một cách mới tuyệt vời để định dạng chuỗi. Chúng không chỉ dễ đọc hơn, ngắn gọn hơn và ít bị lỗi hơn các cách định dạng khác mà còn nhanh hơn Đến cuối bài viết này, bạn sẽ tìm hiểu cách thức và lý do bắt đầu sử dụng f-strings ngay hôm nay Nhưng trước tiên, đây là cuộc sống trước khi có f-string, khi bạn phải đi bộ đến trường lên dốc trên cả hai con đường trong tuyết Lấy bài kiểm tra. Kiểm tra kiến thức của bạn với bài kiểm tra tương tác “Python f-Strings” của chúng tôi. Sau khi hoàn thành, bạn sẽ nhận được điểm số để có thể theo dõi quá trình học tập của mình theo thời gian Lấy bài kiểm tra " Định dạng chuỗi "trường học cũ" trong PythonTrước Python 3. 6, bạn có hai cách chính để nhúng biểu thức Python bên trong chuỗi ký tự để định dạng. %-định dạng và 6. Bạn sắp xem cách sử dụng chúng và những hạn chế của chúngLoại bỏ các quảng cáoLựa chọn 1. %-định dạngĐây là định dạng OG của Python và đã có trong ngôn ngữ này ngay từ đầu. Bạn có thể đọc thêm trong tài liệu Python. Hãy nhớ rằng %-formatting không được các tài liệu khuyến nghị, trong đó có lưu ý sau
Cách sử dụng định dạng %Các đối tượng chuỗi có một phép toán tích hợp sử dụng toán tử 8 mà bạn có thể sử dụng để định dạng chuỗi. Đây là những gì trông giống như trong thực tế>>>
Để chèn nhiều biến, bạn phải sử dụng một bộ các biến đó. Đây là cách bạn sẽ làm điều đó >>>
Tại sao định dạng% không tốtCác ví dụ mã mà bạn vừa thấy ở trên là đủ để đọc. Tuy nhiên, khi bạn bắt đầu sử dụng một số tham số và chuỗi dài hơn, mã của bạn sẽ nhanh chóng trở nên khó đọc hơn nhiều. Mọi thứ bắt đầu có vẻ hơi lộn xộn rồi >>>
Thật không may, kiểu định dạng này không tốt vì nó dài dòng và dẫn đến lỗi, chẳng hạn như không hiển thị chính xác các bộ dữ liệu hoặc từ điển. May mắn thay, có những ngày tươi sáng phía trước Lựa chọn 2. str. định dạng()Cách mới hơn để hoàn thành công việc này đã được giới thiệu trong Python 2. 6. Bạn có thể xem Hướng dẫn về các kỹ thuật định dạng chuỗi Python mới hơn để biết thêm thông tin Cách sử dụng str. định dạng() 6 là một cải tiến về định dạng%. Nó sử dụng cú pháp gọi hàm bình thường và có thể mở rộng thông qua phương thức 0 trên đối tượng được chuyển đổi thành chuỗiVới 6, các trường thay thế được đánh dấu bằng dấu ngoặc nhọn>>>
Bạn có thể tham chiếu các biến theo bất kỳ thứ tự nào bằng cách tham chiếu chỉ mục của chúng >>>
Nhưng nếu bạn chèn tên biến, bạn sẽ có thêm lợi ích là có thể truyền các đối tượng và sau đó tham chiếu các tham số và phương thức ở giữa các dấu ngoặc nhọn >>> 1Bạn cũng có thể sử dụng 2 để thực hiện thủ thuật gọn gàng này với từ điển>>> 3 6 chắc chắn là một bản nâng cấp khi so sánh với định dạng%, nhưng không phải toàn là hoa hồng và ánh nắngTại sao str. format() không tốtMã sử dụng 6 dễ đọc hơn nhiều so với mã sử dụng định dạng %, nhưng 6 vẫn có thể khá dài dòng khi bạn đang xử lý nhiều tham số và chuỗi dài hơn. Hãy xem này>>> 7Nếu bạn có các biến mà bạn muốn chuyển đến 6 trong từ điển, thì bạn chỉ cần giải nén nó bằng 7 và tham chiếu các giá trị theo khóa trong chuỗi, nhưng phải có cách tốt hơn để thực hiện việc nàyLoại bỏ các quảng cáochuỗi f. Một cách mới và cải tiến để định dạng chuỗi trong PythonTin tốt là f-strings ở đây để tiết kiệm thời gian. Họ cắt lát. họ xúc xắc. Họ làm khoai tây chiên. Được rồi, họ không làm những việc đó, nhưng họ làm cho việc định dạng dễ dàng hơn. Họ đã tham gia bữa tiệc trong Python 3. 6. Bạn có thể đọc tất cả về nó trong PEP 498, được viết bởi Eric V. Smith vào tháng 8 năm 2015 Còn được gọi là “các chuỗi ký tự được định dạng”, f-string là các ký tự chuỗi có 8 ở đầu và các dấu ngoặc nhọn chứa các biểu thức sẽ được thay thế bằng các giá trị của chúng. Các biểu thức được đánh giá trong thời gian chạy và sau đó được định dạng bằng giao thức 9. Như mọi khi, tài liệu Python là bạn của bạn khi bạn muốn tìm hiểu thêmDưới đây là một số cách f-strings có thể làm cho cuộc sống của bạn dễ dàng hơn Cú pháp đơn giảnCú pháp tương tự như cú pháp bạn đã sử dụng với 6 nhưng ít dài dòng hơn. Hãy nhìn xem điều này dễ đọc như thế nào>>> 3Cũng có thể sử dụng chữ in hoa 11>>> 5Bạn có thích f-strings chưa? Biểu thức tùy ýVì chuỗi f được đánh giá trong thời gian chạy, nên bạn có thể đặt bất kỳ và tất cả các biểu thức Python hợp lệ vào đó. Điều này cho phép bạn làm một số điều tiện lợi Bạn có thể làm điều gì đó khá đơn giản, như thế này >>> 0Nhưng bạn cũng có thể gọi các chức năng. Đây là một ví dụ >>> 1Bạn cũng có tùy chọn gọi một phương thức trực tiếp >>> 2Bạn thậm chí có thể sử dụng các đối tượng được tạo từ các lớp có chuỗi f. Hãy tưởng tượng bạn có lớp sau 3Bạn có thể làm điều này >>> 4Các phương thức 13 và 14 xử lý cách các đối tượng được trình bày dưới dạng chuỗi, vì vậy bạn sẽ cần đảm bảo rằng bạn bao gồm ít nhất một trong các phương thức đó trong định nghĩa lớp của mình. Nếu bạn phải chọn một, hãy chọn 14 vì nó có thể được sử dụng thay cho 13Chuỗi được trả về bởi 13 là biểu diễn chuỗi không chính thức của một đối tượng và có thể đọc được. Chuỗi được trả về bởi 14 là đại diện chính thức và phải rõ ràng. Gọi 19 và 30 tốt hơn là sử dụng trực tiếp 13 và 14Theo mặc định, f-strings sẽ sử dụng 13, nhưng bạn có thể đảm bảo rằng chúng sử dụng 14 nếu bạn bao gồm cờ chuyển đổi 35>>> 5Nếu bạn muốn đọc một số cuộc trò chuyện dẫn đến chuỗi f hỗ trợ các biểu thức Python đầy đủ, bạn có thể làm như vậy tại đây Chuỗi f nhiều dòngBạn có thể có nhiều chuỗi >>> 6Nhưng hãy nhớ rằng bạn cần đặt một 8 trước mỗi dòng của một chuỗi nhiều dòng. Đoạn mã sau sẽ không hoạt động>>> 7Nếu bạn không đặt một 8 trước mỗi dòng riêng lẻ, thì bạn sẽ chỉ có những dây đàn thông thường, cũ kỹ, đa dạng trong vườn và không phải những dây đàn f lạ mắt, mới mẻ, sáng bóngNếu bạn muốn trải các chuỗi trên nhiều dòng, bạn cũng có tùy chọn thoát khỏi trả về bằng một 38>>> 8Nhưng đây là điều sẽ xảy ra nếu bạn sử dụng 39>>> 9Đọc hướng dẫn thụt đầu dòng trong PEP 8 Tốc độ, vận tốc 8 trong chuỗi f cũng có thể là viết tắt của “fast. ”f-strings nhanh hơn cả %-formatting và 6. Như bạn đã thấy, chuỗi f là các biểu thức được đánh giá trong thời gian chạy thay vì các giá trị không đổi. Đây là một đoạn trích từ các tài liệu
Khi chạy, biểu thức bên trong dấu ngoặc nhọn được đánh giá trong phạm vi riêng của nó và sau đó được đặt cùng với phần ký tự chuỗi của chuỗi f. Chuỗi kết quả sau đó được trả về. Đó là tất cả những gì nó cần Đây là một so sánh tốc độ >>> 0>>> 1>>> 2Như bạn có thể thấy, f-string xuất hiện trên cùng Tuy nhiên, không phải lúc nào cũng vậy. Khi chúng được triển khai lần đầu tiên, chúng có một số vấn đề về tốc độ và cần được thực hiện nhanh hơn 6. Một opcode 74 đặc biệt đã được giới thiệuLoại bỏ các quảng cáoChuỗi f Python. Các chi tiết phiền phứcBây giờ bạn đã tìm hiểu tất cả về lý do tại sao f-string lại tuyệt vời, tôi chắc rằng bạn muốn ra khỏi đó và bắt đầu sử dụng chúng. Dưới đây là một số chi tiết cần ghi nhớ khi bạn dấn thân vào thế giới mới dũng cảm này Dấu ngoặc képBạn có thể sử dụng nhiều loại dấu ngoặc kép bên trong các biểu thức. Chỉ cần đảm bảo rằng bạn không sử dụng cùng một loại dấu ngoặc kép ở bên ngoài chuỗi f mà bạn đang sử dụng trong biểu thức Mã này sẽ hoạt động >>> 3Mã này cũng sẽ hoạt động >>> 4Bạn cũng có thể sử dụng dấu ngoặc kép >>> 5>>> 6Nếu bạn thấy cần sử dụng cùng một loại dấu ngoặc kép ở cả bên trong và bên ngoài chuỗi, thì bạn có thể thoát bằng 38>>> 7từ điểnNói về dấu ngoặc kép, hãy coi chừng khi bạn đang làm việc với từ điển. Nếu bạn định sử dụng dấu ngoặc kép đơn cho các khóa của từ điển thì hãy nhớ đảm bảo rằng bạn đang sử dụng dấu ngoặc kép cho chuỗi f chứa khóa Điều này sẽ làm việc >>> 8Nhưng đây sẽ là một mớ hỗn độn với lỗi cú pháp >>> 9Nếu bạn sử dụng cùng loại dấu ngoặc kép xung quanh các khóa từ điển như bạn làm ở bên ngoài chuỗi f, thì dấu ngoặc kép ở đầu khóa từ điển đầu tiên sẽ được hiểu là kết thúc chuỗi Loại bỏ các quảng cáoNiềng răngĐể tạo dấu ngoặc xuất hiện trong chuỗi của bạn, bạn phải sử dụng dấu ngoặc kép >>> 0Lưu ý rằng việc sử dụng dấu ngoặc ba sẽ dẫn đến chỉ có dấu ngoặc đơn trong chuỗi của bạn >>> 1Tuy nhiên, bạn có thể nhận được nhiều niềng răng hơn nếu bạn sử dụng nhiều hơn ba niềng răng >>> 2dấu gạch chéo ngượcNhư bạn đã thấy trước đó, bạn có thể sử dụng dấu gạch chéo ngược thoát trong phần chuỗi của chuỗi f. Tuy nhiên, bạn không thể sử dụng dấu gạch chéo ngược để thoát trong phần biểu thức của chuỗi f >>> 3Bạn có thể giải quyết vấn đề này bằng cách đánh giá trước biểu thức và sử dụng kết quả trong chuỗi f >>> 4Nhận xét nội tuyếnCác biểu thức không nên bao gồm các nhận xét sử dụng ký hiệu 76. Bạn sẽ gặp lỗi cú pháp>>> 5Đi tiếp và định dạngBạn vẫn có thể sử dụng các cách định dạng chuỗi cũ hơn, nhưng với chuỗi f, giờ đây bạn có một cách ngắn gọn, dễ đọc và thuận tiện hơn, nhanh hơn và ít bị lỗi hơn. Đơn giản hóa cuộc sống của bạn bằng cách sử dụng chuỗi f là một lý do tuyệt vời để bắt đầu sử dụng Python 3. 6 nếu bạn chưa thực hiện chuyển đổi. (Nếu bạn vẫn đang sử dụng Python 2, đừng quên rằng 2020 sẽ đến sớm thôi. ) Theo Zen of Python, khi bạn cần quyết định cách làm một việc gì đó, thì “[t]đây nên là một– và tốt nhất là chỉ có một – cách rõ ràng để làm việc đó. ” Mặc dù chuỗi f không phải là cách duy nhất khả thi để bạn định dạng chuỗi, nhưng chúng có vị trí tuyệt vời để trở thành một cách rõ ràng để hoàn thành công việc Đọc thêmNếu bạn muốn đọc phần thảo luận mở rộng về phép nội suy chuỗi, hãy xem PEP 502. Ngoài ra, dự thảo PEP 536 có thêm một số suy nghĩ về tương lai của f-string Tải xuống PDF miễn phí. Bảng cheat Python 3 Để có nhiều niềm vui hơn với chuỗi, hãy xem các bài viết sau
Python hạnh phúc Lấy bài kiểm tra. Kiểm tra kiến thức của bạn với bài kiểm tra tương tác “Python f-Strings” của chúng tôi. Sau khi hoàn thành, bạn sẽ nhận được điểm số để có thể theo dõi quá trình học tập của mình theo thời gian Lấy bài kiểm tra " Đánh dấu là đã hoàn thành Xem ngay Hướng dẫn này có một khóa học video liên quan do nhóm Real Python tạo. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn. Chuỗi f của Python 3. Cú pháp định dạng chuỗi được cải tiến 🐍 Thủ thuật Python 💌 Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python Gửi cho tôi thủ thuật Python » Giới thiệu về Joanna Jablonski Joanna là Biên tập viên điều hành của Real Python. Cô ấy yêu ngôn ngữ tự nhiên nhiều như cô ấy yêu ngôn ngữ lập trình » Thông tin thêm về JoannaMỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là Adriana David Đan Jim Pavel Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia Nâng cao kỹ năng Python của bạn » Bậc thầy Kỹ năng Python trong thế giới thực Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia Nâng cao kỹ năng Python của bạn » Bạn nghĩ sao? Đánh giá bài viết này Tweet Chia sẻ Chia sẻ EmailBài học số 1 hoặc điều yêu thích mà bạn đã học được là gì? Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. Nhận các mẹo để đặt câu hỏi hay và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi |