{"version":1,"pages":[{"id":"-MIsLpb9_xTuyYbKp6jc","title":"Lời nói đầu","pathname":"/","siteSpaceId":"sitesp_IN2pA","description":"Ngôn ngữ lập trình gần với ngôn ngữ tự nhiên nhất hiện nay"},{"id":"-MJtxdlBjLGwXj8ut114","title":"Chương I. SƠ LƯỢC","pathname":"/chuong1","siteSpaceId":"sitesp_IN2pA","description":"Trong chương này chúng ta sẽ tìm hiểu các vẫn đề rất cơ bản của Python nhưng chưa đi vào chi tiết. Nhiều vẫn đề sẽ được trình bày kỹ hơn, sâu hơn ở những chương sau."},{"id":"-MIxTGNi-vfminQMm-p9","title":"Bài 1. Cài đặt môi trường","pathname":"/chuong1/bai-1","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương I. SƠ LƯỢC"}]},{"id":"-MIxTmEQO9Z3jBUzehoT","title":"Bài 2. Từ khóa và định danh","pathname":"/chuong1/bai-2","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương I. SƠ LƯỢC"}]},{"id":"-MJWzS-iT9evwgDKMbGu","title":"Bài 3. Câu lệnh, khối lệnh và chú thích","pathname":"/chuong1/bai-3","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương I. SƠ LƯỢC"}]},{"id":"-MJX1g1FzBnTHOt73LkP","title":"Bài 4. Nhập, xuất dữ liệu","pathname":"/chuong1/bai-4.-nhap-xuat-du-lieu-trong-python","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương I. SƠ LƯỢC"}]},{"id":"-MJX9MkJ4gKBGcn3HuTu","title":"Bài 5. Toán tử và lệnh gán","pathname":"/chuong1/bai-5.-toan-tu-va-lenh-gan","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương I. SƠ LƯỢC"}]},{"id":"-MJX5Swu3HynJli0Deew","title":"Bài 6. Biến, Hằng","pathname":"/chuong1/bai-6.-bien-hang-trong-python","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương I. SƠ LƯỢC"}]},{"id":"-MJX6xDAg8kRlJ1XSdpz","title":"Bài 7. Kiểu dữ liệu","pathname":"/chuong1/bai-7.-kieu-du-lieu-trong-python","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương I. SƠ LƯỢC"}]},{"id":"-MJX2aB8NxL00V9kya6J","title":"Bài 8. Thao tác với tệp (cơ bản)","pathname":"/chuong1/bai-8.-thao-tac-voi-tep-co-ban","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương I. SƠ LƯỢC"}]},{"id":"-ML18UawoKv_IGZsA3EC","title":"Bài 9. Tổng quan về Python","pathname":"/chuong1/bai-9.-tong-quan-ve-python","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương I. SƠ LƯỢC"}]},{"id":"-MJtyMgIffuDQvgC9a66","title":"Bài tập chương 1","pathname":"/chuong1/bai-tap-chuong-1-1","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương I. SƠ LƯỢC"}]},{"id":"-MJtzbpoTAurrJq7wsN0","title":"Chương II. RẼ NHÁNH - LẶP","pathname":"/chuong2","siteSpaceId":"sitesp_IN2pA","description":""},{"id":"-MJVgTRScMacuxzixVZw","title":"Bài 10. Cấu trúc rẽ nhánh if…else","pathname":"/chuong2/bai-10","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương II. RẼ NHÁNH - LẶP"}]},{"id":"-MJVglKSk3eoPtKmN-BK","title":"Bài 11. Cấu trúc lặp với for","pathname":"/chuong2/bai-11","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương II. RẼ NHÁNH - LẶP"}]},{"id":"-MJVgtzBFei2e24_iqUm","title":"Bài 12. Cấu trúc lặp với while","pathname":"/chuong2/bai-12","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương II. RẼ NHÁNH - LẶP"}]},{"id":"-MJVh-OwAvF7gRcnNzLr","title":"Bài 13. Lệnh break và continue","pathname":"/chuong2/bai-13.-lenh-break-va-continue","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương II. RẼ NHÁNH - LẶP"}]},{"id":"-MJpzXN3Xfl7u76eoA_v","title":"Bài tập chương 2","pathname":"/chuong2/bai-tap-cuoi-chuong","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương II. RẼ NHÁNH - LẶP"}]},{"id":"-MJtzt3bU-fx-ThHThyG","title":"Chương III. HÀM & MODULE","pathname":"/chuong3","siteSpaceId":"sitesp_IN2pA","description":""},{"id":"-MJVh5AaEsJlQXWJtgLN","title":"Bài 14. Hàm","pathname":"/chuong3/bai-14.-ham-def","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương III. HÀM & MODULE"}]},{"id":"-MJXGhF11VGbQBvEsv78","title":"Bài 15. Tham số hàm","pathname":"/chuong3/bai-15.-tham-so-ham","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương III. HÀM & MODULE"}]},{"id":"-MJbDOy8SpFAD2yN_iZH","title":"Bài 16. Đệ quy","pathname":"/chuong3/bai-16.-de-quy","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương III. HÀM & MODULE"}]},{"id":"-MJlPtE7Oxny67Wenmsx","title":"Bài 17. Hàm ẩn danh","pathname":"/chuong3/bai-17.-ham-an-danh","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương III. HÀM & MODULE"}]},{"id":"-MK-GnKWD9sN0J34fx4R","title":"Bài 18. Biến toàn cục và cục bộ","pathname":"/chuong3/bai-18.-bien-toan-cuc-va-cuc-bo","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương III. HÀM & MODULE"}]},{"id":"-MK02aSoVs43aIA_UsM8","title":"Bài 19. Module","pathname":"/chuong3/bai-19.-module","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương III. HÀM & MODULE"}]},{"id":"-MK2uCN81-E_3Z9MjB3M","title":"Bài 20. Package","pathname":"/chuong3/bai-20.-package","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương III. HÀM & MODULE"}]},{"id":"-MJXM1aOOAfxSzDvHpef","title":"Chương IV. KIỂU DỮ LIỆU","pathname":"/chuong4","siteSpaceId":"sitesp_IN2pA","description":""},{"id":"-MK8-pqr2dgGJUaxZq42","title":"Bài 21. Dữ liệu kiểu số","pathname":"/chuong4/du-lieu-so","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương IV. KIỂU DỮ LIỆU"}]},{"id":"-MKIFp8zujQRPfTYoMUj","title":"Bài 22. Dữ liệu kiểu string","pathname":"/chuong4/bai-22.-du-lieu-kieu-string","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương IV. KIỂU DỮ LIỆU"}]},{"id":"-MKID8_dDaxNgbX1vSBG","title":"Bài 23. Dữ liệu kiểu list","pathname":"/chuong4/bai-23.-du-lieu-kieu-list","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương IV. KIỂU DỮ LIỆU"}]},{"id":"-MKIFj0YaU_KUcVws1wQ","title":"Bài 24. Dữ liệu kiểu tuple","pathname":"/chuong4/bai-24.-du-lieu-kieu-tuple","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương IV. KIỂU DỮ LIỆU"}]},{"id":"-MKIG-7d1gByNtc61-NA","title":"Bài 25. Dữ liệu kiểu set","pathname":"/chuong4/bai-25.-du-lieu-kieu-set","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương IV. KIỂU DỮ LIỆU"}]},{"id":"-MKIG2MVhKXKaQ1uMdnv","title":"Bài 26. Dữ liệu kiểu dictionary","pathname":"/chuong4/bai-26.-du-lieu-kieu-dictionary","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương IV. KIỂU DỮ LIỆU"}]},{"id":"-MK-x-OOZMfZ7b1QParT","title":"Chương V. TỆP & THƯ MỤC","pathname":"/chuong5","siteSpaceId":"sitesp_IN2pA","description":""},{"id":"-MKefMwJrgaUe5xIXUDf","title":"Bài 27. Đọc và ghi file","pathname":"/chuong5/bai-27.-doc-va-ghi-file","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương V. TỆP & THƯ MỤC"}]},{"id":"-MKeiOFA4dbB-FM4WnxH","title":"Bài 28. Quản lý file và folder","pathname":"/chuong5/bai-28.-quan-ly-file-va-folder","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương V. TỆP & THƯ MỤC"}]},{"id":"-MKr8iSasnnH4GnnkK0c","title":"Chương VI. LỖI & NGOẠI LỆ","pathname":"/chuong6","siteSpaceId":"sitesp_IN2pA","description":""},{"id":"-MKeihKQ_mcaTLD2QlNB","title":"Bài 29. Ngoại lệ","pathname":"/chuong6/bai-29.-ngoai-le","siteSpaceId":"sitesp_IN2pA","description":"Lỗi và ngoại lệ trong Python","breadcrumbs":[{"label":"Chương VI. LỖI & NGOẠI LỆ"}]},{"id":"-MKeistfXpMoSzdwT-EZ","title":"Bài 30. Xử lý ngoại lệ","pathname":"/chuong6/bai-30.-xu-ly-ngoai-le","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương VI. LỖI & NGOẠI LỆ"}]},{"id":"-MKt4byHBn6TKwkhH_v7","title":"Bài 31. Xây dựng ngoại lệ","pathname":"/chuong6/bai-31.-xay-dung-ngoai-le","siteSpaceId":"sitesp_IN2pA","description":"Ngoại lệ do người dùng tự định nghĩa","breadcrumbs":[{"label":"Chương VI. LỖI & NGOẠI LỆ"}]},{"id":"-MK-x9jOknP2Q9RquDAY","title":"Chương VII. HƯỚNG ĐỐI TƯỢNG","pathname":"/chuong7","siteSpaceId":"sitesp_IN2pA","description":"Từ chương này chúng ta làm quen với việc đọc tài liệu gốc (tiếng Anh) vì dù muốn hay không, để tìm hiểu sâu về lập trình thì không thể không sử dụng tiếng Anh."},{"id":"-ML16gxcT62Ml1rxEn0H","title":"Bài 32. Lập trình hướng đối tượng","pathname":"/chuong7/bai-32.-lap-trinh-huong-doi-tuong","siteSpaceId":"sitesp_IN2pA","description":"Python Object Oriented Programming","breadcrumbs":[{"label":"Chương VII. HƯỚNG ĐỐI TƯỢNG"}]},{"id":"-ML16qAbJg_qgw8bdRbK","title":"Bài 33. Đối tượng và Lớp","pathname":"/chuong7/bai-33.-doi-tuong-va-lop","siteSpaceId":"sitesp_IN2pA","description":"Python Objects and Classes","breadcrumbs":[{"label":"Chương VII. HƯỚNG ĐỐI TƯỢNG"}]},{"id":"-ML17-ycOEvZHsi5QR02","title":"Bài 34. Kế thừa","pathname":"/chuong7/bai-34.-ke-thua","siteSpaceId":"sitesp_IN2pA","description":"Python Inheritance","breadcrumbs":[{"label":"Chương VII. HƯỚNG ĐỐI TƯỢNG"}]},{"id":"-ML174ub36Uy2s9wl58z","title":"Bài 35. Đa kế thừa","pathname":"/chuong7/bai-35.-da-ke-thua","siteSpaceId":"sitesp_IN2pA","description":"Python Multiple Inheritance","breadcrumbs":[{"label":"Chương VII. HƯỚNG ĐỐI TƯỢNG"}]},{"id":"-ML17b-pAJEL0uZ9Sjwb","title":"Bài 36. Nạp chồng toán tử","pathname":"/chuong7/bai-36-nap-chong-toan-tu","siteSpaceId":"sitesp_IN2pA","description":"Python Operator Overloading","breadcrumbs":[{"label":"Chương VII. HƯỚNG ĐỐI TƯỢNG"}]},{"id":"-MK-xqm5ZyIKx6Tuy9CG","title":"Chương VIII. NGÀY - GIỜ","pathname":"/chuong8","siteSpaceId":"sitesp_IN2pA","description":""},{"id":"-MLRwFE8vKHbT1Jmf0XA","title":"Python datetime","pathname":"/chuong8/python-datetime","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương VIII. NGÀY - GIỜ"}]},{"id":"-MLRwTJ0qhAb8PWIpOPk","title":"Python strftime()","pathname":"/chuong8/python-strftime","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương VIII. NGÀY - GIỜ"}]},{"id":"-MLRwc4-Sf-tnK5cAwdp","title":"Python strptime()","pathname":"/chuong8/python-strptime","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương VIII. NGÀY - GIỜ"}]},{"id":"-MLRwug7myOpM9WAbZ9n","title":"Current date and time","pathname":"/chuong8/current-date-and-time","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương VIII. NGÀY - GIỜ"}]},{"id":"-MLRx0CsYTbwL2Bd-STh","title":"Get Current time","pathname":"/chuong8/get-current-time","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương VIII. NGÀY - GIỜ"}]},{"id":"-MLRxAvTIVesIVT1sLnp","title":"Timestamp to datetime","pathname":"/chuong8/timestamp-to-datetime","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương VIII. NGÀY - GIỜ"}]},{"id":"-MLRxSmzdPKTcbpd3mNI","title":"Python time Module","pathname":"/chuong8/python-time-module","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương VIII. NGÀY - GIỜ"}]},{"id":"-MLRxamTYnRgC_tFzoSQ","title":"Python sleep()","pathname":"/chuong8/python-sleep","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương VIII. NGÀY - GIỜ"}]},{"id":"-MK-xUKHIuHAS8yH-ZxR","title":"Chương IX. CHỦ ĐỀ NÂNG CAO","pathname":"/chuong9","siteSpaceId":"sitesp_IN2pA","description":""},{"id":"-MLRzaLgRBeS0k3RgZ8M","title":"Python Iterators","pathname":"/chuong9/python-iterators","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương IX. CHỦ ĐỀ NÂNG CAO"}]},{"id":"-MLRzgnRxModNJoN1JMI","title":"Python Generators","pathname":"/chuong9/python-generators","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương IX. CHỦ ĐỀ NÂNG CAO"}]},{"id":"-MLRztltuOWk349LSm78","title":"Python Closures","pathname":"/chuong9/python-closures","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương IX. CHỦ ĐỀ NÂNG CAO"}]},{"id":"-MLS-0vO_hBc41UxIddB","title":"Python Decorators","pathname":"/chuong9/python-decorators","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương IX. CHỦ ĐỀ NÂNG CAO"}]},{"id":"-MLS-BT2WI0LFavK67Cm","title":"Python @property decorator","pathname":"/chuong9/python-property-decorator","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương IX. CHỦ ĐỀ NÂNG CAO"}]},{"id":"-MLS-P9Yd5DzeyM8CqCG","title":"Python RegEx","pathname":"/chuong9/python-regex","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương IX. CHỦ ĐỀ NÂNG CAO"}]},{"id":"-MLS0IRhR82JW56NdeBE","title":"Python Examples","pathname":"/chuong9/python-examples","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"Chương IX. CHỦ ĐỀ NÂNG CAO"}]},{"id":"-MKEzuVrOf7ccxET-QEA","title":"PHỤ LỤC - GHI CHÉP","pathname":"/phu-luc","siteSpaceId":"sitesp_IN2pA","description":"Ghi chép trong quá trình vừa biên soạn,vừa thực hành"},{"id":"-MKHy9ZQYZsjOH6xHNQv","title":"Hàm map()","pathname":"/phu-luc/ham-map","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"PHỤ LỤC - GHI CHÉP"}]},{"id":"-ML7ANibQo6iMfm26lVU","title":"Cài Sublime Text để code Python","pathname":"/phu-luc/untitled","siteSpaceId":"sitesp_IN2pA","description":"","breadcrumbs":[{"label":"PHỤ LỤC - GHI CHÉP"}]},{"id":"-MLpskW466i5wcmi2sUG","title":"Ghi chép - ghi chú","pathname":"/phu-luc/ghi-chep-hau-truong","siteSpaceId":"sitesp_IN2pA","description":"Ghi chép trong quá trình biên soạn tài liệu","breadcrumbs":[{"label":"PHỤ LỤC - GHI CHÉP"}]},{"id":"-MNh7QU3Jw4XbBRcbeim","title":"Mảng 2 chiều","pathname":"/phu-luc/mang-2-chieu","siteSpaceId":"sitesp_IN2pA","description":"Một ví dụ về đọc dữ liệu từ file và xử lý mảng 2 chiều","breadcrumbs":[{"label":"PHỤ LỤC - GHI CHÉP"}]},{"id":"VMh1muVMrs6FoShTwwEV","title":"Công thức với dãy số","pathname":"/phu-luc/cong-thuc-voi-day-so","siteSpaceId":"sitesp_IN2pA","breadcrumbs":[{"label":"PHỤ LỤC - GHI CHÉP"}]},{"id":"-MKekjzSEb-YJQpOJW5l","title":"Tài liệu tham khảo","pathname":"/tai-lieu-tham-khao","siteSpaceId":"sitesp_IN2pA","description":""}]}