Cách tốt nhất để học Python là rèn sự quen thuộc thông qua lặp lại, thử nghiệm và giải quyết vấn đề. Đó là lý do triết lý “học bằng thực hành” nằm ở cốt lõi cách những lập trình viên hiệu quả được đào tạo.
Viết mã, mắc lỗi và sửa lỗi chính là cách bạn xây dựng kỹ năng thực sự cho bản thân.
Trong bài viết này, chúng ta sẽ cùng làm một bộ bài tập Python có cấu trúc, được thiết kế riêng cho người mới bắt đầu. Các bài tập khởi động với biến đơn giản và dần chuyển sang hàm, cấu trúc dữ liệu, và các dự án dữ liệu nhỏ.
Trước khi đọc tiếp, đây là một thử thách cho bạn: hãy thử giải ba bài đầu tiên trong bài viết này ngay lập tức, không xem trước phần giải thích. Dù bạn có bị kẹt, thì chính hành động thử sức là nơi phần lớn việc học diễn ra.
Nếu bạn thích trải nghiệm được hướng dẫn nhiều hơn, các khóa học DataCamp sẽ tự động kiểm tra cú pháp và logic của bạn theo từng bước. Điều này ngăn lỗi nhỏ cản trở tiến độ và đặc biệt hữu ích cho người mới. Điểm khởi đầu tốt là khóa Introduction to Python.
Bắt đầu với các bài tập Python
Trước khi lao vào bài tập, bạn cần một môi trường cơ bản để viết và chạy mã Python. May mắn thay, bắt đầu bây giờ dễ hơn bao giờ hết.
Chuẩn bị
Để chạy Python trên máy, hãy cài một trình soạn thảo mã thân thiện với người mới như Visual Studio Code.
VS Code là nơi tốt để bắt đầu viết mã vì nó mã nguồn mở và miễn phí. Bạn có thể truy cập trang tải xuống của họ để tải phần mềm. Hãy tiến hành cài đặt sau khi tải xong.
Nếu bạn không muốn cài đặt gì, bạn có thể dùng DataLab, môi trường dựa trên trình duyệt cho phép bạn chạy mã Python (và SQL) ngay tức thì. Đây là lựa chọn lý tưởng để theo dõi hướng dẫn, kiểm thử đoạn mã, và thử nghiệm mà không lo vấn đề thiết lập.
Cách sử dụng các bài tập này
Để tối đa hóa việc học, mỗi bài tập trong bài viết này được thiết kế để bạn thử làm trước khi đọc lời giải hoặc giải thích.
Cách tốt nhất để tận dụng trọn vẹn các bài tập:
Dành ít nhất 15 phút tự tìm lời giải
Viết toàn bộ chương trình, dù cảm thấy lặp lại
Chỉ kiểm tra đáp án sau khi bạn đã thử
Toàn bộ đáp án cho tất cả bài tập có trong sổ tay DataLab được liên kết tại đây. Điều này cho phép bạn so sánh cách tiếp cận của mình với một lời giải hoạt động và hiểu những cách khác để giải cùng một vấn đề.
Bài tập Python về biến, nhập và xuất
Hãy bắt đầu với một số bài tập cơ bản tập trung vào những khối xây dựng nền tảng: lưu trữ giá trị, đọc dữ liệu người dùng và in kết quả ra màn hình.
Lời chào cá nhân hóa
Mở đầu, hãy xem một bài tập Python đơn giản để in thông điệp cá nhân hóa.
Bài tập
Viết chương trình:
Hỏi tên người dùng bằng input()
Hỏi tuổi người dùng bằng input()
In lời chào sử dụng chuỗi định dạng
Tính năm người dùng tròn 100 tuổi
Trước khi viết mã, hãy nghĩ về cách thông tin “chảy” qua một chương trình đơn giản như thế này. Người dùng cung cấp đầu vào thô dạng văn bản, Python lưu đầu vào đó trong biến, và bạn chuyển đổi các giá trị đó thành điều gì đó có ý nghĩa.
Bài tập này phản chiếu nhiều chương trình thực tế, nơi dữ liệu nhập của người dùng hiếm khi dùng được ngay ở dạng gốc và phải được kiểm tra hoặc chuyển đổi trước.
Mã khởi động
Dưới đây là một ít mã gợi ý để dẫn dắt bạn:
# Task: Ask for the user's name
name =input("Enter your name: ")# Task: Ask for the user's age (note: input() returns a string)
age_str =input("Enter your age: ")# Task: Convert age_str to an int# age = ...# Task: Calculate the year the user turns 100# Tip: you'll need the current year# current_year = ...# year_turn_100 = ...# Task: Print a personalized message using an f-string# print(...)Được hỗ trợ bởi
Khái niệm chính được luyện tập
input() luôn trả về chuỗi
Chuyển chuỗi sang số nguyên bằng int()
Số học cơ bản với số
Định dạng chuỗi bằng f-string
Bài tập này dạy bạn rằng dữ liệu nhập của người dùng thường cần được chuyển đổi trước khi dùng trong phép tính.
Bộ chuyển đổi nhiệt độ
Hãy áp dụng kỹ năng Python của bạn vào một vài chuyển đổi đơn vị cơ bản.
Bài tập
Viết chương trình:
Hỏi người dùng nhiệt độ theo độ C
Chuyển sang độ F theo công thức: F = (C × 9/5) + 32
In nhiệt độ sau khi chuyển đổi
Mã khởi động
Dưới đây là một ít mã gợi ý để dẫn dắt bạn:
# Task: Ask the user for a Celsius temperature
celsius_str =input("Temperature in Celsius: ")# Task: Convert the input to a float# celsius = ...# Task: Apply the conversion formula# fahrenheit = ...# Task: Print the result (consider formatting to 1–2 decimal places)# print(...)Được hỗ trợ bởi
Khái niệm chính được luyện tập
Số thực dấu chấm động
Biểu thức số học
Ép kiểu với float()
Bài tập này củng cố rằng không phải mọi đầu vào số đều là số nguyên và Python xử lý số thập phân một cách tự nhiên.
Câu đố đổi chỗ
Bài này trông đơn giản, nhưng người mới thường hay nghĩ biến là những “hộp” phải đổ ra rồi nạp lại từng bước. Hãy xem cách đổi chỗ giá trị trong Python.
Bài tập
Bạn có hai biến: a = 5 và b = 10. Hãy hoán đổi giá trị của chúng mà không gán lại thủ công từng giá trị.
Python cho phép một cách biểu đạt linh hoạt hơn về phép gán, nơi các giá trị có thể được “tháo gỡ” và gán lại trong một thao tác.
Mã khởi động
Dưới đây là một ít mã gợi ý để dẫn dắt bạn:
a =5
b =10# Task: Swap a and b# Hint: Try a temporary variable first.# Then try the Pythonic approach (tuple unpacking).# Task: Print the swapped values to verify# print("a:", a)# print("b:", b)Được hỗ trợ bởi
Khái niệm chính được luyện tập
Gán biến
Biến tạm so với “tháo gỡ” bộ giá trị (tuple unpacking)
Điều này giới thiệu tuple unpacking, một tính năng khiến Python vừa súc tích vừa biểu đạt.
Điều khiển luồng cho phép chương trình ra quyết định và lặp lại hành động dựa trên điều kiện.
Bộ kiểm tra chẵn lẻ
Một cách dùng phổ biến của toán tử chia lấy dư là kiểm tra chẵn/lẻ. Hãy thử dưới đây.
Bài tập
Viết chương trình:
Hỏi người dùng một số
Dùng toán tử modulo %
In ra số đó là chẵn hay lẻ
Mã khởi động
Dưới đây là một ít mã gợi ý để dẫn dắt bạn:
# Task: Ask the user for a number
num_str =input("Enter a whole number: ")# Task: Convert to int# num = ...# Task: Use modulo (%) to decide even vs odd# if ...:# print("Even")# else:# print("Odd")Được hỗ trợ bởi
Đây thường là ví dụ đầu tiên nơi người mới thấy điều kiện điều khiển hành vi chương trình như thế nào.
Thử thách FizzBuzz kinh điển
Một thử thách lập trình phổ biến mà nhiều người thực hiện là FizzBuzz. Hãy xem bài tập này yêu cầu gì.
Bài tập
In các số từ 1 đến 100 với các quy tắc sau:
Bội số của 3 in Fizz
Bội số của 5 in Buzz
Bội số của cả hai in FizzBuzz
Bài tập này rèn luyện bạn suy nghĩ cẩn thận về cây quyết định và trường hợp biên, một kỹ năng then chốt khi viết chương trình thực.
Mã khởi động
Dưới đây là một ít mã gợi ý để dẫn dắt bạn:
# Task: Loop from 1 to 100for n inrange(1,101):# Task: Check multiples of 3 AND 5 first# if ...:# print("FizzBuzz")# Task: Then multiples of 3# elif ...:# print("Fizz")# Task: Then multiples of 5# elif ...:# print("Buzz")# Task: Otherwise, print the number# else:# print(n)passĐược hỗ trợ bởi
Khái niệm chính được luyện tập
Vòng lặp for
Thứ tự điều kiện
Toán tử logic
Bài tập này là “lễ nhập môn” cho lập trình viên và thường được dùng để dạy tư duy có cấu trúc trong điều khiển luồng. Đọc thêm về vòng lặp trong hướng dẫn Vòng lặp Python của chúng tôi.
Trò chơi đoán số
Bài tập này giới thiệu chương trình tương tác phản hồi động theo đầu vào người dùng.
Bài tập
Viết chương trình:
Tạo số ngẫu nhiên (nhập random)
Dùng vòng lặp while để hỏi đoán
In phản hồi "Too high" hoặc "Too low" sau mỗi lần đoán
Dừng khi đoán đúng số
Đây thường là bài tập đầu tiên nơi người mới trải nghiệm một chương trình có cảm giác tương tác thay vì tuyến tính. Khác với các script trước chạy từ trên xuống dưới rồi thoát, chương trình này chạy cho đến khi điều kiện thỏa.
Bước nhảy khái niệm quan trọng ở đây là hiểu điều kiện kết thúc vòng lặp.
Mã khởi động
Dưới đây là một ít mã gợi ý để dẫn dắt bạn:
import random
# Task: Pick a random number in a reasonable range# target = random.randint(1, 100)# Task: Use a while loop to keep asking until correct# while ...:# guess_str = input("Your guess (1–100): ")# # guess = ...# # if guess > target:# # print("Too high")# # elif guess < target:# # print("Too low")# # else:# # print("Correct!")# # breakĐược hỗ trợ bởi
Khái niệm chính được luyện tập
Nhập mô-đun (random)
Vòng lặp while
Điều kiện kết thúc vòng lặp
Bài tập Python về danh sách, vòng lặp và lặp
Danh sách cho phép bạn làm việc với tập hợp giá trị, còn vòng lặp giúp xử lý chúng hiệu quả.
Tổng các phần tử trong danh sách
Mẫu này xuất hiện thường xuyên trong quy trình xử lý và phân tích dữ liệu.
Bài tập
Viết chương trình cộng tất cả số trong một danh sách mà không dùng hàm dựng sẵn sum(). Bản thân chương trình nên thực hiện logic cộng dồn một cách tường minh trong vòng lặp thay vì dựa vào công cụ gom nhóm khác.
Mã khởi động
Dưới đây là một ít mã gợi ý để dẫn dắt bạn:
numbers =[3,7,2,9,4]# Task: Create an accumulator variable# total = ...# Task: Loop through numbers and add each value to total# for ...:# ...# Task: Print the final total# print(total)Được hỗ trợ bởi
Bài tiếp theo hơi giống bài trước, nhưng hoạt động khác trong vòng lặp. Nó củng cố tư duy thuật toán và phản ánh cách các hàm dựng sẵn hoạt động bên trong.
Bài tập
Thử thách người dùng tìm số lớn nhất trong danh sách mà không dùng max().
Mã khởi động
Dưới đây là một ít mã gợi ý để dẫn dắt bạn:
numbers =[12,5,27,3,19]# Task: Initialize current_max using the first element# current_max = numbers[0]# Task: Loop through the remaining elements and update current_max# for ...:# if ...:# current_max = ...# Task: Print the largest number# print(current_max)Được hỗ trợ bởi
Khái niệm chính được luyện tập
Logic so sánh
Theo dõi trạng thái trong quá trình lặp
Loại bỏ phần tử trùng lặp
Dữ liệu thực tế thường lộn xộn, và dữ liệu lộn xộn hay có điểm dữ liệu trùng lặp. Bài sau chuẩn bị cho bạn các tác vụ làm sạch dữ liệu.
Bài tập
Biến một danh sách chứa phần tử trùng lặp thành một danh sách mới chỉ có mục duy nhất.
Thoạt nhìn, bài này có vẻ đơn giản, nhưng nó giới thiệu ý tưởng theo dõi những gì bạn đã thấy. Đây là khái niệm nền tảng trong xử lý dữ liệu, nơi việc nhận diện và loại bỏ bản ghi trùng lặp là tác vụ thường xuyên.
Mã khởi động
Dưới đây là một ít mã gợi ý để dẫn dắt bạn:
data =["apple","banana","apple","orange","banana","kiwi"]# Task: Create a new list for unique items# unique = []# Task: Loop through data and append items you haven't seen yet# for item in data:# if ...:# ...# Task: Print or return the unique list# print(unique)Được hỗ trợ bởi
Khái niệm chính được luyện tập
Kiểm tra thành viên bằng in
Xây dựng danh sách mới
Hiểu về tính duy nhất của dữ liệu
Bài tập Python về từ điển và xử lý chuỗi
Từ điển và chuỗi rất quan trọng để tổ chức và biến đổi dữ liệu văn bản. Hãy xem cách xử lý chúng.
Bộ đếm tần suất ký tự
Bài này dạy bạn cách xây dựng bảng tần suất, một tác vụ phân tích dữ liệu phổ biến.
Bài tập
Nhận chuỗi đầu vào và trả về một từ điển đếm số lần mỗi ký tự xuất hiện.
Bài tập này là một bước tiến lớn về khái niệm: xây dựng cấu trúc dữ liệu một cách động khi chương trình chạy. Thay vì làm việc với danh sách hoặc từ điển được xác định sẵn, bạn tạo và cập nhật mục dựa trên dữ liệu bắt gặp.
Mã khởi động
Dưới đây là một ít mã gợi ý để dẫn dắt bạn:
text =input("Enter some text: ")# Task: Create an empty dictionary# counts = {}# Task: Loop over each character and update counts# for ch in text:# # Option A: counts[ch] = counts.get(ch, 0) + 1# # Option B: if ch in counts: ... else: ...# pass# Task: Print the frequency table# print(counts)Được hỗ trợ bởi
Khái niệm chính được luyện tập
Từ điển
Phương thức .get()
Khởi tạo có điều kiện
Danh bạ đơn giản
Bài này chạm tới logic từ điển, nền tảng để hiểu các cấu trúc dữ liệu dạng bảng về sau.
Bài tập
Tạo chương trình lưu tên và số trong một từ điển và cho phép người dùng tìm kiếm theo tên.
Bài này giới thiệu ý tưởng dùng chương trình như một công cụ tra cứu bền bỉ thay vì một phép tính nhất thời. Bạn đang mô hình hóa phiên bản đơn giản cách nhiều ứng dụng lưu trữ và truy xuất thông tin.
Mã khởi động
Dưới đây là một ít mã gợi ý để dẫn dắt bạn:
phonebook ={# "Alice": "9123 4567",# "Ben": "9876 5432",}# Task: (Optional) add entries via input()# name = input("Name to add: ")# number = input("Number to add: ")# phonebook[name] = number# Task: Search loop (one lookup is fine for a start)
query =input("Search name: ")# Task: Print the number if found, otherwise print a friendly message# if ...:# print(...)# else:# print("Not found")Được hỗ trợ bởi
Bài này kết hợp xử lý văn bản với so sánh logic qua việc xem xét palindrome.
Bài tập
Palindrome là bất kỳ từ, cụm, số, hoặc chuỗi ký tự nào đọc xuôi hay ngược đều giống nhau. Tạo script kiểm tra xem một chuỗi có đọc giống nhau khi đảo ngược không (không phân biệt hoa thường và khoảng trắng).
Mã khởi động
Dưới đây là một ít mã gợi ý để dẫn dắt bạn:
text =input("Enter a word or phrase: ")# Task: Normalize (lowercase + remove spaces)# normalized = ...# Task: Reverse using slicing# reversed_text = ...# Task: Compare and print a result message# if ...:# print("Palindrome")# else:# print("Not a palindrome")Được hỗ trợ bởi
Khái niệm chính được luyện tập
Các phương thức chuỗi (lower(), replace())
Cắt chuỗi ([::-1])
Bài tập Python về hàm và tính mô-đun
Hàm cho phép bạn viết mã tái sử dụng, có tổ chức thay vì lặp lại logic.
Bộ tính giai thừa
Bộ tính giai thừa sẽ giúp bạn hiểu giá trị trả về, điều tối quan trọng để xây dựng chương trình lớn hơn.
Bài tập
Định nghĩa hàm nhận một số nguyên và trả về giai thừa của nó bằng vòng lặp.
Phân biệt giữa in ra một giá trị và trả về một giá trị là đặc biệt quan trọng. Trả về kết quả cho phép hàm của bạn kết hợp với mã khác, điều thiết yếu khi chương trình lớn hơn một tệp.
Mã khởi động
Dưới đây là một ít mã gợi ý để dẫn dắt bạn:
deffactorial(n:int)->int:"""Return n! (factorial of n) using a loop."""# Task: Decide how to handle n < 0# Task: Initialize result# result = ...# Task: Multiply result by each integer from 1 to n# for ...:# ...# Task: Return the computed factorial# return resultpass# Optional quick test# print(factorial(5)) # expected: 120Được hỗ trợ bởi
Tiếp theo, ta sẽ xem hàm kiểm tra số nguyên tố. Điều này giúp bạn học cách tạo hàm tái sử dụng.
Bài tập
Viết hàm trả về True nếu một số là nguyên tố và False nếu không.
Kiểm tra số nguyên tố cũng cho thấy cách hàm đóng gói logic gọn gàng. Khi đã viết, hàm có thể tái sử dụng ở bất kỳ đâu mà không cần hiểu chi tiết bên trong.
Mã khởi động
Dưới đây là một ít mã gợi ý để dẫn dắt bạn:
defis_prime(n:int)->bool:"""Return True if n is prime, otherwise False."""# Task: Handle small cases (n <= 1)# Task: Check divisibility from 2 up to an appropriate limit# for ...:# if ...:# return False# Task: If no divisors found, return True# return Truepass# Optional quick tests# print(is_prime(2)) # expected: True# print(is_prime(15)) # expected: FalseĐược hỗ trợ bởi
Khái niệm chính được luyện tập
Vòng lặp
Trả về sớm
Hiệu quả logic
Hàm in đối số linh hoạt
Điều này giới thiệu chữ ký hàm nâng cao được dùng trong nhiều thư viện Python.
Bài tập
Tạo hàm chấp nhận số lượng đối số bất kỳ bằng *args và in từng đối số một.
Bài này giúp bạn tiếp cận một trong những tính năng linh hoạt của Python: đối số độ dài biến đổi. Nó chuyển tư duy của bạn khỏi đầu vào cố định và hướng tới các hàm có thể thích ứng với nhiều cách dùng khác nhau.
Hiểu *args giúp việc đọc và dùng thư viện Python ngoài đời thực dễ hơn, nơi các hàm thường chấp nhận số lượng tham số linh hoạt để thuận tiện và mở rộng.
Mã khởi động
Dưới đây là một ít mã gợi ý để dẫn dắt bạn:
defprint_args(*args)->None:"""Print each positional argument on its own line."""# Task: Loop over args and print each one# for ...:# print(...)pass# Optional quick test# print_args("hello", 42, True)Được hỗ trợ bởi
Khái niệm chính được luyện tập
Đối số độ dài biến đổi
Tính linh hoạt của hàm
Vận dụng kỹ năng Python với các dự án có hướng dẫn
Bài tập xây kỹ năng, nhưng dự án biến kỹ năng đó thành sự tự tin.
Khám phá phim trên Netflix
Dự án có hướng dẫn Investigating Netflix Movies đặt ra một câu hỏi tưởng chừng đơn giản: Phim có đang ngắn lại theo thời gian không? Để trả lời, bạn sẽ làm việc với bộ dữ liệu thực về các tiêu đề trên Netflix và dần biến các hàng dữ liệu thô thành một insight trực quan, rõ ràng.
Điều khiến dự án này mạnh mẽ là nó bắc cầu giữa nền tảng Python cho người mới và phân tích dữ liệu ứng dụng. Bạn sẽ thấy logic đơn giản mở rộng như thế nào khi kết hợp đúng công cụ, mà không cần cài gì cục bộ.
Bác sĩ Semmelweis và phát hiện tầm quan trọng của rửa tay
Dự án Dr. Semmelweis and the Importance of Handwashing đặt bạn vào vai nhà phân tích dữ liệu điều tra một vấn đề lịch sử có thật. Giữa thế kỷ 19, bác sĩ Ignaz Semmelweis quan sát thấy tỷ lệ tử vong bất thường cao ở một khu bệnh so với khu khác, nhưng thiếu công cụ tính toán để chứng minh lý do.
Dựa trên hồ sơ lịch sử, bạn sẽ phân tích dữ liệu tử vong trước và sau khi áp dụng rửa tay. Dự án tập trung vào thao tác dữ liệu dạng bảng bằng pandas, tính tỷ lệ, và so sánh trung bình qua các giai đoạn thời gian.
Khám phá thị trường Airbnb tại NYC
Trong dự án Exploring Airbnb Market Trends, bạn bước vào bối cảnh phản chiếu sát sao công việc phân tích thực tế: dữ liệu lộn xộn, không nhất quán, cần làm sạch đáng kể trước khi có thể bắt đầu phân tích có ý nghĩa.
Bộ dữ liệu chứa các tin cho thuê với giá được lưu dạng chuỗi, điểm đánh giá bị thiếu, và định dạng không nhất quán.
Nhiệm vụ chính của bạn là làm sạch và chuẩn hóa dữ liệu. Dự án củng cố quan điểm rằng chuẩn bị dữ liệu không phải việc phụ mà là kỹ năng cốt lõi. Thường thì phần lớn thời gian của người làm dữ liệu là làm sạch dữ liệu, và dự án này là một mốc thực hành tuyệt vời cho năng lực đó.
Kết luận
Bạn đã bắt đầu với biến đơn giản và nhập liệu người dùng, rồi tiến qua điều khiển luồng, cấu trúc dữ liệu, hàm, và cuối cùng vận dụng tất cả trong các dự án có hướng dẫn. Những bài tập này hẳn đã cho bạn cái nhìn tốt về cách Python được dùng trong môi trường thực tế.
Bước tiếp theo tự nhiên của bạn là học tập có cấu trúc. Luyện tập đều đặn kết hợp hướng dẫn có hệ thống là con đường nhanh nhất để biến bài tập thành chuyên môn. Tôi khuyên bạn đăng ký lộ trình Python Programming hoặc Data Scientist để bắt đầu.
Câu hỏi thường gặp về Bài tập Python
Nền tảng nào tốt nhất để luyện các thử thách lập trình Python?⌄
Nền tảng mạnh nhất kết hợp mã hóa thực hành với phản hồi có cấu trúc. DataCamp rất phù hợp cho luyện tập có hướng dẫn vì cung cấp viết mã ngay trên trình duyệt (không cần thiết lập), phản hồi tức thời cho bài tập, các lộ trình kỹ năng và nghề nghiệp có cấu trúc, cùng dự án có hướng dẫn dùng dữ liệu thực.
Làm sao áp dụng hiệu quả lặp lại ngắt quãng để học Python?⌄
Lặp lại ngắt quãng hiệu quả nhất khi áp dụng cho khái niệm, không chỉ cú pháp. Thay vì đọc lại ghi chú lặp đi lặp lại, hãy quay lại cùng ý tưởng qua những bài tập ngày càng khó theo thời gian.
Một số dự án Python nâng cao cho người mới bắt đầu là gì?⌄
Ví dụ hay về dự án nâng cao gồm: xây dựng ứng dụng to-do dòng lệnh với lưu trữ vào tệp, phân tích bộ dữ liệu CSV bằng pandas và trực quan hóa cơ bản, hoặc tạo một client API nhỏ để truy xuất và xử lý dữ liệu từ endpoint công khai.
Tôi là Austin, một blogger và cây bút công nghệ với nhiều năm kinh nghiệm làm nhà khoa học dữ liệu và nhà phân tích dữ liệu trong lĩnh vực chăm sóc sức khỏe. Khởi đầu hành trình công nghệ với nền tảng sinh học, tôi hiện hỗ trợ những người khác thực hiện chuyển đổi tương tự thông qua blog công nghệ của mình. Niềm đam mê công nghệ đã đưa tôi đến với việc cộng tác viết cho hàng chục công ty SaaS, truyền cảm hứng cho người khác và chia sẻ trải nghiệm của bản thân.
Cách tốt nhất để học Python là rèn sự quen thuộc thông qua lặp lại, thử nghiệm và giải quyết vấn đề. Đó là lý do triết lý “học bằng thực hành” nằm ở cốt lõi cách những lập trình viên hiệu quả được đào tạo.
Viết mã, mắc lỗi và sửa lỗi chính là cách bạn xây dựng kỹ năng thực sự cho bản thân.
Trong bài viết này, chúng ta sẽ cùng làm một bộ bài tập Python có cấu trúc, được thiết kế riêng cho người mới bắt đầu. Các bài tập khởi động với biến đơn giản và dần chuyển sang hàm, cấu trúc dữ liệu, và các dự án dữ liệu nhỏ.
Trước khi đọc tiếp, đây là một thử thách cho bạn: hãy thử giải ba bài đầu tiên trong bài viết này ngay lập tức, không xem trước phần giải thích. Dù bạn có bị kẹt, thì chính hành động thử sức là nơi phần lớn việc học diễn ra.
Nếu bạn thích trải nghiệm được hướng dẫn nhiều hơn, các khóa học DataCamp sẽ tự động kiểm tra cú pháp và logic của bạn theo từng bước. Điều này ngăn lỗi nhỏ cản trở tiến độ và đặc biệt hữu ích cho người mới. Điểm khởi đầu tốt là khóa Introduction to Python.
Bắt đầu với các bài tập Python
Trước khi lao vào bài tập, bạn cần một môi trường cơ bản để viết và chạy mã Python. May mắn thay, bắt đầu bây giờ dễ hơn bao giờ hết.
Chuẩn bị
Để chạy Python trên máy, hãy cài một trình soạn thảo mã thân thiện với người mới như Visual Studio Code.
Một thiết lập điển hình như sau:
Cài đặt Python từ trang chính thức
Cài đặt Visual Studio Code
Thêm tiện ích mở rộng Python trong VS Code
Tạo tệp
.pymới và bắt đầu viết mãVS Code là nơi tốt để bắt đầu viết mã vì nó mã nguồn mở và miễn phí. Bạn có thể truy cập trang tải xuống của họ để tải phần mềm. Hãy tiến hành cài đặt sau khi tải xong.
Nếu bạn không muốn cài đặt gì, bạn có thể dùng DataLab, môi trường dựa trên trình duyệt cho phép bạn chạy mã Python (và SQL) ngay tức thì. Đây là lựa chọn lý tưởng để theo dõi hướng dẫn, kiểm thử đoạn mã, và thử nghiệm mà không lo vấn đề thiết lập.
Cách sử dụng các bài tập này
Để tối đa hóa việc học, mỗi bài tập trong bài viết này được thiết kế để bạn thử làm trước khi đọc lời giải hoặc giải thích.
Cách tốt nhất để tận dụng trọn vẹn các bài tập:
Toàn bộ đáp án cho tất cả bài tập có trong sổ tay DataLab được liên kết tại đây. Điều này cho phép bạn so sánh cách tiếp cận của mình với một lời giải hoạt động và hiểu những cách khác để giải cùng một vấn đề.
Bài tập Python về biến, nhập và xuất
Hãy bắt đầu với một số bài tập cơ bản tập trung vào những khối xây dựng nền tảng: lưu trữ giá trị, đọc dữ liệu người dùng và in kết quả ra màn hình.
Lời chào cá nhân hóa
Mở đầu, hãy xem một bài tập Python đơn giản để in thông điệp cá nhân hóa.
Bài tập
Viết chương trình:
Hỏi tên người dùng bằng
input()Hỏi tuổi người dùng bằng
input()In lời chào sử dụng chuỗi định dạng
Tính năm người dùng tròn 100 tuổi
Trước khi viết mã, hãy nghĩ về cách thông tin “chảy” qua một chương trình đơn giản như thế này. Người dùng cung cấp đầu vào thô dạng văn bản, Python lưu đầu vào đó trong biến, và bạn chuyển đổi các giá trị đó thành điều gì đó có ý nghĩa.
Bài tập này phản chiếu nhiều chương trình thực tế, nơi dữ liệu nhập của người dùng hiếm khi dùng được ngay ở dạng gốc và phải được kiểm tra hoặc chuyển đổi trước.
Mã khởi động
Dưới đây là một ít mã gợi ý để dẫn dắt bạn:
Khái niệm chính được luyện tập
input()luôn trả về chuỗiChuyển chuỗi sang số nguyên bằng
int()Số học cơ bản với số
Định dạng chuỗi bằng f-string
Bài tập này dạy bạn rằng dữ liệu nhập của người dùng thường cần được chuyển đổi trước khi dùng trong phép tính.
Bộ chuyển đổi nhiệt độ
Hãy áp dụng kỹ năng Python của bạn vào một vài chuyển đổi đơn vị cơ bản.
Bài tập
Viết chương trình:
Hỏi người dùng nhiệt độ theo độ C
Chuyển sang độ F theo công thức:
F = (C × 9/5) + 32In nhiệt độ sau khi chuyển đổi
Mã khởi động
Dưới đây là một ít mã gợi ý để dẫn dắt bạn:
Khái niệm chính được luyện tập
Số thực dấu chấm động
Biểu thức số học
Ép kiểu với
float()Bài tập này củng cố rằng không phải mọi đầu vào số đều là số nguyên và Python xử lý số thập phân một cách tự nhiên.
Câu đố đổi chỗ
Bài này trông đơn giản, nhưng người mới thường hay nghĩ biến là những “hộp” phải đổ ra rồi nạp lại từng bước. Hãy xem cách đổi chỗ giá trị trong Python.
Bài tập
Bạn có hai biến:
a = 5vàb = 10. Hãy hoán đổi giá trị của chúng mà không gán lại thủ công từng giá trị.Python cho phép một cách biểu đạt linh hoạt hơn về phép gán, nơi các giá trị có thể được “tháo gỡ” và gán lại trong một thao tác.
Mã khởi động
Dưới đây là một ít mã gợi ý để dẫn dắt bạn:
Khái niệm chính được luyện tập
Điều này giới thiệu tuple unpacking, một tính năng khiến Python vừa súc tích vừa biểu đạt.
Để biết thêm về cơ bản, hãy xem Python Cheat Sheet của chúng tôi.
Bài tập Python về điều khiển luồng và logic
Điều khiển luồng cho phép chương trình ra quyết định và lặp lại hành động dựa trên điều kiện.
Bộ kiểm tra chẵn lẻ
Một cách dùng phổ biến của toán tử chia lấy dư là kiểm tra chẵn/lẻ. Hãy thử dưới đây.
Bài tập
Viết chương trình:
Hỏi người dùng một số
Dùng toán tử modulo
%In ra số đó là chẵn hay lẻ
Mã khởi động
Dưới đây là một ít mã gợi ý để dẫn dắt bạn:
Khái niệm chính được luyện tập
Toán tử modulo
if/elseLogic Boolean
Đây thường là ví dụ đầu tiên nơi người mới thấy điều kiện điều khiển hành vi chương trình như thế nào.
Thử thách FizzBuzz kinh điển
Một thử thách lập trình phổ biến mà nhiều người thực hiện là FizzBuzz. Hãy xem bài tập này yêu cầu gì.
Bài tập
In các số từ 1 đến 100 với các quy tắc sau:
Bội số của 3 in
FizzBội số của 5 in
BuzzBội số của cả hai in
FizzBuzzBài tập này rèn luyện bạn suy nghĩ cẩn thận về cây quyết định và trường hợp biên, một kỹ năng then chốt khi viết chương trình thực.
Mã khởi động
Dưới đây là một ít mã gợi ý để dẫn dắt bạn:
Khái niệm chính được luyện tập
Vòng lặp
forThứ tự điều kiện
Toán tử logic
Bài tập này là “lễ nhập môn” cho lập trình viên và thường được dùng để dạy tư duy có cấu trúc trong điều khiển luồng. Đọc thêm về vòng lặp trong hướng dẫn Vòng lặp Python của chúng tôi.
Trò chơi đoán số
Bài tập này giới thiệu chương trình tương tác phản hồi động theo đầu vào người dùng.
Bài tập
Viết chương trình:
Tạo số ngẫu nhiên (nhập
random)Dùng vòng lặp
whileđể hỏi đoánIn phản hồi "Too high" hoặc "Too low" sau mỗi lần đoán
Dừng khi đoán đúng số
Đây thường là bài tập đầu tiên nơi người mới trải nghiệm một chương trình có cảm giác tương tác thay vì tuyến tính. Khác với các script trước chạy từ trên xuống dưới rồi thoát, chương trình này chạy cho đến khi điều kiện thỏa.
Bước nhảy khái niệm quan trọng ở đây là hiểu điều kiện kết thúc vòng lặp.
Mã khởi động
Dưới đây là một ít mã gợi ý để dẫn dắt bạn:
Khái niệm chính được luyện tập
Nhập mô-đun (
random)Vòng lặp
whileĐiều kiện kết thúc vòng lặp
Bài tập Python về danh sách, vòng lặp và lặp
Danh sách cho phép bạn làm việc với tập hợp giá trị, còn vòng lặp giúp xử lý chúng hiệu quả.
Tổng các phần tử trong danh sách
Mẫu này xuất hiện thường xuyên trong quy trình xử lý và phân tích dữ liệu.
Bài tập
Viết chương trình cộng tất cả số trong một danh sách mà không dùng hàm dựng sẵn
sum(). Bản thân chương trình nên thực hiện logic cộng dồn một cách tường minh trong vòng lặp thay vì dựa vào công cụ gom nhóm khác.Mã khởi động
Dưới đây là một ít mã gợi ý để dẫn dắt bạn:
Khái niệm chính được luyện tập
Khởi tạo biến tích lũy
Lặp với
forCập nhật giá trị từng bước
Để xem thêm ví dụ liên quan đến danh sách, hãy xem hướng dẫn về Những câu hỏi thường gặp nhất về danh sách trong Python.
Tìm số lớn nhất
Bài tiếp theo hơi giống bài trước, nhưng hoạt động khác trong vòng lặp. Nó củng cố tư duy thuật toán và phản ánh cách các hàm dựng sẵn hoạt động bên trong.
Bài tập
Thử thách người dùng tìm số lớn nhất trong danh sách mà không dùng
max().Mã khởi động
Dưới đây là một ít mã gợi ý để dẫn dắt bạn:
Khái niệm chính được luyện tập
Loại bỏ phần tử trùng lặp
Dữ liệu thực tế thường lộn xộn, và dữ liệu lộn xộn hay có điểm dữ liệu trùng lặp. Bài sau chuẩn bị cho bạn các tác vụ làm sạch dữ liệu.
Bài tập
Biến một danh sách chứa phần tử trùng lặp thành một danh sách mới chỉ có mục duy nhất.
Thoạt nhìn, bài này có vẻ đơn giản, nhưng nó giới thiệu ý tưởng theo dõi những gì bạn đã thấy. Đây là khái niệm nền tảng trong xử lý dữ liệu, nơi việc nhận diện và loại bỏ bản ghi trùng lặp là tác vụ thường xuyên.
Mã khởi động
Dưới đây là một ít mã gợi ý để dẫn dắt bạn:
Khái niệm chính được luyện tập
Kiểm tra thành viên bằng
inXây dựng danh sách mới
Hiểu về tính duy nhất của dữ liệu
Bài tập Python về từ điển và xử lý chuỗi
Từ điển và chuỗi rất quan trọng để tổ chức và biến đổi dữ liệu văn bản. Hãy xem cách xử lý chúng.
Bộ đếm tần suất ký tự
Bài này dạy bạn cách xây dựng bảng tần suất, một tác vụ phân tích dữ liệu phổ biến.
Bài tập
Nhận chuỗi đầu vào và trả về một từ điển đếm số lần mỗi ký tự xuất hiện.
Bài tập này là một bước tiến lớn về khái niệm: xây dựng cấu trúc dữ liệu một cách động khi chương trình chạy. Thay vì làm việc với danh sách hoặc từ điển được xác định sẵn, bạn tạo và cập nhật mục dựa trên dữ liệu bắt gặp.
Mã khởi động
Dưới đây là một ít mã gợi ý để dẫn dắt bạn:
Khái niệm chính được luyện tập
Từ điển
Phương thức
.get()Khởi tạo có điều kiện
Danh bạ đơn giản
Bài này chạm tới logic từ điển, nền tảng để hiểu các cấu trúc dữ liệu dạng bảng về sau.
Bài tập
Tạo chương trình lưu tên và số trong một từ điển và cho phép người dùng tìm kiếm theo tên.
Bài này giới thiệu ý tưởng dùng chương trình như một công cụ tra cứu bền bỉ thay vì một phép tính nhất thời. Bạn đang mô hình hóa phiên bản đơn giản cách nhiều ứng dụng lưu trữ và truy xuất thông tin.
Mã khởi động
Dưới đây là một ít mã gợi ý để dẫn dắt bạn:
Khái niệm chính được luyện tập
Nếu bạn muốn đào sâu về từ điển, tôi khuyên đọc hướng dẫn toàn diện về Các phương thức của Python Dictionary.
Trình kiểm tra palindrome
Bài này kết hợp xử lý văn bản với so sánh logic qua việc xem xét palindrome.
Bài tập
Palindrome là bất kỳ từ, cụm, số, hoặc chuỗi ký tự nào đọc xuôi hay ngược đều giống nhau. Tạo script kiểm tra xem một chuỗi có đọc giống nhau khi đảo ngược không (không phân biệt hoa thường và khoảng trắng).
Mã khởi động
Dưới đây là một ít mã gợi ý để dẫn dắt bạn:
Khái niệm chính được luyện tập
Các phương thức chuỗi (
lower(),replace())Cắt chuỗi (
[::-1])Bài tập Python về hàm và tính mô-đun
Hàm cho phép bạn viết mã tái sử dụng, có tổ chức thay vì lặp lại logic.
Bộ tính giai thừa
Bộ tính giai thừa sẽ giúp bạn hiểu giá trị trả về, điều tối quan trọng để xây dựng chương trình lớn hơn.
Bài tập
Định nghĩa hàm nhận một số nguyên và trả về giai thừa của nó bằng vòng lặp.
Phân biệt giữa in ra một giá trị và trả về một giá trị là đặc biệt quan trọng. Trả về kết quả cho phép hàm của bạn kết hợp với mã khác, điều thiết yếu khi chương trình lớn hơn một tệp.
Mã khởi động
Dưới đây là một ít mã gợi ý để dẫn dắt bạn:
Khái niệm chính được luyện tập
Đọc thêm về hàm trong hướng dẫn hàm Python của chúng tôi.
Bộ kiểm tra số nguyên tố
Tiếp theo, ta sẽ xem hàm kiểm tra số nguyên tố. Điều này giúp bạn học cách tạo hàm tái sử dụng.
Bài tập
Viết hàm trả về
Truenếu một số là nguyên tố vàFalsenếu không.Kiểm tra số nguyên tố cũng cho thấy cách hàm đóng gói logic gọn gàng. Khi đã viết, hàm có thể tái sử dụng ở bất kỳ đâu mà không cần hiểu chi tiết bên trong.
Mã khởi động
Dưới đây là một ít mã gợi ý để dẫn dắt bạn:
Khái niệm chính được luyện tập
Hàm in đối số linh hoạt
Điều này giới thiệu chữ ký hàm nâng cao được dùng trong nhiều thư viện Python.
Bài tập
Tạo hàm chấp nhận số lượng đối số bất kỳ bằng
*argsvà in từng đối số một.Bài này giúp bạn tiếp cận một trong những tính năng linh hoạt của Python: đối số độ dài biến đổi. Nó chuyển tư duy của bạn khỏi đầu vào cố định và hướng tới các hàm có thể thích ứng với nhiều cách dùng khác nhau.
Hiểu
*argsgiúp việc đọc và dùng thư viện Python ngoài đời thực dễ hơn, nơi các hàm thường chấp nhận số lượng tham số linh hoạt để thuận tiện và mở rộng.Mã khởi động
Dưới đây là một ít mã gợi ý để dẫn dắt bạn:
Khái niệm chính được luyện tập
Vận dụng kỹ năng Python với các dự án có hướng dẫn
Bài tập xây kỹ năng, nhưng dự án biến kỹ năng đó thành sự tự tin.
Khám phá phim trên Netflix
Dự án có hướng dẫn Investigating Netflix Movies đặt ra một câu hỏi tưởng chừng đơn giản: Phim có đang ngắn lại theo thời gian không? Để trả lời, bạn sẽ làm việc với bộ dữ liệu thực về các tiêu đề trên Netflix và dần biến các hàng dữ liệu thô thành một insight trực quan, rõ ràng.
Điều khiến dự án này mạnh mẽ là nó bắc cầu giữa nền tảng Python cho người mới và phân tích dữ liệu ứng dụng. Bạn sẽ thấy logic đơn giản mở rộng như thế nào khi kết hợp đúng công cụ, mà không cần cài gì cục bộ.
Bác sĩ Semmelweis và phát hiện tầm quan trọng của rửa tay
Dự án Dr. Semmelweis and the Importance of Handwashing đặt bạn vào vai nhà phân tích dữ liệu điều tra một vấn đề lịch sử có thật. Giữa thế kỷ 19, bác sĩ Ignaz Semmelweis quan sát thấy tỷ lệ tử vong bất thường cao ở một khu bệnh so với khu khác, nhưng thiếu công cụ tính toán để chứng minh lý do.
Dựa trên hồ sơ lịch sử, bạn sẽ phân tích dữ liệu tử vong trước và sau khi áp dụng rửa tay. Dự án tập trung vào thao tác dữ liệu dạng bảng bằng
pandas, tính tỷ lệ, và so sánh trung bình qua các giai đoạn thời gian.Khám phá thị trường Airbnb tại NYC
Trong dự án Exploring Airbnb Market Trends, bạn bước vào bối cảnh phản chiếu sát sao công việc phân tích thực tế: dữ liệu lộn xộn, không nhất quán, cần làm sạch đáng kể trước khi có thể bắt đầu phân tích có ý nghĩa.
Bộ dữ liệu chứa các tin cho thuê với giá được lưu dạng chuỗi, điểm đánh giá bị thiếu, và định dạng không nhất quán.
Nhiệm vụ chính của bạn là làm sạch và chuẩn hóa dữ liệu. Dự án củng cố quan điểm rằng chuẩn bị dữ liệu không phải việc phụ mà là kỹ năng cốt lõi. Thường thì phần lớn thời gian của người làm dữ liệu là làm sạch dữ liệu, và dự án này là một mốc thực hành tuyệt vời cho năng lực đó.
Kết luận
Bạn đã bắt đầu với biến đơn giản và nhập liệu người dùng, rồi tiến qua điều khiển luồng, cấu trúc dữ liệu, hàm, và cuối cùng vận dụng tất cả trong các dự án có hướng dẫn. Những bài tập này hẳn đã cho bạn cái nhìn tốt về cách Python được dùng trong môi trường thực tế.
Bước tiếp theo tự nhiên của bạn là học tập có cấu trúc. Luyện tập đều đặn kết hợp hướng dẫn có hệ thống là con đường nhanh nhất để biến bài tập thành chuyên môn. Tôi khuyên bạn đăng ký lộ trình Python Programming hoặc Data Scientist để bắt đầu.