Quay lại Khóa học
AI001 Professional

Giới thiệu về Lập trình Python

Học Python, một ngôn ngữ lập trình phổ biến, bao gồm các khái niệm cốt lõi cho mọi thứ từ phát triển web và phần mềm đến khoa học dữ liệu và kiểm thử chất lượng. Kỹ năng bạn đạt được bao gồm viết chương trình Python 3 và đơn giản hóa mã nguồn.

4.9
30h
1254 học viên
0 lượt thích
Trí tuệ nhân tạo

Tổng quan khóa học

📚 Tổng quan khóa học

Học Python, một ngôn ngữ lập trình phổ biến, bao gồm các khái niệm cốt lõi cho mọi thứ từ phát triển web và phần mềm đến khoa học dữ liệu và kiểm thử chất lượng. Những kỹ năng bạn sẽ đạt được bao gồm viết chương trình Python 3 và đơn giản hóa mã nguồn.

Tóm tắt ngắn gọn về các mục tiêu chính: Thành thạo nền tảng Python, điều khiển luồng thực thi, cấu trúc dữ liệu (List, String, Dictionary), hàm, mô-đun và xử lý tập tin, kết thúc bằng phần giới thiệu về Lập trình hướng đối tượng.

🎯 Mục tiêu học tập

  1. Viết và thực thi các kịch bản Python 3 cơ bản, áp dụng cú pháp cơ bản và kiểu dữ liệu tích hợp (int, float, str).
  2. Triển khai logic chương trình phức tạp bằng các cấu trúc điều khiển luồng (if/else, vòng lặp for/while) để quản lý các đường đi thực thi.
  3. Thiết kế và sử dụng hàm và mô-đun để tổ chức chương trình nhằm cải thiện khả năng tái sử dụng và duy trì.
  4. Quản lý dữ liệu hiệu quả bằng các cấu trúc cốt lõi của Python, bao gồm List, String và Dictionary.
  5. Tương tác với các nguồn dữ liệu bên ngoài bằng cách thực hiện thao tác nhập/xuất tập tin (văn bản, CSV và JSON).

🔹 Bài học 1: Xin chào Thế giới và Cú pháp cơ bản

Tổng quan: Bài học nền tảng này giới thiệu những yếu tố cốt lõi của ngôn ngữ lập trình Python, bắt đầu với chương trình "Xin chào Thế giới" truyền thống sử dụng hàm print(). Chúng ta sẽ thiết lập các quy tắc cú pháp then chốt, bao gồm tầm quan trọng của thụt dòng, phân biệt chữ hoa/chữ thường và cách sử dụng chú thích hiệu quả để tài liệu hóa mã nguồn. Một trọng tâm lớn sẽ là các biến, bao gồm khai báo, gán giá trị và các kiểu dữ liệu cơ bản như số nguyên, số thực và chuỗi – những thứ cần thiết để lưu trữ giá tiền và tên sản phẩm. Cuối cùng, chúng ta sẽ ngay lập tức áp dụng những kiến thức này bằng cách xây dựng khung cho một hệ thống điểm bán hàng đơn giản dành riêng cho cửa hàng đồ nội thất. Ứng dụng này sẽ bao gồm việc xác định các biến cụ thể cho sản phẩm (ví dụ: 'sofa_price', 'quantity') và thực hiện các phép tính toán cơ bản để xác định tổng tiền mua hàng cuối cùng, củng cố hiểu biết về luồng hoạt động của Python. Kết quả học tập:

  • Thực thi chương trình "Xin chào Thế giới" chuẩn bằng hàm print() của Python.
  • Mô tả và áp dụng các quy tắc cú pháp cơ bản của Python, bao gồm thụt dòng đúng và sử dụng chú thích hiệu quả.
  • Khai báo, định nghĩa và gán giá trị cho biến bằng các kiểu dữ liệu cơ bản phù hợp (int, float, str).
  • Sử dụng các toán tử tính toán cơ bản để thực hiện các phép tính đơn giản trong chương trình.
  • Xây dựng cấu trúc ban đầu của hệ thống điểm bán hàng, định nghĩa giá sản phẩm và tính toán tổng giao dịch.

🔹 Bài học 2: Luồng điều khiển và Logic

Tổng quan: Bài học này giới thiệu khái niệm cốt lõi về Luồng điều khiển – thứ quyết định thứ tự thực thi mã lệnh trong một chương trình. Chúng ta sẽ bắt đầu bằng việc khám phá logic Boolean, hiểu về kiểu dữ liệu bool (True/False) và các toán tử quan hệ (ví dụ: ==, >, <) dùng để tạo ra các biểu thức điều kiện. Cấu trúc cốt lõi, câu lệnh if, sẽ được nghiên cứu kỹ lưỡng, minh họa cách thực thi các khối mã chỉ khi điều kiện được thỏa mãn. Sau đó, chúng ta sẽ mở rộng sang xử lý các nhánh loại trừ lẫn nhau bằng các câu lệnh elseelif, cho phép tạo cây quyết định phức tạp trong mã Python. Cuối cùng, sinh viên sẽ thành thạo các toán tử logic (and, or, not), giúp kết hợp nhiều kiểm tra điều kiện một cách hiệu quả. Các ví dụ thực tế sẽ tập trung vào việc kiểm tra ràng buộc đầu vào người dùng và điều hướng luồng thực thi dựa trên các tiêu chí cụ thể. Kết quả học tập:

  • Định nghĩa biến Boolean và sử dụng toán tử quan hệ (ví dụ: ==, >, <) để đánh giá các biểu thức điều kiện.
  • Xây dựng các cấu trúc logic điều kiện cơ bản bằng câu lệnh if.
  • Triển khai logic quyết định đa nhánh bằng các câu lệnh elseelif.
  • Giải thích vai trò then chốt của thụt dòng trong việc xác định các khối luồng điều khiển của Python.
  • Áp dụng các toán tử logic (and, or, not) để tạo các kiểm tra điều kiện ghép phức tạp.

🔹 Bài học 3: Làm việc với List

Tổng quan: Bài học này giới thiệu đối tượng List trong Python – loại dữ liệu dãy cơ bản dùng để lưu trữ các tập hợp có thứ tự, có thể thay đổi. Chúng ta sẽ bắt đầu bằng việc định nghĩa cách tạo list bằng dấu ngoặc vuông [] và minh họa khả năng chứa các kiểu dữ liệu khác nhau. Các cơ chế chính của list – truy cập theo chỉ số và cắt đoạn – sẽ được đề cập chi tiết, cho thấy cách truy xuất các phần tử hoặc đoạn con bằng cả chỉ số dương (bắt đầu từ 0) và âm. Một điểm lý thuyết quan trọng được trình bày là tính thay đổi (mutability), giải thích rằng list có thể được sửa đổi trực tiếp sau khi tạo. Các ví dụ thực tế sẽ tập trung vào các phương thức quản lý list cơ bản, bao gồm thêm phần tử (append(), insert()), xóa phần tử (remove(), pop(), từ khóa del), và xác định độ dài (len()). Sinh viên sẽ học cách lưu trữ và thao tác hiệu quả với các nhóm dữ liệu động – kỹ năng thiết yếu cho bất kỳ ứng dụng Python nào. Kết quả học tập:

  • Định nghĩa và khởi tạo một list trong Python bằng cú pháp phù hợp, hiểu rõ vai trò của nó như một dãy có thứ tự, có thể thay đổi.
  • Truy cập, thay đổi và trích xuất các phần tử hoặc đoạn con từ list bằng chỉ số dương, chỉ số âm và cắt đoạn (slicing).
  • Áp dụng các phương thức list cơ bản như append(), insert(), pop(), và remove() để quản lý nội dung list một cách động.
  • Giải thích khái niệm tính thay đổi và phân biệt cách quản lý nội dung list so với các kiểu dữ liệu không thể thay đổi.

🔹 Bài học 4: Lặp lại và Vòng lặp

Tổng quan: Bài học này giới thiệu khái niệm lặp lại – một công cụ lập trình cơ bản cho phép nhà phát triển thực thi các khối mã nhiều lần, dẫn đến chương trình đơn giản hóa và cực kỳ hiệu quả. Chúng ta sẽ phân tích hai cấu trúc vòng lặp chính trong Python: vòng lặp for, lý tưởng để lặp qua một dãy đã biết (như các phần tử trong list hoặc các số được tạo bởi hàm range()), và vòng lặp while, thực thi lặp lại miễn là một điều kiện Boolean nhất định vẫn đúng. Chúng ta sẽ minh họa cách xây dựng các vòng lặp mạnh mẽ, đảm bảo điều kiện kết thúc phù hợp cho vòng lặp while để tránh thực thi vô hạn. Ngoài ra, chúng ta sẽ tìm hiểu các cơ chế kiểm soát vòng lặp chuyên dụng, bao gồm câu lệnh break để thoát khỏi vòng lặp ngay lập tức, và câu lệnh continue để bỏ qua phần còn lại của lần lặp hiện tại và chuyển sang lần tiếp theo, cho phép kiểm soát luồng phức tạp cho các giải pháp lặp. Kết quả học tập:

  • Phân biệt vai trò cấu trúc của vòng lặp forwhile và chọn loại vòng lặp phù hợp cho một nhiệm vụ lập trình cụ thể.
  • Xây dựng và sử dụng vòng lặp for để lặp hiệu quả qua các dãy (như List) và sử dụng hàm range() cho lặp số học.
  • Triển khai các vòng lặp while an toàn và kiểm soát, đảm bảo điều kiện kết thúc rõ ràng để tránh thực thi vô hạn.
  • Áp dụng các câu lệnh breakcontinue để thay đổi luồng thực thi mặc định của vòng lặp theo yêu cầu điều kiện cụ thể.

🔹 Bài học 5: Tái sử dụng mã nguồn với Hàm

Tổng quan: Bài học này giới thiệu khái niệm thiết yếu về tái sử dụng mã nguồn thông qua hàm trong Python. Sinh viên sẽ học cú pháp cơ bản để định nghĩa một hàm bằng từ khóa def, hiểu rõ tầm quan trọng của thụt dòng đúng và các chuỗi mô tả tùy chọn (docstrings). Chúng ta sẽ tìm hiểu cách cấu trúc hàm để nhận đầu vào qua tham số (tham số) và cách trả về đầu ra bằng câu lệnh return. Lợi ích cốt lõi của hàm – làm đơn giản hóa mã nguồn, cải thiện tính dễ đọc và ngăn ngừa trùng lặp (nguyên tắc DRY) – sẽ được nhấn mạnh. Ứng dụng thực tế sẽ bao gồm giải quyết các bài toán toán học thực tế. Sinh viên sẽ định nghĩa và gọi các hàm để tính các công thức vật lý nổi tiếng, chẳng hạn như Năng lượng động hay lực hấp dẫn, minh chứng cách hàm bao gói logic cụ thể để sử dụng dễ dàng và lặp lại trong bất kỳ chương trình Python nào. Kết quả học tập:

  • Xác định mục đích của hàm trong lập trình Python và diễn giải lợi ích của việc tái sử dụng mã nguồn và tính modular.
  • Xây dựng và định nghĩa các hàm Python đơn giản bằng từ khóa def, bao gồm tham số phù hợp và quy ước đặt tên chuẩn.
  • Gọi thành công các hàm đã định nghĩa, truyền các tham số cần thiết để thực thi logic được đóng gói.
  • Sử dụng câu lệnh return để xuất kết quả từ hàm để gán hoặc tính toán tiếp theo.
  • Áp dụng các khái niệm lập trình hàm để triển khai và tính toán các công thức vật lý nổi tiếng, chẳng hạn như tính khoảng cách hoặc vận tốc.

🔹 Bài học 6: Xử lý Chuỗi

Tổng quan: Bài học này đi sâu vào đối tượng chuỗi (string) mạnh mẽ của Python – nền tảng thiết yếu để xử lý dữ liệu văn bản. Chúng ta sẽ bắt đầu bằng việc khám phá cách tạo chuỗi, bao gồm việc sử dụng dấu ngoặc đơn hay ngoặc kép, và thảo luận về đặc tính bất biến (immutable) của chuỗi. Trọng tâm chính sẽ là truy cập và sắp xếp lại văn bản bằng chỉ số và cắt đoạn, cho phép trích xuất các ký tự hoặc chuỗi con cụ thể một cách hiệu quả. Sau đó, chúng ta sẽ tìm hiểu các phương thức thiết yếu để thao tác văn bản, bao gồm làm sạch văn bản bằng .strip(), thay đổi chữ cái bằng .lower().upper(), và kiểm tra nội dung bằng các phương thức như .startswith(). Cuối cùng, sinh viên sẽ thành thạo quá trình tách rời các khối văn bản lớn thành danh sách các từ hoặc dòng bằng phương thức .split() mạnh mẽ, và sau đó nối lại hiệu quả bằng phương thức linh hoạt .join(), cho phép xây dựng các ứng dụng xử lý văn bản tự động. Kết quả học tập:

  • Định nghĩa đối tượng chuỗi Python và áp dụng chỉ số và cắt đoạn để truy cập các ký tự hoặc chuỗi con cụ thể.
  • Sử dụng các phương thức chuỗi phổ biến như .upper(), .lower(), và .strip() để làm sạch và định dạng dữ liệu văn bản.
  • Triển khai kỹ thuật chèn chuỗi (string interpolation) bằng f-string và phương thức .format() để tạo văn bản động.
  • Thể hiện cách dùng .split() để tách văn bản thành danh sách và phương thức .join() để nối lại các chuỗi thành văn bản.

🔹 Bài học 7: Mô-đun Python

Tổng quan: Bài học này giới thiệu khái niệm thiết yếu về mô-đun Python, cho phép tổ chức mã nguồn và mở rộng khả năng chức năng thông qua các tập tin có thể tái sử dụng. Chúng ta sẽ định nghĩa mô-đun là gì (một tập tin .py thông thường) và giải thích vì sao việc sử dụng mô-đun thúc đẩy tái sử dụng mã nguồn và tăng tính rõ ràng. Trọng tâm chính sẽ là thành thạo câu lệnh import, bao gồm cú pháp chuẩn (import module_name), gán tên thay thế (import module as alias), và nhập riêng lẻ (from module import item) để quản lý không gian tên chương trình một cách hiệu quả. Chúng ta sẽ khám phá các ví dụ thực tế sử dụng các mô-đun tích hợp sẵn phổ biến từ Thư viện Chuẩn Python, chẳng hạn như mô-đun math (cho các hàm như sqrt hoặc hằng số như pi) và mô-đun random. Cuối cùng, chúng ta sẽ minh họa cách tạo và triển khai một mô-đun tùy chỉnh đơn giản để tổ chức và tái sử dụng các hàm của riêng bạn qua nhiều tập tin Python khác nhau. Kết quả học tập:

  • Định nghĩa mô-đun Python là gì và giải thích vai trò của nó trong việc mở rộng chức năng và tổ chức các chương trình lớn.
  • Sử dụng đúng câu lệnh import chuẩn và các biến thể của nó (gán tên thay thế và nhập riêng lẻ).
  • Thể hiện khả năng gọi và sử dụng các hàm từ các mô-đun tích hợp phổ biến như mathrandom.
  • Giải thích cách các phương thức nhập khác nhau ảnh hưởng đến không gian tên hiện tại của chương trình.
  • Tạo một mô-đun Python tùy chỉnh đơn giản chứa các hàm có thể tái sử dụng.

🔹 Bài học 8: Sử dụng Từ điển

Tổng quan: Bài học này đi sâu vào từ điển (dictionary) của Python – một cấu trúc dữ liệu cơ bản, mạnh mẽ dùng để ánh xạ các khóa duy nhất tới các giá trị cụ thể. Chúng ta sẽ bắt đầu bằng việc định nghĩa cấu trúc từ điển bằng dấu ngoặc nhọn và cặp khóa-giá trị được phân cách bằng dấu phẩy, nhấn mạnh rằng từ điển là thay đổi được và tối ưu hóa cho các thao tác tra cứu nhanh dựa trên khóa. Bài học sẽ đề cập đến các thao tác thiết yếu, bao gồm cách truy cập giá trị một cách hiệu quả bằng ký hiệu ngoặc vuông, và cách thêm cặp mới hoặc sửa đổi giá trị hiện có một cách động. Chúng ta sẽ khám phá các ràng buộc khóa, lưu ý rằng khóa phải là kiểu dữ liệu không thể thay đổi (như chuỗi hoặc tuple). Cuối cùng, sinh viên sẽ học các phương thức quan trọng như ".keys()", ".values()" và ".items()" để xem nội dung từ điển, và cách lặp qua các phần tử này bằng vòng lặp, củng cố khả năng lưu trữ và truy xuất dữ liệu phức tạp, phi cấu trúc một cách hiệu quả. Kết quả học tập:

  • Định nghĩa cấu trúc từ điển Python và diễn giải chức năng chính của nó như một container ánh xạ khóa-giá trị.
  • Xây dựng và khởi tạo một từ điển bằng cú pháp trực tiếp và gán, truy xuất giá trị đúng dựa trên khóa tương ứng.
  • Thực hiện các thao tác CRUD (Tạo, Đọc, Cập nhật, Xóa) trên các phần tử từ điển bằng ký hiệu ngoặc vuông và từ khóa del.
  • Sử dụng các phương thức từ điển tích hợp, bao gồm .keys(), .values(), và .items(), để trích xuất nhanh chóng các góc nhìn khác nhau của dữ liệu đã lưu.
  • Áp dụng từ điển trong các ví dụ lập trình thực tế, chẳng hạn như mô hình hồ sơ người dùng hoặc quản lý cài đặt cấu hình.

🔹 Bài học 9: Nhập/Xuất Tập tin (I/O)

Tổng quan: Bài học này giới thiệu Nhập/Xuất Tập tin (I/O) trong Python, cho phép tự động hóa và lưu trữ dữ liệu lâu dài. Chúng ta bắt đầu bằng việc nắm vững các thao tác xử lý tập tin chính: mở tập tin bằng hàm tích hợp open(), xác định các chế độ truy cập khác nhau (đọc 'r', ghi 'w', thêm 'a'), và hiểu vai trò then chốt của bộ quản lý ngữ cảnh with open() as f: để đảm bảo tập tin được đóng tự động, ngăn chặn rò rỉ tài nguyên. Tiếp theo, chúng ta sẽ khám phá việc đọc và ghi dữ liệu không cấu trúc bằng các tập tin văn bản thông thường (.txt). Phần thứ hai tập trung vào dữ liệu có cấu trúc: sử dụng mô-đun csv chuyên dụng của Python để đọc và ghi dữ liệu phân cách dấu phẩy một cách hiệu quả, và triển khai mô-đun json (cụ thể là json.load()json.dump()) để xử lý các cấu trúc dữ liệu JSON phức tạp, lồng ghép – thứ rất quan trọng khi tương tác với API và các tệp cấu hình hiện đại. Việc thành thạo các khái niệm này là chìa khóa để xây dựng các ứng dụng Python thực tiễn tương tác với các nguồn dữ liệu bên ngoài. Kết quả học tập:

  • Giải thích quy trình cơ bản xử lý tập tin trong Python, bao gồm việc sử dụng hàm open() và xác định các chế độ đọc/viết/thêm.
  • Triển khai câu lệnh with (bộ quản lý ngữ cảnh) để quản lý tài nguyên tập tin một cách an toàn và đáng tin cậy, đảm bảo tập tin luôn được đóng.
  • Viết mã Python để đọc và ghi dữ liệu tuần tự vào các tập tin văn bản thông thường (.txt).
  • Áp dụng mô-đun csv tích hợp để đọc, phân tích và tạo dữ liệu theo định dạng CSV một cách tự động.
  • Sử dụng mô-đun json để chuyển đổi các đối tượng Python thành định dạng JSON và phục hồi dữ liệu JSON thành các cấu trúc Python hữu dụng.

🔹 Bài học 10: Giới thiệu Lớp và Lập trình Hướng Đối tượng (OOP)

Tổng quan: Bài học này cung cấp nền tảng giới thiệu về Lập trình Hướng Đối tượng (OOP) trong Python. Chúng ta sẽ bắt đầu bằng việc làm rõ sự khác biệt giữa các kiểu dữ liệu chuẩn, tích hợp sẵn của Python (như int, str, list) và các cấu trúc mạnh mẽ do người dùng định nghĩa gọi là lớp (class). Người học sẽ hiểu rằng một lớp đóng vai trò như bản vẽ thiết kế, trong khi một đối tượng là một thể hiện cụ thể được tạo ra từ bản vẽ đó. Chúng ta sẽ tìm hiểu cú pháp cơ bản để định nghĩa một lớp bằng từ khóa class, tập trung nhiều vào cách khởi tạo trạng thái đối tượng bằng phương thức đặc biệt __init__ (constructor) và cách định nghĩa các phương thức hành động. Cuối cùng, chúng ta sẽ khám phá cách các khái niệm này cho phép đóng gói – gom nhóm dữ liệu và các phương thức thao tác trên dữ liệu đó – và đưa ra một vài lời bàn về vai trò của giao diện trong việc định nghĩa các hợp đồng hành vi rõ ràng cho đối tượng, đặt nền móng cho kiến trúc phần mềm phức tạp. Kết quả học tập:

  • Phân biệt giữa các kiểu dữ liệu tích hợp sẵn của Python và các kiểu lớp do người dùng định nghĩa.
  • Định nghĩa và diễn giải sự khác biệt cơ bản giữa lớp và đối tượng (thể hiện).
  • Triển khai một lớp Python cơ bản, bao gồm việc khởi tạo và định nghĩa các thuộc tính thể hiện.
  • Sử dụng phương thức __init__ (constructor) để khởi tạo trạng thái đối tượng một cách đúng đắn khi tạo ra.
  • Giải thích cách đóng gói cấu trúc mã nguồn và góp phần vào khả năng tái sử dụng và duy trì mã nguồn.