Mã python giải sudoku
Trong phần 2 của loạt bài này (Xem phần 2), chúng ta đã thảo luận cách nhận biết số từ mỗi ô trong lưới SUDOKU. Với sự trợ giúp của SVM, chúng ta có thể dễ dàng nhận ra chữ số từ hình ảnh SUDOKU. Base on that recognition result, the SUDOKU grid can be solved by using the backtracking method Show
Trong bài viết này, chúng ta sẽ tiếp tục bài viết trước về cách nhận biết đầu số được trích xuất từ bảng SUDOKU. Xem phần 1 Xin chào, hôm nay tôi sẽ giải thích cách tạo Bộ giải SUDOKU đơn giản được lấy từ hình ảnh từng bước. Bạn có thể xem bản demo của SUDOKU Solver trong ảnh GIF bên dưới Đọc thêmDò tìm đường có nhiều ứng dụng trong xử lý ảnh và thị giác máy tính. Một ví dụ đơn giản về ứng dụng phát hiện dòng là SUDOKU Solver. Hãy tưởng tượng bạn muốn giải bảng SUDOKU nằm trong một hình ảnh. First, you have to detect SUDOKU grid and extract digits to recognize those numbers. Hough Line Transform is one of the popular techniques to detect lines in images. Deep Learning hiện đang là mô hình hiệu quả để giải quyết rất nhiều vấn đề như Xử Lý Ảnh, Xử Lý Ngôn Ngữ Tự Nhiên. v. v. Việc hiện thực hóa các mô hình Deep Learning bây giờ không mấy khó khăn vì đã có rất nhiều thư viện hỗ trợ việc thiết kế mô hình mạng nơ-ron. Caffe là một trong những thư viện hỗ trợ Deep Learning có đông đảo người dùng nhất. Caffe rất mạnh trong việc xử lý ảnh và nó cũng có thể thiết kế các mô hình Deep Learning cho các vấn đề khác. Thư viện này có thể kết hợp với GPU của NVIDIA giúp cải thiện tốc độ huấn luyện mạng thông qua CUDA. Máy học là xu hướng phát triển mới của lĩnh vực Trí Tuệ Nhân Tạo và ngày càng có nhiều ứng dụng trong đời sống thực tế. Các ví dụ điển hình của máy học có thể kể đến như cỗ máy tìm kiếm Google. Hằng ngày bạn vào Google tìm kiếm và để ý rằng, Google có thể hiểu được ngữ nghĩa của từ khóa mà bạn tìm kiếm nhằm gợi ý và đưa ra các kết quả tìm kiếm tốt hơn hay gợi ý các kết quả tìm kiếm cho bạn. Hoặc như Facebook, có thể nhận dạng khuôn mặt ở chức năng tag ảnh, có thể gợi ý bài viết liên quan hoặc gợi ý kết bạn. Có khi nào bạn tự hỏi vì sao các ứng dụng có thể “thông minh” đến như thế? Nhờ vào thuật toán cụ thể nào để có thể đạt được như thế? Bạn có phải là nhà phát triển Python đang trau dồi các kỹ năng của mình trước khi phỏng vấn không? Nếu vậy, thì hướng dẫn này sẽ mở ra cho bạn một loạt các vấn đề thực hành Python nhằm mô phỏng các tình huống kiểm tra code phổ biến. Sau khi bạn phát triển các giải pháp của riêng mình, bạn sẽ xem qua các câu trả lời của nhóm V1Study để bạn có thể tối ưu hóa code, gây ấn tượng với người phỏng vấn và đạt được công việc mơ ước của bạn Trong hướng dẫn này, bạn sẽ học cách
Hướng dẫn này dành cho các nhà phát triển Python trung cấp. Nó giả định kiến thức cơ bản về Python và khả năng giải quyết vấn đề bằng Python. Bạn có thể nhận mã với các bài kiểm tra đơn vị không thành công cho từng vấn đề mà bạn sẽ thấy trong hướng dẫn này bằng cách nhấp vào liên kết bên dưới Bài tập thực hành Python 1. Tổng của một dãy số nguyênHãy bắt đầu với một câu hỏi khởi động. Trong bài toán thực hành đầu tiên, bạn sẽ viết mã để tính tổng một danh sách các số nguyên. Mỗi vấn đề thực hiện bao gồm một mô tả. Mô tả này được lấy trực tiếp từ các tệp khung trong repo để giúp bạn dễ nhớ hơn khi bạn đang nghiên cứu giải pháp của mình Bạn cũng sẽ thấy phần giải pháp cho từng vấn đề. Hầu hết các thảo luận sẽ nằm trong phần thu gọn bên dưới. Sao chép repo đó nếu bạn chưa có, tìm giải pháp cho vấn đề sau, sau đó mở rộng hộp giải pháp để xem lại công việc của bạn Mô tả vấn đềĐây là vấn đề đầu tiên của bạn
Hãy nhớ chạy các bài kiểm tra đơn vị cho đến khi bạn vượt qua chúng Giải phápDưới đây là một số thảo luận về một số giải pháp khả thi
zzzGiải pháp cho Tổng số nguyên của dãy số Hiển thị Làm thế nào để viết các giải pháp đi? Đối với vấn đề này, bạn sẽ xem xét một số giải pháp khác nhau. Cái đầu tiên trong số này không tốt lắm
Trong giải pháp này, bạn tự xây dựng một 4 vòng lặp để chạy qua các con số 5thông qua 6. You continue run 7và sau đó trả lại khi bạn kết thúc vòng lặpGiải pháp này hoạt động, nhưng nó có hai vấn đề
Bạn sẽ giải quyết các lỗi điều kiện trong câu trả lời cuối cùng bên dưới, nhưng trước tiên hãy tinh chỉnh giải pháp cốt lõi cốt lõi để Pythonic hơn một chút Điều kiện đầu tiên cần nghĩ đến là 4 vòng lặp đó. Python có các chế độ bảo vệ mạnh mẽ để lặp lại các danh sách và phạm vi. Tạo của riêng bạn thường là không cần thiết, và chắc chắn là trường hợp ở đây. Bạn có thể thay thế 4 vòng lặp bằng một vòng lặp lặp qua 01 1Bạn có thể thấy rằng 02cấu trúc đã thay thế 4vòng lặp của bạn và rút ngắn mã. Một điều cần lưu ý là 01tăng lên nhưng không bao gồm các số đã chọn, vì vậy bạn cần sử dụng 05tại đâyĐây là một bước tốt đẹp. Nó loại bỏ một số mã viết sẵn của công việc lặp lại trên một phạm vi và làm cho ý định của bạn rõ ràng hơn. Nhưng vẫn còn nhiều điều bạn có thể làm ở đây Tính tổng danh sách các số nguyên là một thứ khác mà Python giỏi 6chà. Bằng cách sử dụng tính hợp lệ sẵn có 06, bạn đã được điều chỉnh này xuống một dòng mã. Mặc dù mã chơi gôn thường không tạo ra mã dễ đọc nhất, nhưng trong trường hợp này, bạn có một chiến thắng. mã ngắn hơn và dễ đọc hơnTuy nhiên, vẫn còn một vấn đề. Mã này vẫn không xử lý các điều kiện lỗi một cách chính xác. Để giải quyết điều đó, bạn có thể bọc mã trước đó của mình thành một 07khối
Điều này giải quyết vấn đề và xử lý các điều kiện lỗi một cách chính xác. Tốt thôi Đôi khi, những người phỏng vấn sẽ hỏi câu hỏi này với một giới hạn cố định, chẳng hạn như “In tổng của chín số nguyên đầu tiên”. Khi vấn đề được giải quyết theo cách đó, một giải pháp đúng sẽ là 08Tuy nhiên, nếu bạn đưa ra câu trả lời này, thì bạn nên theo dõi mã giải quyết vấn đề từng bước. Câu trả lời mẹo là một nơi tốt để bắt đầu câu trả lời của bạn, nhưng nó không phải là một nơi tuyệt vời để kết thúc Nếu bạn muốn mở rộng vấn đề này, hãy thử thêm một giới hạn thấp hơn tùy chọn 3để cung cấp cho nó sự linh hoạt hơnVấn đề thực hành Python 2. Mật mã CaesarCâu hỏi tiếp theo là một hai mệnh giá. Bạn sẽ viết mã một hàm để tính toán mật mã Caesar khi nhập văn bản. Đối với vấn đề này, bạn có thể sử dụng bất kỳ phần nào của thư viện chuẩn Python để thực hiện chuyển đổi Gợi ý. Có một hàm trong 20lớp sẽ làm cho nhiệm vụ này dễ dàng hơn nhiềuMô tả vấn đềCâu lệnh sự cố nằm ở đầu tệp nguồn bộ xương
Hãy nhớ rằng, phần này của câu hỏi thực sự là về việc bạn có thể tham quan tốt như thế nào trong thư viện tiêu chuẩn. Nếu bạn thấy mình đang tìm cách thực hiện chuyển đổi mà không cần thư viện, thì hãy lưu lại suy nghĩ đó. Bạn sẽ cần nó sau Giải pháp vấn đềĐây là một giải pháp cho vấn đề mật mã Caesar được mô tả ở trên Lưu ý. Hãy nhớ rằng, đừng mở phần thu gọn bên dưới cho đến khi bạn sẵn sàng xem câu trả lời cho vấn đề thực thi Python này Giải pháp cho Mật mã Caesar Hiện an Giải pháp này tận dụng 24từ 20lớp trong thư viện chuẩn. Nếu bạn gặp khó khăn với vấn đề này, thì bạn có thể muốn dừng lại một chút và xem xét cách bạn có thể sử dụng 24trong giải pháp của mìnhĐược rồi, bây giờ bạn đã sẵn sàng, hãy xem giải pháp này 1Bạn có thể thấy rằng hàm sử dụng ba thứ từ 27mô-đun
Trong hai dòng đầu tiên, bạn tạo một biến với tất cả các chữ cái thường của bảng chữ cái (ASCII chỉ dành cho chương trình này) và sau đó tạo một 11, là cùng một tập hợp các chữ cái, chỉ được dịch chuyển. Cú pháp cắt không phải lúc nào cũng rõ ràng, vì vậy hãy xem qua nó với một ví dụ trong thế giới thực>>> 7Bạn có thể thấy đó 12là tất cả các chữ cái sau chữ cái thứ ba 13, trong khi 14chỉ là ba chữ cái đầu tiênDòng 6 trong giải pháp, 15tạo một danh sách các chữ cái được dịch chuyển theo 16các chữ cái, với các chữ cái ở cuối được quấn quanh phía trước. Khi bạn có danh sách các chữ cái và các 11chữ cái bạn muốn ánh xạ, bạn gọi 29để tạo một bảng dịchTiếp theo, bạn chuyển bảng dịch sang chuỗi công thức 24. Nó ánh xạ tất cả các ký tự 70với các chữ cái tương ứng trong 11và để lại tất cả các ký tự khác một mìnhCâu hỏi này là một bài tập về việc biết và sử dụng thư viện chuẩn. Bạn có thể được hỏi một câu hỏi như thế này vào một thời điểm nào đó trong một cuộc phỏng vấn. Nếu điều đó xảy ra với bạn, tốt hơn hết là bạn nên dành thời gian suy nghĩ về những câu trả lời khả thi. Nếu bạn có thể nhớ phương pháp— 24trong trường hợp này — thì bạn đã sẵn sàngNhưng có một số kịch bản khác cần xem xét
Nếu bạn đang làm công việc bình thường và gặp phải một trong hai tình huống này, thì bạn chỉ cần thực hiện một số tìm kiếm và đi trên con đường của mình. Nhưng trong một tình huống phỏng vấn, nó sẽ giúp bạn nói rõ vấn đề một cách rõ ràng Yêu cầu người phỏng vấn giúp đỡ cụ thể sẽ tốt hơn nhiều so với việc phớt lờ nó. Hãy thử một cái gì đó như “Tôi nghĩ rằng có một chức năng ánh xạ một bộ ký tự này sang một bộ ký tự khác. Bạn có thể giúp tôi nhớ nó được gọi là gì không? ” Trong một cuộc phỏng vấn tình huống, thông thường tốt hơn là thừa nhận rằng bạn không biết điều gì đó hơn là cố gắng vượt qua một cách vô tội. Bây giờ bạn đã thấy một giải pháp bằng cách sử dụng thư viện chuẩn Python, hãy thử lại vấn đề tương tự, nhưng không có sự trợ giúp đó Vấn đề thực thi Python 3. Mật mã Caesar ReduxĐối với vấn đề thực hành thứ ba, bạn sẽ giải lại mật mã Caesar, nhưng lần này bạn sẽ làm điều đó mà không cần sử dụng 24Mô tả vấn đềMô tả của vấn đề này cũng giống như vấn đề trước đó. Trước khi đi sâu vào giải pháp, bạn có thể tự hỏi tại sao bạn lại lặp lại cùng một bài tập mà không có sự trợ giúp của 24Đó là một câu hỏi tuyệt vời. Trong cuộc sống bình thường, khi mục tiêu của bạn là một chương trình hoạt động được, có thể bảo trì được, thì việc viết lại các phần của thư viện chuẩn là một lựa chọn không tồi. Thư viện chuẩn Python được đóng gói với các giải pháp hoạt động, được kiểm tra tốt và nhanh chóng cho các vấn đề lớn và nhỏ. Tận dụng triệt để nó là một dấu ấn của một thành viên giỏi Điều đó nói lên rằng, đây không phải là một dự án công việc hay một chương trình mà bạn đang xây dựng để đáp ứng nhu cầu. Đây là một bài học tập và nó là loại câu hỏi có thể được hỏi trong một cuộc phỏng vấn. Mục tiêu của cả hai là xem bạn có thể giải quyết vấn đề như thế nào và bạn phải đánh đổi thiết kế thú vị nào khi thực hiện nó Vì vậy, với câu hỏi của tinh thần học hỏi, chúng ta sẽ cố gắng giải mật mã Caesar mà không có 24Giải pháp vấn đềĐối với vấn đề này, bạn sẽ có hai giải pháp khác nhau để xem xét khi bạn sẵn sàng mở rộng phần bên dưới Lưu ý. Hãy nhớ rằng, đừng mở phần thu gọn bên dưới cho đến khi bạn sẵn sàng xem câu trả lời cho vấn đề thực thi Python này Giải pháp cho Caesar Cipher Redux Hiển thị Đối với vấn đề này, hai giải pháp khác nhau được cung cấp. Kiểm tra cả hai và xem bạn thích cái nào hơn Giải pháp 1Đối với giải pháp đầu tiên, bạn làm theo các mô tả vấn đề chặt chẽ, bổ sung một số tiền cho mỗi nhân vật và đặt nó trở lại phần đầu của bảng chữ cái khi nó đi vào bên ngoài 76 3Bắt đầu từ dòng 14, bạn có thể thấy điều đó 77không hiểu danh sách , gọi một hàm trợ giúp cho từng chữ cái trong 78. Sau đó, nó thực hiện một 79 để tạo mã hóa chuỗi mới. Câu này ngắn gọn và dễ hiểu, và bạn sẽ thấy cấu trúc tương tự trong giải pháp thứ hai. Vị trí xảy ra trong ____530Tại đây, bạn có thể thấy một mục đích sử dụng khác 31, lần này sẽ lọc ra bất kỳ chữ cái nào không có trong nhóm đó. Khi bạn chắc chắn rằng mình đã lọc ra bất kỳ ký tự nào không phải chữ cái, bạn có thể tiến hành mã hóa. Trong phiên bản mã hóa này, bạn sử dụng hai hàm từ thư viện chuẩn Python
Một lần nữa, bạn không chỉ được khen thưởng về những chức năng của học sinh mà còn xem xét xem bạn có thể trả lời như thế nào trong một vấn đề phỏng vấn nếu bạn không thể nhớ tên của họ 32 thực hiện công việc chuyển một chữ cái thành một số và 33 chuyển nó trở lại một chữ cái. Điều này rất tiện lợi vì nó cho phép bạn tính toán số học trên các chữ cái, đó là những gì bạn muốn cho vấn đề nàyBước đầu mã hóa của bạn trên dòng 7 lấy giá trị số của ký tự đã được mã hóa bằng cách sử dụng 32 để lấy giá trị số của ký tự gốc. 32trả về điểm mã Unicode của ký tự, hóa ra là giá trị ASCIIĐối với nhiều chữ cái có giá trị giao dịch chuyển nhỏ, bạn có thể chuyển đổi chữ cái trở lại một ký tự và bạn sẽ hoàn tất. Nhưng hãy xem xét chữ cái bắt đầu , 76Một sự thay đổi của một ký tự sẽ dẫn đến chữ cái 39. Để đạt được sự bao bọc này, bạn đã tìm thấy sự khác biệt giữa chữ cái được mã hóa với chữ cái 76. Nếu sự khác biệt đó là tích cực, thì bạn cần phải quay lại từ đầuBạn thực hiện công việc này trong các dòng từ 8 đến 11 bằng cách thêm liên tục 26 vào hoặc loại bỏ nó khỏi các ký tự cho đến khi nó nằm trong phạm vi của ký tự ASCII. Lưu ý rằng đây là một phương pháp khá kém hiệu quả để giải quyết vấn đề này. Bạn sẽ thấy một giải pháp tốt hơn trong câu trả lời tiếp theo Cuối cùng, trên dòng 12, chức năng chuyển đổi hàm shift của bạn lấy giá trị số của ký tự mới và chuyển nó trở lại thành một ký tự để trả về Mặc dù giải pháp này sử dụng một cách tiếp cận theo nghĩa đen để giải quyết vấn đề mật mã Caesar, nhưng bạn cũng có thể sử dụng một cách tiếp cận khác được mô phỏng theo 24giải pháp trong bài toán thực tế 2Giải pháp 2Giải pháp thứ hai cho vấn đề này bắt đầu khởi động hành vi của phương thức tích hợp sẵn của Python 24. Thay vì dịch chuyển từng chữ cái theo một số lượng nhất định, nó tạo ra một bản đồ dịch và sử dụng nó để mã hóa từng chữ cái 0Bắt đầu với 77dòng 11, bạn bắt đầu bằng cách giải quyết sự cố 04lớn hơn 05. Trong giải pháp trước, bạn lặp lại nhiều lần cho đến khi kết quả nằm trong phạm vi thích hợp. Ở đây, bạn thực hiện một cách tiếp cận trực tiếp hơn và hiệu quả hơn bằng cách sử dụng mô hình toán học ( 06)Mod nhà điều hành tạo ra phần còn lại từ một bộ phận nguyên. Trong trường hợp này, bạn chia cho 05, có nghĩa là kết quả được đảm bảo giữa 8và 09, bao gồmTiếp theo, bạn tạo bảng dịch. Đây là một sự thay đổi so với các giải pháp trước đó và đáng chú ý. Bạn sẽ tìm hiểu thêm về điều này ở cuối phần này Sau khi bạn tạo 100, phần còn lại của 77nó giống với giải pháp trước đó. một danh sách khả năng hiểu để mã hóa từng chữ cái và một 79 để tạo một chuỗi 30 tìm thấy chỉ mục của các ký tự đã chọn trong bảng chữ cái và sau đó sử dụng chỉ mục này để lấy một ký tự từ 100. Các 07khối bắt các trường hợp đó không được tìm thấy trong danh sách các chữ cái thông thườngBây giờ chúng ta hãy thảo luận về vấn đề tạo bảng. Đối với ví dụ chơi này, nó không thể quá quan trọng, nhưng nó minh họa một tình huống thường xuyên xảy ra trong quá trình phát triển hàng ngày. cân bằng độ rõ ràng của mã với các tắc nghẽn hiệu suất đã biết Nếu kiểm tra lại mã, bạn sẽ thấy nó 100chỉ được sử dụng bên trong 30. Điều này chỉ nói rằng, trong những trường hợp hợp lý bình thường, nó đáng lẽ phải được tạo ra trong đó, và làm điều đó, phạm vi của nó bị giới hạn ở 30 10Vấn đề với cách tiếp cận đó là nó dành thời gian tính toán cùng một bảng cho từng chữ cái của tin nhắn. Đối với các tin nhắn nhỏ, thời gian này sẽ không đáng kể, nhưng nó có thể tăng lên so với các tin nhắn lớn hơn Một cách khác có thể xảy ra mà bạn có thể tránh được hình phạt hiệu suất này là tạo ra 100một biến toàn cục. Trong khi điều này cũng cắt giảm hình phạt xây dựng, nó làm cho phạm vi của nó 100thậm chí còn lớn hơn. Điều này có vẻ không tốt hơn so với cách tiếp cận gần được hiển thị ở trênVào cuối ngày, hãy lựa chọn giữa việc tạo 100một lần trả trước và tạo cho nó một phạm vi lớn hơn hoặc chỉ tạo nó cho mỗi chữ cái được gọi là quyết định thiết kế. Bạn cần chọn thiết kế dựa trên những gì bạn biết về vấn đề thực tế mà bạn đang cố gắng giải quyếtNếu đây là một dự án nhỏ và bạn biết nó sẽ được sử dụng để mã hóa các thông báo lớn, thì việc tạo bảng chỉ một lần có thể là quyết định đúng đắn. Nếu đây chỉ là một phần của dự án lớn hơn, có nghĩa là khả năng bảo trì là chìa khóa, thì có thể tạo bảng mỗi lần là lựa chọn tốt hơn Vì bạn đã xem xét hai giải pháp, nên dành một chút thời gian để thảo luận về những điểm giống và khác nhau của chúng So sánh giải phápBạn đã thấy hai giải pháp trong phần này của mật mã Caesar và chúng khá giống nhau về nhiều mặt. We are same lines. Hai quy hoạch chính của tòa nhà giống nhau ngoại trừ giới hạn 04và tạo 100. Chỉ khi bạn nhìn vào hai phiên bản của hàm trợ giúp, 30thì sự khác biệt mới xuất hiệnFirst 30là bản dịch gần như theo nghĩa đen về những vấn đề đang được yêu cầu. “Chuyển chữ cái xuống bảng chữ cái và bắt nó xung quanh 76. ” Điều kiện này rõ ràng ánh xạ trở lại tuyên bố vấn đề, nhưng nó có một vài nhược điểmMặc dù có cùng độ dài với phiên bản thứ hai nhưng phiên bản đầu tiên 30phức tạp hơn. Sự phức tạp này dẫn đến việc chuyển đổi chữ cái và toán học cần thiết để thực hiện bản dịch. Các chi tiết liên quan — chuyển đổi thành số, ngoại lệ và gói — che dấu thao tác bạn đang thực hiện. Thứ hai 30là ít tham gia vào các chi tiết của nóPhiên bản đầu tiên của chức năng cũng có thể giải quyết vấn đề cụ thể này. Phiên bản thứ hai 30, giống như thư viện tiêu chuẩn 24mà nó được mô hình hóa, có mục đích chung hơn và có thể được sử dụng để giải quyết một vấn đề lớn hơn. Lưu ý rằng đây không phải là mục tiêu thiết kế tốt nhấtMột trong những câu thần chú được phát hành từ phong trào Lập trình cực mê là “Bạn sẽ không cần nó” (YAGNI). Thông thường, các nhà phát triển phần mềm sẽ xem xét một chức năng như thế nào 30và quyết định rằng nó sẽ tốt hơn và có mục đích tổng thể hơn nếu họ làm cho nó linh hoạt hơn , có thể bằng cách chuyển sang một tham số Trong khi điều đó thực sự sẽ làm cho chức năng có mục đích chung hơn, nó cũng sẽ làm cho nó phức tạp hơn. Câu thần chú YAGNI ở đó để nhắc nhở bạn đừng thêm phức tạp trước khi bạn có một trường hợp sử dụng cụ thể cho nó Để kết thúc phần mật mã Caesar của bạn, có sự cân bằng rõ ràng giữa hai giải pháp, nhưng giải pháp thứ hai _______530có vẻ giống như một hàm Pythonic tốt hơn và nhiều hơn một chút Bây giờ bạn đã viết mật mã Caesar theo ba cách nhau, hãy chuyển sang một vấn đề mới Bài tập thực thi Python 4. Nhật ký phân tích cú phápVấn đề phân tích cú pháp nhật ký là một vấn đề thường xảy ra trong quá trình phát triển phần mềm. Nhiều hệ thống tạo ra các tệp nhật ký trong quá trình hoạt động bình thường và đôi khi bạn cần phân tích cú pháp các tệp này để tìm các điểm bất thường hoặc thông tin chung về hệ thống đang chạy Mô tả vấn đềĐối với vấn đề này, bạn cần phải phân tích cú pháp tệp nhật ký có định dạng được chỉ định và tạo báo cáo
Lưu ý rằng mã khung được cung cấp không bao gồm các bài kiểm tra đơn vị. Điều này đã bị loại bỏ vì định dạng chính xác của báo cáo là tùy thuộc vào bạn. Suy nghĩ và bài viết của riêng bạn trong suốt quá trình Một 130tep được bao gồm, cung cấp cho bạn một ví dụ. Giải pháp bạn sẽ kiểm tra việc tạo ra kết quả sau 12Mặc dù định dạng đó được tạo bởi giải pháp Python thực, nhưng bạn có thể tự thiết kế định dạng của riêng mình cho đầu ra. Tệp đầu vào mẫu phải tạo thông tin tương thích Giải pháp vấn đềTrong phần thu gọn bên dưới, bạn sẽ tìm thấy giải pháp khả thi cho vấn đề phân tích cú pháp nhật ký. Khi bạn đã có sẵn, hãy mở rộng hộp và so sánh nó với những gì bạn đã nghĩ ra Lưu ý. Hãy nhớ rằng, đừng mở phần thu gọn bên dưới cho đến khi bạn sẵn sàng xem câu trả lời cho vấn đề thực thi Python này Giải pháp cho vấn đề phân tích cú pháp nhật ký Hiển thị Full solutionVì giải pháp này dài hơn những gì bạn đã thấy về tổng số nguyên hoặc các vấn đề về mật mã Caesar, hãy bắt đầu với chương trình đầy đủ 13That is your full solution. Bạn có thể thấy rằng chương trình bao gồm ba chức năng và phần chính. You will doing work through them from the start Trợ giúp chức năng. # integersums.py
def add_it_up(n):
try:
result = sum(range(n + 1))
except TypeError:
result = 0
return result
|