Giải pháp bài tập python cho mọi người pdf

Python cho mọi người Khám phá dữ liệu bằng Python 3 Dr. Charles R. Trợ cấp thôi việc Hỗ trợ biên tập. Elliott Hauser, Thiết kế bìa Sue Blumenberg. Lịch sử In Aimee Andrion • 2016-Jul-05 Bản Python 3 hoàn chỉnh đầu tiên. 0 • 2015-Dec-20 Python 3 ban đầu. 0 chuyển đổi thô Copyright Chi tiết Copyright 2009- Dr. Charles R. thôi việc. Tác phẩm này được cấp phép theo Creative Commons Ghi công-Phi thương mại- Chia sẻ tương tự 3. 0 Giấy phép chưa chuyển đổi. Giấy phép này có sẵn tại http. //Commons sáng tạo. org/giấy phép/by-nc-sa/3. 0/ Bạn có thể xem những gì tác giả coi là sử dụng thương mại và phi thương mại đối với tài liệu này cũng như các trường hợp miễn trừ giấy phép trong Phụ lục có tiêu đề “Chi tiết Bản quyền”. iii Lời nói đầu Phối lại một cuốn sách mở Điều khá tự nhiên là các học giả, những người liên tục được yêu cầu “xuất bản hoặc diệt vong” luôn muốn tạo ra một thứ gì đó từ đầu, đó là sáng tạo mới của riêng họ. Cuốn sách này là một thử nghiệm không phải bắt đầu từ đầu, mà thay vào đó là “phối lại” cuốn sách có tựa đề Think Python. Làm thế nào để suy nghĩ như một nhà khoa học máy tính được viết bởi Allen B. Downey, Jeff Elkner và những người khác. Vào tháng 12 năm 2009, tôi đang chuẩn bị dạy SI502 - Lập trình mạng tại Đại học Michigan trong học kỳ thứ năm liên tiếp và quyết định đã đến lúc viết một cuốn sách giáo khoa Python tập trung vào khám phá dữ liệu thay vì hiểu các thuật toán và khái niệm trừu tượng. Mục tiêu của tôi trong SI502 là dạy mọi người kỹ năng xử lý dữ liệu suốt đời bằng Python. Rất ít sinh viên của tôi dự định trở thành lập trình viên máy tính chuyên nghiệp. Thay vào đó, họ dự định trở thành thủ thư, quản lý, luật sư, nhà sinh vật học, nhà kinh tế, v.v. , người tình cờ muốn sử dụng công nghệ một cách khéo léo trong lĩnh vực họ đã chọn. Tôi dường như chưa bao giờ tìm thấy cuốn sách Python hướng dữ liệu hoàn hảo cho khóa học của mình, vì vậy tôi bắt đầu viết một cuốn sách như vậy. May mắn thay, tại một cuộc họp của khoa ba tuần trước khi tôi chuẩn bị bắt đầu cuốn sách mới của mình từ đầu trong kỳ nghỉ lễ, Tiến sĩ. Atul Prakash đã cho tôi xem cuốn sách Think Python mà anh ấy đã sử dụng để dạy khóa học Python của mình trong học kỳ đó. Đây là một văn bản Khoa học Máy tính được viết tốt, tập trung vào các giải thích ngắn gọn, trực tiếp và dễ học. Cấu trúc tổng thể của cuốn sách đã được thay đổi để thực hiện các vấn đề phân tích dữ liệu nhanh nhất có thể và có một loạt các ví dụ và bài tập chạy về phân tích dữ liệu ngay từ đầu. Chương 2–10 tương tự như cuốn sách Think Python, nhưng đã có những thay đổi lớn. Các ví dụ và bài tập định hướng số đã được thay thế bằng các bài tập định hướng dữ liệu. Các chủ đề được trình bày theo thứ tự cần thiết để xây dựng các giải pháp phân tích dữ liệu ngày càng tinh vi. Một số chủ đề như thử và ngoại trừ được kéo dài và trình bày như một phần của chương về câu điều kiện. Các chức năng được xử lý rất nhẹ cho đến khi chúng cần thiết để xử lý độ phức tạp của chương trình thay vì được giới thiệu như một bài học ban đầu về trừu tượng. Gần như tất cả các hàm do người dùng định nghĩa đã bị xóa khỏi mã ví dụ và bài tập ngoài Chương 4. Từ “đệ quy”1 hoàn toàn không xuất hiện trong sách. Trong các chương 1 và 11–16, tất cả tài liệu đều hoàn toàn mới, tập trung vào cách sử dụng trong thế giới thực và các ví dụ đơn giản về Python để phân tích dữ liệu, bao gồm các biểu thức chính quy để tìm kiếm và phân tích cú pháp, tự động hóa các tác vụ trên máy tính của bạn, truy xuất dữ liệu qua mạng, . Mục tiêu cuối cùng của tất cả những thay đổi này là chuyển từ trọng tâm Khoa học máy tính sang Tin học và chỉ đưa các chủ đề vào lớp công nghệ đầu tiên có thể hữu ích ngay cả khi một người chọn không trở thành một lập trình viên chuyên nghiệp. 1Tất nhiên, ngoại trừ dòng này. iv Những sinh viên thấy cuốn sách này thú vị và muốn khám phá thêm nên xem Allen B. Cuốn sách Think Python của Downey. Do có nhiều điểm trùng lặp giữa hai cuốn sách nên học sinh sẽ nhanh chóng tiếp thu các kỹ năng trong các lĩnh vực bổ sung về lập trình kỹ thuật và tư duy thuật toán được đề cập trong Think Python. Và do các cuốn sách có phong cách viết tương tự nhau, chúng sẽ có thể lướt qua Think Python một cách nhanh chóng với ít nỗ lực nhất. Với tư cách là người giữ bản quyền của Think Python, Allen đã cho phép tôi thay đổi giấy phép của cuốn sách đối với tài liệu từ cuốn sách của anh ấy vẫn còn trong cuốn sách này từ Giấy phép Tài liệu Tự do GNU thành Giấy phép Creative Commons Attribution — Share Alike gần đây hơn. Điều này tuân theo sự thay đổi chung trong các giấy phép tài liệu mở chuyển từ GFDL sang CC-BY-SA [e. g. ,Wikipedia]. Việc sử dụng giấy phép CC-BY-SA duy trì truyền thống copyleft mạnh mẽ của cuốn sách đồng thời giúp các tác giả mới dễ dàng sử dụng lại tài liệu này hơn khi họ thấy phù hợp. Tôi cảm thấy rằng cuốn sách này phục vụ như một ví dụ về lý do tại sao các tư liệu mở lại quan trọng đến vậy đối với tương lai của giáo dục, và tôi muốn cảm ơn Allen B. Downey và Nhà xuất bản Đại học Cambridge vì quyết định hướng tới tương lai của họ để cung cấp cuốn sách dưới bản quyền mở. Tôi hy vọng họ hài lòng với kết quả nỗ lực của tôi và tôi hy vọng rằng bạn, độc giả, hài lòng với những nỗ lực chung của chúng tôi. Tôi muốn cảm ơn Allen B. Downey và Lauren Cowles vì ​​sự giúp đỡ, kiên nhẫn và hướng dẫn của họ trong việc xử lý và giải quyết các vấn đề bản quyền xung quanh cuốn sách này. Charles thôi việc www. dr-chuck. com Ann Arbor, MI, USA Ngày 9 tháng 9 năm 2013 Charles Severance là Phó Giáo sư Lâm sàng tại Trường Thông tin Đại học Michigan. Nội dung 1 Tại sao nên học viết chương trình? . 1 Sáng tạo và động lực. . . . . . . . . . . . . . . . . . . . . . . 2 1. 2 Kiến trúc phần cứng máy tính. . . . . . . . . . . . . . . . . . . 3 1. 3 Hiểu về lập trình. . . . . . . . . . . . . . . . . . . . . 4 1. 4 Từ và câu. . . . . . . . . . . . . . . . . . . . . . . . . . 5 1. 5 Trò chuyện với Python. . . . . . . . . . . . . . . . . . . . . . . . 6 1. 6 thuật ngữ. Thông dịch viên và biên dịch. . . . . . . . . . . . . . . . 8 1. 7 Viết chương trình. . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1. 8 Chương trình là gì?. . . . . . . . . . . . . . . . . . . . . . . . . . 10 1. 9 Các khối xây dựng của chương trình. . . . . . . . . . . . . . . . . . . . 11 1. 10 Điều gì có thể xảy ra?. . . . . . . . . . . . . . . . . . . . 12 1. 11 Gỡ lỗi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1. 12 Hành trình học tập. . . . . . . . . . . . . . . . . . . . . . . . . . 15 1. 13 Thuật ngữ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1. 14 bài tập. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2 Biến, biểu thức và câu lệnh 19 2. 1 Giá trị và loại. . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2. 2 biến. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2. 3 Tên biến và từ khóa. . . . . . . . . . . . . . . . . . . . . . 21 2. 4 Tuyên bố. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2. 5 Toán tử và toán hạng. . . . . . . . . . . . . . . . . . . . . . . . 22 2. 6 biểu thức. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2. 7 Thứ tự thao tác. . . . . . . . . . . . . . . . . . . . . . . . . . 23 2. 8 Toán tử mô đun. . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2. 9 Hoạt động chuỗi. . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 v vi NỘI DUNG 2. 10 Yêu cầu người dùng nhập dữ liệu. . . . . . . . . . . . . . . . . . . . . . . 25 2. 11 Bình luận. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2. 12 Chọn tên biến dễ nhớ. . . . . . . . . . . . . . . . . 27 2. 13 Gỡ lỗi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2. 14 Thuật ngữ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2. 15 bài tập. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3 Thực thi có điều kiện 31 3. 1 biểu thức Boolean. . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3. 2 Toán tử logic. . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3. 3 Thực thi có điều kiện. . . . . . . . . . . . . . . . . . . . . . . . . 32 3. 4 Thực thi thay thế. . . . . . . . . . . . . . . . . . . . . . . . . 33 3. 5 chuỗi điều kiện. . . . . . . . . . . . . . . . . . . . . . . . . . 34 3. 6 điều kiện lồng nhau. . . . . . . . . . . . . . . . . . . . . . . . . . 35 3. 7 Bắt ngoại lệ bằng cách sử dụng thử và ngoại trừ. . . . . . . . . . . . . . 36 3. 8 Đánh giá ngắn mạch các biểu thức logic. . . . . . . . . . . . 38 3. 9 Gỡ lỗi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3. 10 thuật ngữ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3. 11 bài tập. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4 Chức năng 43 4. 1 Lời gọi hàm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4. 2 chức năng tích hợp. . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4. 3 Chức năng chuyển đổi loại. . . . . . . . . . . . . . . . . . . . . . . 44 4. 4 Hàm toán học. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4. 5 Số ngẫu nhiên. . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4. 6 Thêm chức năng mới. . . . . . . . . . . . . . . . . . . . . . . . . 47 4. 7 Định nghĩa và cách sử dụng. . . . . . . . . . . . . . . . . . . . . . . . . . 48 4. 8 Quy trình thực hiện. . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4. 9 Tham số và đối số. . . . . . . . . . . . . . . . . . . . . . 49 4. 10 Hàm hiệu quả và hàm void. . . . . . . . . . . . . . . . . . 51 4. 11 Tại sao chức năng?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4. 12 Gỡ lỗi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4. 13 Thuật ngữ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4. 14 bài tập. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 MỤC LỤC vii 5 Lặp lại 57 5. 1 Cập nhật biến. . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5. 2 Câu lệnh while. . . . . . . . . . . . . . . . . . . . . . . . . 57 5. 3 vòng lặp vô hạn. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5. 4 Kết thúc các lần lặp với continue. . . . . . . . . . . . . . . . . . 59 5. 5 Vòng lặp xác định sử dụng for. . . . . . . . . . . . . . . . . . . . . . . . 60 5. 6 mẫu vòng lặp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 5. 6. 1 Vòng lặp đếm và tính tổng. . . . . . . . . . . . . . . . . . 61 5. 6. 2 vòng tối đa và tối thiểu. . . . . . . . . . . . . . . . 62 5. 7 Gỡ lỗi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 5. 8 thuật ngữ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 5. 9 bài tập. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 6 Chuỗi 67 6. 1 Một chuỗi là một dãy. . . . . . . . . . . . . . . . . . . . . . . . . 67 6. 2 Lấy độ dài của một chuỗi bằng cách sử dụng len. . . . . . . . . . . . . . . 68 6. 3 Duyệt qua một chuỗi với một vòng lặp. . . . . . . . . . . . . . . . 68 6. 4 chuỗi lát. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 6. 5 Chuỗi là bất biến. . . . . . . . . . . . . . . . . . . . . . . . . 70 6. 6 Vòng lặp và đếm. . . . . . . . . . . . . . . . . . . . . . . . . 70 6. 7 Toán tử in. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 6. 8 Chuỗi so sánh. . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 6. 9 Phương thức chuỗi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 6. 10 Chuỗi phân tích cú pháp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 6. 11 Toán tử định dạng. . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 6. 12 Gỡ lỗi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 6. 13 Thuật ngữ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 6. 14 bài tập. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 7 Tập tin 79 7. 1 kiên trì. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 7. 2 Mở tệp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 7. 3 Tệp văn bản và dòng. . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 7. 4 Đọc tập tin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 7. 5 Tìm kiếm thông qua một tập tin. . . . . . . . . . . . . . . . . . . . . . . . 83 viii MỤC LỤC 7. 6 Cho phép người dùng chọn tên tệp. . . . . . . . . . . . . . . . . 85 7. 7 Sử dụng thử, ngoại trừ và mở. . . . . . . . . . . . . . . . . . . . 86 7. 8 Ghi tập tin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 7. 9 Gỡ lỗi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 7. 10 thuật ngữ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 7. 11 bài tập. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 8 Danh sách 91 8. 1 Một danh sách là một dãy. . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 8. 2 Danh sách có thể thay đổi. . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 8. 3 Duyệt danh sách. . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 8. 4 Thao tác liệt kê. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 8. 5 lát danh sách. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 8. 6 Phương pháp liệt kê. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 8. 7 Xóa phần tử. . . . . . . . . . . . . . . . . . . . . . . . . . . 95 8. 8 Danh sách và chức năng. . . . . . . . . . . . . . . . . . . . . . . . . . . 96 8. 9 Danh sách và chuỗi. . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 8. 10 dòng phân tích cú pháp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 8. 11 Đối tượng và giá trị. . . . . . . . . . . . . . . . . . . . . . . . . . . 99 8. 12 Bí danh. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 8. 13 Liệt kê đối số. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 8. 14 Gỡ lỗi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 8. 15 Thuật ngữ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 8. 16 bài tập. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 9 Từ điển 109 9. 1 Từ điển dưới dạng một bộ đếm. . . . . . . . . . . . . . . . . . . . . 111 9. 2 Từ điển và tập tin. . . . . . . . . . . . . . . . . . . . . . . . . . 112 9. 3 Vòng lặp và từ điển. . . . . . . . . . . . . . . . . . . . . . . 113 9. 4 Phân tích văn bản nâng cao. . . . . . . . . . . . . . . . . . . . . . . . . 115 9. 5 Gỡ lỗi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 9. 6 Thuật ngữ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 9. 7 bài tập. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 NỘI DUNG ix 10 Bộ dữ liệu 119 10. 1 Tuples là bất biến. . . . . . . . . . . . . . . . . . . . . . . . . 119 10. 2 So sánh các bộ. . . . . . . . . . . . . . . . . . . . . . . . . . . 120 10. 3 phép gán Tuple. . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 10. 4 Từ điển và bộ dữ liệu. . . . . . . . . . . . . . . . . . . . . . . . 123 10. 5 Nhiều bài tập với từ điển. . . . . . . . . . . . . . . . 124 10. 6 Những từ phổ biến nhất. . . . . . . . . . . . . . . . . . . . . . . 125 10. 7 Sử dụng bộ dữ liệu làm khóa trong từ điển. . . . . . . . . . . . . . . . . . 126 10. 8 trình tự. chuỗi, danh sách và bộ dữ liệu - Oh My. . . . . . . . . . . . . 126 10. 9 Gỡ lỗi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 10. 10 thuật ngữ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 10. 11 bài tập. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 11 Cụm từ thông dụng 129 11. 1 Khớp ký tự trong biểu thức chính quy. . . . . . . . . . . . . . 130 11. 2 Trích xuất dữ liệu bằng biểu thức chính quy. . . . . . . . . . . . . . . 131 11. 3 Kết hợp tìm kiếm và trích xuất. . . . . . . . . . . . . . . . . 134 11. 4 Nhân vật trốn thoát. . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 11. 5 Tóm tắt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 11. 6 Phần thưởng cho người dùng Unix/Linux. . . . . . . . . . . . . . . . . 139 11. 7 Gỡ lỗi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 11. 8 thuật ngữ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 11. 9 bài tập. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 12 Các chương trình nối mạng 143 12. 1 Giao thức truyền tải siêu văn bản - HTTP. . . . . . . . . . . . . . . . 143 12. 2 Trình duyệt web đơn giản nhất thế giới. . . . . . . . . . . . . . . . . . 144 12. 3 Truy xuất hình ảnh qua HTTP. . . . . . . . . . . . . . . . . . . 146 12. 4 Truy xuất trang web bằng urllib. . . . . . . . . . . . . . . . . . 148 12. 5 Đọc tệp nhị phân bằng urllib. . . . . . . . . . . . . . . . . . 149 12. 6 Phân tích cú pháp HTML và quét web. . . . . . . . . . . . . . . . 150 12. 7 Phân tích cú pháp HTML bằng biểu thức chính quy. . . . . . . . . . . . . . 150 12. 8 Phân tích cú pháp HTML bằng BeautifulSoup. . . . . . . . . . . . . . . . . 152 12. 9 Phần thưởng cho người dùng Unix/Linux. . . . . . . . . . . . . . . . . 155 12. 10 thuật ngữ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 12. 11 bài tập. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 x MỤC LỤC 13 Sử dụng Dịch vụ Web 157 13. 1 Ngôn ngữ đánh dấu có thể mở rộng - XML. . . . . . . . . . . . . . . . . 157 13. 2 Phân tích cú pháp XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 13. 3 Vòng qua các nút. . . . . . . . . . . . . . . . . . . . . . . . 159 13. 4 Ký hiệu đối tượng JavaScript - JSON. . . . . . . . . . . . . . . . . 160 13. 5 Phân tích cú pháp JSON. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 13. 6 Giao diện lập trình ứng dụng. . . . . . . . . . . . . . . . . 162 13. 7 Bảo mật và sử dụng API. . . . . . . . . . . . . . . . . . . . . . . . 163 13. 8 thuật ngữ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 13. 9 Ứng dụng 1. Dịch vụ web mã hóa địa lý của Google. . . . . . . . . . . . 164 13. 10 Ứng dụng 2. Twitter. . . . . . . . . . . . . . . . . . . . . . . . . 168 14 Lập trình hướng đối tượng 173 14. 1 Quản lý các chương trình lớn hơn. . . . . . . . . . . . . . . . . . . . . . . 173 14. 2 Bắt đầu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 14. 3 Sử dụng đồ vật. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 14. 4 Bắt đầu với các chương trình. . . . . . . . . . . . . . . . . . . . . . . . 175 14. 5 Chia nhỏ vấn đề. . . . . . . . . . . . . . . . . . . . . . . . . 177 14. 6 Đối tượng Python đầu tiên của chúng tôi. . . . . . . . . . . . . . . . . . . . . . . . 177 14. 7 Các lớp như các loại. . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 14. 8 Vòng đời đối tượng. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 14. 9 Nhiều trường hợp. . . . . . . . . . . . . . . . . . . . . . . . . . . 182 14. 10 thừa kế. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 14. 11 Tóm tắt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 14. 12 thuật ngữ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 15 Sử dụng Cơ sở dữ liệu và SQL 187 15. 1 Cơ sở dữ liệu là gì?. . . . . . . . . . . . . . . . . . . . . . . . . . 187 15. 2 Khái niệm cơ sở dữ liệu. . . . . . . . . . . . . . . . . . . . . . . . . . . 187 15. 3 Trình duyệt cơ sở dữ liệu cho SQLite. . . . . . . . . . . . . . . . . . . . . 188 15. 4 Tạo bảng cơ sở dữ liệu. . . . . . . . . . . . . . . . . . . . . . . 188 15. 5 Tóm tắt ngôn ngữ truy vấn có cấu trúc. . . . . . . . . . . . . . . . . 191 15. 6 Spidering Twitter sử dụng cơ sở dữ liệu. . . . . . . . . . . . . . . . . . 193 15. 7 Mô hình hóa dữ liệu cơ bản. . . . . . . . . . . . . . . . . . . . . . . . . . 198 15. 8 Lập trình với nhiều bảng. . . . . . . . . . . . . . . . . . 199 MỤC LỤC xi 15. 8. 1 Các ràng buộc trong bảng cơ sở dữ liệu. . . . . . . . . . . . . . . . 202 15. 8. 2 Truy xuất và/hoặc chèn bản ghi. . . . . . . . . . . . . . . . 203 15. 8. 3 Lưu trữ mối quan hệ bạn bè. . . . . . . . . . . . . . . . . 204 15. 9 Ba loại chìa khóa. . . . . . . . . . . . . . . . . . . . . . . . . . 205 15. 10 Sử dụng JOIN để lấy dữ liệu. . . . . . . . . . . . . . . . . . . . . . 206 15. 11 Tóm tắt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 15. 12 Gỡ lỗi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 15. 13 Thuật ngữ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 16 Trực quan hóa dữ liệu 211 16. 1 Xây dựng OpenStreetMap từ dữ liệu mã hóa địa lý. . . . . . . . . . . . 211 16. 2 Trực quan hóa mạng và kết nối. . . . . . . . . . . . . . 213 16. 3 Trực quan hóa dữ liệu thư. . . . . . . . . . . . . . . . . . . . . . . . . 216 A Đóng góp 223 A. 1 Danh sách cộng tác viên cho Python cho mọi người. . . . . . . . . . . . . 223 Một. 2 Danh sách Cộng tác viên cho Python dành cho Tin học. . . . . . . . . . . . . 223 Một. 3 Lời nói đầu cho “Think Python”. . . . . . . . . . . . . . . . . . . . . . 223 Một. 3. 1 Lịch sử kỳ lạ của “Think Python”. . . . . . . . . . . 223 Một. 3. 2 Lời cảm ơn dành cho “Think Python”. . . . . . . . . . . 225 A. 4 Danh sách cộng tác viên cho “Think Python”. . . . . . . . . . . . . . . . . 225 B Copyright Detail 227 xii MỤC LỤC Chương 1 Tại sao nên học viết chương trình? . Bạn có thể viết chương trình vì nhiều lý do, từ kiếm sống đến giải quyết vấn đề phân tích dữ liệu khó khăn đến niềm vui khi giúp người khác giải quyết vấn đề. Cuốn sách này giả định rằng mọi người đều cần biết cách lập trình và khi bạn biết cách lập trình, bạn sẽ biết mình muốn làm gì với những kỹ năng mới học được của mình. Chúng ta được bao quanh trong cuộc sống hàng ngày với các loại máy tính từ máy tính xách tay đến điện thoại di động. Chúng ta có thể coi những chiếc máy tính này như những “trợ lý cá nhân” có thể thay chúng ta lo nhiều việc. Phần cứng trong các máy tính ngày nay của chúng ta về cơ bản được chế tạo để liên tục hỏi chúng ta câu hỏi, "Bạn muốn tôi làm gì tiếp theo?" . 1. Trợ lý kỹ thuật số cá nhân Các lập trình viên thêm một hệ điều hành và một bộ ứng dụng vào phần cứng và chúng tôi kết thúc với một Trợ lý kỹ thuật số cá nhân khá hữu ích và có khả năng giúp chúng tôi làm nhiều việc khác nhau. Máy tính của chúng tôi rất nhanh và có dung lượng bộ nhớ lớn và có thể rất hữu ích cho chúng tôi nếu chúng tôi chỉ biết ngôn ngữ để nói để giải thích cho máy tính những gì chúng tôi muốn nó “làm tiếp theo”. Nếu chúng ta biết ngôn ngữ này, chúng ta có thể yêu cầu máy tính thực hiện các nhiệm vụ lặp đi lặp lại thay cho chúng ta. Thật thú vị, những thứ mà máy tính có thể làm tốt nhất lại thường là những thứ mà con người chúng ta cảm thấy nhàm chán và khó chịu. 1 2 CHƯƠNG 1. TẠI SAO BẠN NÊN HỌC VIẾT CHƯƠNG TRÌNH? . Mặc dù bạn có thể đọc và hiểu các từ trong vài giây, nhưng việc đếm chúng gần như rất khó khăn vì đó không phải là loại vấn đề mà tâm trí con người được thiết kế để giải quyết. Đối với máy tính thì ngược lại, máy tính khó có thể đọc và hiểu văn bản trên một tờ giấy nhưng việc đếm các từ và cho bạn biết từ được sử dụng nhiều nhất bao nhiêu lần thì rất dễ dàng đối với máy tính. từ trăn trở. py Nhập tập tin. từ ngữ. txt đến 16 “Trợ lý phân tích thông tin cá nhân” của chúng tôi nhanh chóng cho chúng tôi biết rằng từ “đến” đã được sử dụng mười sáu lần trong ba đoạn đầu tiên của chương này. Chính thực tế là máy tính giỏi những thứ mà con người không giỏi chính là lý do tại sao bạn cần phải thành thạo trong việc nói “ngôn ngữ máy tính”. Khi bạn học ngôn ngữ mới này, bạn có thể ủy thác các nhiệm vụ thông thường cho đối tác của mình [máy tính], để bạn có nhiều thời gian hơn để làm những việc mà bạn đặc biệt thích hợp. Bạn mang đến sự sáng tạo, trực giác và óc phát minh cho mối quan hệ hợp tác này. 1. 1 Sáng tạo và động lực Mặc dù cuốn sách này không dành cho các lập trình viên chuyên nghiệp, lập trình chuyên nghiệp có thể là một công việc rất bổ ích cả về tài chính và cá nhân. Xây dựng các chương trình hữu ích, tao nhã và thông minh để người khác sử dụng là một hoạt động rất sáng tạo. Máy tính của bạn hoặc Personal Digital Assistant [PDA] thường chứa nhiều chương trình khác nhau từ nhiều nhóm lập trình viên khác nhau, mỗi nhóm cạnh tranh để thu hút sự chú ý và quan tâm của bạn. Họ cố gắng hết sức để đáp ứng nhu cầu của bạn và mang đến cho bạn trải nghiệm người dùng tuyệt vời trong quá trình này. Trong một số trường hợp, khi bạn chọn một phần mềm, các lập trình viên sẽ được đền bù trực tiếp vì sự lựa chọn của bạn. Nếu chúng ta coi các chương trình là sản phẩm sáng tạo của các nhóm lập trình viên, thì có lẽ hình dưới đây là một phiên bản hợp lý hơn của PDA của chúng ta. Chọn tôi. Chọn tôi. Chọn tôi. Chọn tôi. Chọn tôi. Mua giùm tôi. ] Hình 1. 2. Lập trình viên nói chuyện với bạn Hiện tại, động lực chính của chúng tôi không phải là kiếm tiền hay làm hài lòng người dùng cuối, mà thay vào đó là để chúng tôi xử lý dữ liệu và thông tin hiệu quả hơn mà chúng tôi sẽ gặp trong cuộc sống của mình. Khi mới bắt đầu, bạn sẽ vừa là lập trình viên vừa là người dùng cuối của các chương trình của mình. Khi bạn có được kỹ năng lập trình viên và việc lập trình khiến bạn cảm thấy sáng tạo hơn, suy nghĩ của bạn có thể hướng tới việc phát triển các chương trình cho người khác. 1. 2. KIẾN TRÚC PHẦN CỨNG MÁY TÍNH 3 1. 2 Kiến trúc phần cứng máy tính Trước khi bắt đầu học ngôn ngữ chúng ta nói để hướng dẫn máy tính phát triển phần mềm, chúng ta cần tìm hiểu một chút về cách máy tính được tạo ra. Nếu bạn tháo máy tính hoặc điện thoại di động của mình ra và nhìn sâu vào bên trong, bạn sẽ tìm thấy các bộ phận sau. Thiết bị đầu vào và đầu ra Phần mềm Bộ nhớ chính Đơn vị xử lý trung tâm Điều gì tiếp theo? . 3. Kiến trúc phần cứng Các định nghĩa cấp cao của các phần này như sau. • Bộ xử lý trung tâm [hay CPU] là một phần của máy tính được chế tạo để luôn bị ám ảnh bởi “điều gì sẽ xảy ra tiếp theo?” . 0 Gigahertz, điều đó có nghĩa là CPU sẽ hỏi "What next?" . Bạn sẽ phải học cách nói nhanh để theo kịp CPU. • Bộ nhớ chính được sử dụng để lưu trữ thông tin mà CPU cần gấp. Bộ nhớ chính nhanh gần bằng CPU. Nhưng thông tin được lưu trữ trong bộ nhớ chính sẽ biến mất khi tắt máy tính. • Bộ nhớ phụ cũng được sử dụng để lưu trữ thông tin nhưng chậm hơn nhiều so với bộ nhớ chính. Ưu điểm của bộ nhớ thứ cấp là nó có thể lưu trữ thông tin ngay cả khi không có nguồn điện cho máy tính. Ví dụ về bộ nhớ thứ cấp là ổ đĩa hoặc bộ nhớ flash [thường được tìm thấy trong USB và máy nghe nhạc di động]. • Thiết bị Đầu vào và Đầu ra đơn giản là màn hình, bàn phím, chuột, micrô, loa, bàn di chuột, v.v. Chúng là tất cả những cách chúng ta tương tác với máy tính. • Ngày nay, hầu hết các máy tính đều có Kết nối mạng để truy xuất thông tin qua mạng. Chúng ta có thể coi mạng là một nơi rất chậm để lưu trữ và truy xuất dữ liệu có thể không phải lúc nào cũng “hoạt động”. Vì vậy, theo một nghĩa nào đó, mạng là một dạng Bộ nhớ thứ cấp chậm hơn và đôi khi không đáng tin cậy. Mặc dù hầu hết các chi tiết về cách các thành phần này hoạt động tốt nhất là dành cho các nhà chế tạo máy tính, nhưng sẽ hữu ích nếu có một số thuật ngữ để chúng ta có thể nói về các phần khác nhau này khi chúng ta viết chương trình của mình.

Python dành cho mọi người có đáng không?

Bạn nên đọc bài đánh giá này trước khi tham gia bất kỳ khóa học Python trực tuyến nào nhưng nếu bạn đang vội và muốn có câu trả lời Có/Không nhanh chóng cho dù bạn có nên tham gia khóa học chuyên môn này của Coursera hay không thì câu trả lời của chúng tôi là Yes, by all means, you should go for it.

Python3 là gì?

hỗ trợ các phương thức lập trình chức năng và có cấu trúc cũng như OOP . Nó có thể được sử dụng như một ngôn ngữ kịch bản hoặc có thể được biên dịch thành mã byte để xây dựng các ứng dụng lớn. Nó cung cấp các kiểu dữ liệu động mức rất cao và hỗ trợ kiểm tra kiểu động. Nó hỗ trợ thu gom rác tự động.

Chủ Đề