Học bằng cách đọc theo thứ tự

Bài tập Tổng kết Python cơ bản — Đưa kiến thức đã học vào code

Ba bài tổng kết Python cơ bản. Định dạng "1995-08-21" bằng split và int(), phân tích tình trạng nộp bài bằng phép toán tập hợp, so sánh hành vi tham chiếu của gán và copy().

Bài 1: Phân tích chuỗi ngày tháng và định dạng lại

Lấy chuỗi sinh nhật birthday và biến nó thành định dạng dễ đọc hơn cho con người. Tách chuỗi bằng split, chuyển từng phần sang số nguyên với int(), rồi ghép kết quả lại bằng f-string.

Cách tách chuỗi và chuyển sang số
"1995-08-21"chuỗi gốc["1995", "08", "21"]kết quả split("-")1995 / 8 / 21chuyển bằng int()"Ngày 21 tháng 8 năm 1995"dựng bằng f-stringsplitintf-string
Tách thành list 3 phần tử, rồi int() để bỏ số 0 ở đầu. Cuối cùng dựng kết quả bằng f-string.

Lấy chuỗi birthday = "1995-08-21" và dựng một chuỗi ngày tháng dễ đọc theo định dạng Ngày 21 tháng 8 năm 1995.

Hãy đảm bảo ngày không giữ số 0 ở đầu (08 cần hiện thành 8).

Python Editor

Chạy code để xem đầu ra

Bài 2: So sánh danh sách nộp bài bằng phép toán tập hợp

Bạn muốn so sánh ai đã nộp bài tập A và ai đã nộp bài tập B. Với phép toán tập hợp, bạn có thể lấy ra những người đã nộp cả hainhững người chỉ nộp một trong hai chỉ trong một dòng cho mỗi trường hợp.

Cách & và ^ tạo ra kết quả khác nhau từ set_a và set_b
set_a{Alice, Bob, Carol, Dave}set_b{Bob, Carol, Eve}{Bob, Carol}{Alice, Dave, Eve}set_a & set_bset_a ^ set_b
Cả hai set cùng đưa vào một phép toán; nhãn mũi tên cho biết phép nào, đầu mũi tên cho thấy kết quả ra sao.

Người nộp bài A là submitted_a = ["Alice", "Bob", "Carol", "Dave"], người nộp bài B là submitted_b = ["Bob", "Carol", "Eve"].

Từ hai list này, hãy tìm những người đã nộp cả hainhững người chỉ nộp một trong hai, rồi in mỗi kết quả dưới dạng list được sắp xếp theo thứ tự bảng chữ cái.

Python Editor

Chạy code để xem đầu ra

Bài 3: Xem cách mutability thực sự hoạt động

Bạn nghĩ rằng đã copy một list sang biến mới, nhưng thực ra hai biến đang trỏ tới cùng một object — đó là cái bẫy kinh điển với giá trị mutable trong Python. Hãy thử thay đổi list gốc sau khi dùng copy() và sau khi gán thẳng, rồi xem điều gì xảy ra.

Phép gán chia sẻ tham chiếu; copy() tạo object mới
group_a = students(gán)group_b = students.copy()(copy)Cùng list, hai tênstudents → [A, B]group_a → [A, B]List riênggroup_b → [A, B]Sau append("Carol")students → [A, B, Carol]group_a → [A, B, Carol]Không bị append ảnh hưởnggroup_b vẫn [A, B]chia sẻđộc lập
Phép gán chỉ đặt thêm tên thứ hai cho cùng một list. Thay đổi list gốc sau đó thì bạn sẽ thấy sự thay đổi qua cả hai tên. copy() dựng một list riêng, nên nó không bị ảnh hưởng.

Bài này là về quan sát sự khác biệt giữa phép gán và copy(). Dựng list students với hai tên, sau đó tạo thêm hai biến — một được gán trực tiếp từ students (group_a) và một được tạo bằng copy() (group_b).

Sau đó, append một học sinh thứ ba vào students và in students, group_a, group_b lần lượt để xem học sinh mới có xuất hiện trong từng biến hay không.

Python Editor

Chạy code để xem đầu ra

Bạn đã hoàn thành tốt phần này

Đó là kết thúc của Python cơ bản. Bạn đã đi qua biến và kiểu dữ liệu, cách lựa chọn giữa chuỗi, list, dict và set, và phép gán vs. copy() với giá trị mutable — gần như mọi công cụ bạn cần để xử lý dữ liệu hằng ngày. Từ in giá trị đơn giản đến kết hợp các kiểu và biến đổi dữ liệu, giờ bạn có thể tự viết và chạy những chương trình đó.

Chương tiếp theo, Cú pháp Python, mang đến luồng điều khiển bạn dùng để thực sự điều khiển một chương trình: if, for, while, cùng định nghĩa hàm với def / lambda, list comprehension, decorator, generator, và xử lý ngoại lệ với try / except.