Some Python exercises and a translation of Vietnamese
Lúc bắt đầu tự học Python, theo thói quen khi học các ngôn ngữ lập trình là làm nhiều, thật nhiều. Lang thang trên mạng, "nhặt" được bí kíp "võ công" của mấy bạn Trung Quốc. Lúc mình nhặt được chỉ có tên bài tập, hiện tại đã thấy các bạn bên TQ đưa ra solution và lời giải cho từng bài. Mặc dù vây nhưng ==mình thích thì mình cứ làm thôi.==
Theo các bạn Trung Quốc thì bí cấp được chia làm 4 cấp độ theo từng dạng:
-
Level 1 Beginner: Dành cho những người mới học Python hoặc mới bắt đầu học một ngôn ngữ lập trình. Hầu hết cách giải quyết bài toán đều rất đơn giản. Có thể tìm thấy giải pháp để giải quyết trong python docs.
-
Level 2 Intermediate: Các bài toán dành cho người đã học xong Python cơ bản hoặc chuyển từ ngôn ngữ lập trình khác sang Python. Cách giải quyết các bài toán level 2 cần đầu tư một chút "trí tuệ". Các giải pháp không chỉ nằm trong python docs.
-
Level 3 Advanced: Sử dụng ngôn ngữ lập trình Python, một số thư viện, cấu trúc dữ liệu và giải thuật để giải quyết một số bài toán phức tạp.
Nhưng khi làm bài thì mình thấy các bài tập sắp xếp lộn xộn, bài level 1 cho vào level2,3 và ngược lại. Chắc kiểu "tung hỏa mù", luyện không cẩn thẩn lại thành "tẩu hỏa nhập ma".
Vì vậy mình chỉ đánh dấu 1_, 2_, 3_ cho các bài mà không chia thành các level nữa.
Mình đã code hầu hết các bài trong danh sách bài của các bạn TQ nhưng nó không đúng chuẩn của một Pythonista và lại còn code trên Python2 nên mình sẽ làm lại dần dần chuyển sang Python3 và theo đúng chuẩn PEP8 (https://www.python.org/dev/peps/pep-0008/).
Mọi thứ sẽ cố gắng clear bằng tiếng Việt, một số thứ không giải thích được bằng tiếng Việt sẽ dùng tiếng Anh.
Một bài toán sẽ được đưa ra như sau:
- Đầu bài
- Đầu bài
- Mô tả giải pháp
- Rút ra những gì sau bài tập
Để tôn trọng các tác giả TQ, mình giữ nguyên phần đầu bài bằng tiếng Anh, dịch tiếng Việt ở bên dưới.
- Code
Phần code mình sẽ làm để hết vào một function, cái nào ngắn quá thì dùng luôn trong hàm main Function này sẽ được gọi từ hàm main(). Giống như ví dụ dưới đây:
def squared(input_data):
'''Tính bình phương của số đầu vào'''
result = None
result = input_data ** 2
return result
def main():
print(squared(5))
if __name__ == "__main__":
main()
Bạn nào sử dụng những gì của mình thì nhớ đưa tên mình vào nhé :)
Name: Quang Vinh
Nickname: Tieubavuong
email: quangvinh19862003@gmail.com
Cảm ơn!
=========
At the time I started learning Python by myself, the habit of learning programming languages was to do a lot of things. By google, I "picked up" the secret "martial arts" of Chinese friends with subject only. Now, every exercises in "martial arts" were solved by Python2. But...I like to do it (like a bos) :))
Level Description
Level 1 Beginner means someone who has just gone through an introductory Python course. He can solve some problems with 1 or 2 Python classes or functions. Normally, the answers could directly be found in the textbooks.
Level 2 Intermediate means someone who has just learned Python, but already has a relatively strong programming background from before. He should be able to solve problems which may involve 3 or 3 Python classes or functions. The answers cannot be directly be found in the textbooks.
Level 3 Advanced. He should use Python to solve more complex problem using more rich libraries functions and data structures and algorithms. He is supposed to solve the problem using several Python standard packages and advanced techniques.