5 bài tập lập trình Python giúp bạn rèn luyện kỹ năng

Sau khi nhận được nhiều yêu cầu từ bạn đọc về chủ đề “bài tập lập trình Python”, Got It đã sưu tầm những bài tập Python thực sự giúp các bạn đang học ngôn ngữ này, hoặc những người đang làm việc liên quan đến nó, hiểu được cách mà Python hoạt động.

Bài viết sau sẽ đưa ra 5 câu hỏi để kiểm tra kiến ​​thức Python của bạn. Thay vì chỉ đưa ra những câu hỏi ghi nhớ, Got It muốn có thể giúp bạn củng cố kiến thức, hiểu biết về các khái niệm trong Python.

Làm bài tập lập trình Python sẽ giúp bạn kiểm tra kiến thức

Nào, hãy cũng xem các câu hỏi và đăng câu trả lời của bạn trong phần bình luận nhé.

Lưu ý trước khi làm 5 bài tập lập trình Python

  • Dưới mỗi bài tập sẽ là các chủ đề lớn mà câu hỏi đề cập đến. Từ đó, vào cuối bài tập, bạn sẽ cảm thấy đã hiểu được Python từ đầu đến cuối và sâu sắc hơn.
  • Hãy nhớ rằng có nhiều cách để bóc một quả cam, vì vậy hãy giải quyết các câu hỏi theo cách bạn hiểu chúng. Câu trả lời sẽ được đăng trong một blog sắp tới.

1. Logging sử dụng Decorator trong Python

1. Implement một calculator class với các hàm sau:

Sum(a,b), Multiply(a,b), Divide(a,b) và Subtract(a,b)

2. Import thư viện logging 

3. Decorate mỗi phương thức của calculator class với một phương thức tuỳ chỉnh ghi lại các giá trị của a và b. Implement cả phương thức tuỳ chỉnh của logger.

4. Thực thi calculator.Sum(a,b) và nó sẽ in ra các giá trị của a và b. Ví dụ:

Giá trị đầu vào của A và B là ‘123’ và ‘234’ # if a =123 and b=234

Bài tập này sẽ kiểm tra:

  • Liệu bạn có hiểu các lệnh Pip (bắt buộc khi import các thư viện) không
  • Cách tạo lớp và hàm với các đối số trong Python
  • Cách sử dụng decorators

2. Duyệt cây (Tree Traversal) bằng hàm đệ quy (Recursion)

Implement một class: Node (sẽ được dùng để đại diện cho một cây). Ví dụ:

class Node(object):
    def __init__(self, name):
        self.name= name
        self.children = []
 def add_child(self, obj):
        self.children.append(obj)

Mỗi node có một tên và các lớp con, ví dụ:

a = Node('A')
a_goal = Node('Goal')
a.add_child(a_goal)

2. In ra tất cả các đường dẫn của cây có thể dẫn bạn đến nút có tên “Goal”.

3. Cây có thể có N số cấp (1>N>100). Node Goal cũng có thể có các lớp con. 

Ví dụ trong cây dưới đây, code của bạn sẽ in ra các đường dẫn sau:

A->Goal
A->B->Goal
A->D->Goal
A->F->H->L->Goal

Tất cả các đường dẫn khác không dẫn bạn đến nút Goal. Hãy viết code của bạn sao cho có thể được unit test.

Bài tập này sẽ kiểm tra:

  • Hiểu biết của bạn về đệ quy
  • Cách bạn ngăn chặn việc đi vào vòng lặp vô hạn – nó sẽ kiểm tra các vòng lặp, biểu thức và logic điều kiện của bạn
  • Sự hiểu biết về cấu trúc dữ liệu và phạm vi biến của bạn

3. Làm phẳng một danh sách các từ điển lồng nhau thành một danh sách nhiều từ điển được làm phẳng

  1. Tạo một đối tượng chứa danh sách các từ điển.
  2. Mỗi mục trong danh sách là một từ điển chứa một số khóa.
  3. Mỗi khóa của từ điển sẽ chứa một giá trị. Giá trị có thể thuộc kiểu chuỗi hoặc một kiểu từ điển. Khi giá trị thuộc loại từ điển thì nó ngụ ý rằng nó là một từ điển lồng trong một từ điển.
  4. Mỗi từ điển có thể chứa một số lượng khóa khác nhau.
  5. Lặp lại các mục và tạo một từ điển duy nhất để lưu trữ các khóa ở cùng cấp độ. Ví dụ: nếu bạn lặp lại các mục và mỗi mục chứa một từ điển với hai khóa, ví dụ: “Tên” và “Họ” và cả hai khóa đều chứa các giá trị kiểu chuỗi thì chỉ cần trả về bộ sưu tập từ điển (vì nó đã phẳng).
  6. Tuy nhiên, nếu nó chứa các khóa “Tên”, “Họ” và “Địa điểm đã ghé thăm”, trong đó Địa điểm đã ghé thăm chính là danh sách các từ điển mà mỗi mục của từ điển đều chứa hai khóa “Tên địa điểm” và “Ngày ghé thăm”, thì kết quả sẽ là hai danh sách. Danh sách đầu tiên nên chứa một bộ sưu tập các từ điển với khóa “Tên” và “Họ”. Danh sách thứ hai phải chứa các khóa “Tên địa điểm”, “Ngày ghé thăm” và ParentId, trong đó ParentId sẽ chứa khóa “Tên” của từ điển đầu tiên.
  7. Lấy giá trị của ParentId làm giá trị của khóa đầu tiên của từ điển mẹ, ví dụ trong ví dụ trên, “Tên” được chọn làm ParentId.

Đối với mỗi từ điển lồng nhau, hãy tạo một từ điển mới.
Kết quả cuối cùng sẽ là một số từ điển phẳng đại diện cho một từ điển lồng nhau
Ví dụ: nếu đây là input của bạn:

sample_object = [
{'Name':'Farhad', 'Surname:'Malik', 'Blogs':{'BlogName:'Python1','Date1':'20180901'}},
{'Name':'Farhad2', 'Surname:'Malik2', 'Blogs':{'BlogName:'Python3','Date1':'20180101'}}
]

Thì kết quả nên là:

dictionary_1 = [
{'Name':'Farhad', 'Surname:'Malik'}, 
{'Name':'Farhad2', 'Surname:'Malik2'}
]

dictionary_2 = [
{'ParentId':'Farhad', 'BlogName:'Python1','Date1':'20180901'},
{'ParentId':'Farhad2','BlogName:'Python3','Date1':'20180101'}
]

Điều quan trọng là phải đảm bảo rằng các item ở cùng cấp độ thuộc cùng một từ điển.

Bài tập này sẽ kiểm tra:

  • Sự hiểu biết của bạn về từ điển, mảng và set.
  • Cách kiểm tra các khóa và giá trị.
  • Cách chuyển các tham số tùy chọn.
  • Cách làm phẳng một đối tượng JSON.

4. Code xử lý lỗi (Error Handling) và đa tiến trình (Multi-Process)

  • Thực hiện ba bài tập trên, làm cho code chạy trên nhiều tiến trình
  • Sử dụng try/catch và catch exceptions nếu thích hợp
  • Ghi chép hiệu suất của code
  • Viết các unit test cho mỗi bài tập với cả positive và negative test

Bài tập này sẽ kiểm tra:

  • Cách chạy code trên nhiều tiến trình hơn 
  • Cách bắt ngoại lệ và log code sao cho có ích

5. Package và Modules

  • Tạo các lớp và code mà bạn đã implement ở trên thành một package có nhiều modules
  • Hiểu cách đặt và import tệp
  • Tạo một main class để điều khiển mọi thứ
  • Viết ra một ứng dụng bảng điều khiển chạy các unit tests của bạn thông qua dòng lệnh (command line) và thông báo cho bạn các bài test đó đã pass hay fail.

Bài tập này sẽ kiểm tra:

  • Cách hiểu và xem cách các package và module hoạt động
  • Hiểu biết về ngôn ngữ lập trình Python

Kết 

Bài viết này đã đưa ra 5 bài tập lập trình Python mà Got It cho rằng rất phù hợp với những ai muốn kiểm tra kiến thức, kỹ năng lập trình Python của mình.

Hãy comment câu trả lời của bạn ở phần comment và làm thêm những bài tập Python có lời giải hoặc làm các dự án đã được Got It tuyển chọn nhé.

Happy coding!

Nếu bạn quan tâm, hãy xem các vị trí đang tuyển dụng của Got It tại: bit.ly/gotit-hanoi và đọc thêm về quy trình tuyển dụng tại đây.

https://vn.got-it.ai/blog/wp-content/uploads/2021/04/1_QAG9RXQyyMAY7i9OYo84FA.png
Got It Vietnam
March 22, 2021
Share this post to:
Tags:
0 Comments
Inline Feedbacks
View all comments
Các bài viết liên quan
Gợi ý tài liệu tự học các ngôn ngữ lập trình web phổ biến miễn phí

Gợi ý tài liệu tự học các ngôn ngữ lập trình web phổ biến miễn phí

Thay vì vội vàng đăng ký các chương trình học mất tiền, bạn hãy tham khảo ngay những tài liệu tự học các ngôn ngữ lập trình web phổ biến miễn phí được Got It gợi ý dưới đây. Các ngôn ngữ được nhắc đến trong bài bao gồm HTML, CSS và JavaScript – chìa […]
5 bài tập lập trình Python giúp bạn rèn luyện kỹ năng

5 bài tập lập trình Python giúp bạn rèn luyện kỹ năng

Sau khi nhận được nhiều yêu cầu từ bạn đọc về chủ đề “bài tập lập trình Python”, Got It đã sưu tầm những bài tập Python thực sự giúp các bạn đang học ngôn ngữ này, hoặc những người đang làm việc liên quan đến nó, hiểu được cách mà Python hoạt động. Bài […]
4 quyển sách Python tiếng Việt cho người mới bắt đầu

4 quyển sách Python tiếng Việt cho người mới bắt đầu

Bạn muốn tìm hiểu về Python nhưng tìm đâu cũng chỉ thấy sách tiếng Anh? Đừng lo, Got It sẽ dành tặng bạn 4 quyển sách Python tiếng Việt cực kỳ hữu ích ngay trong bài viết này! Cùng khám phá nhé! Mục lụcPython cơ bản… Rất là cơ bản – Võ Tuấn DuyTớ Học […]
“Mua sách lập trình ở đâu?” – Trả lời câu hỏi khó.

“Mua sách lập trình ở đâu?” – Trả lời câu hỏi khó.

“Mua sách lập trình ở đâu?” là câu hỏi mà nhiều bạn thắc mắc khi bắt đầu làm quen với lĩnh vực lập trình. Hôm nay hãy cùng Got It tìm kiếm câu trả lời cho câu hỏi hóc búa này nhé! Mục lục1. Địa điểm mua sách lập trình tại Việt Nama. Mua sách […]
4 khóa học lập trình hướng đối tượng miễn phí cho người mới

4 khóa học lập trình hướng đối tượng miễn phí cho người mới

Nếu bạn muốn theo nghề IT thì sớm muộn cũng phải học lập trình hướng đối tượng. Đây là một kiến thức cơ bản, bắt buộc phải biết. Bài viết sẽ chia sẻ với bạn 4 khóa học miễn phí, phù hợp với người mới bắt đầu. Mục lục1. Học lập trình hướng đối tượng […]
Tài liệu lập trình Python tiếng Việt tốt nhất hiện nay

Tài liệu lập trình Python tiếng Việt tốt nhất hiện nay

Nếu bạn đang tìm tài liệu lập trình Python tiếng Việt thì hãy tham khảo ngay ebook “Python cơ bản… Rất là cơ bản” của tác giả Võ Duy Tuấn. Đây là tài liệu cung cấp đầy đủ kiến thức Python cơ bản dành cho người Việt. Hãy cùng Got It khám phá tài liệu […]