Giáo trình Tin Học - Hướng dẫn lập trình Python cơ bản
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Tin Học - Hướng dẫn lập trình Python cơ bản", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
File đính kèm:
giao_trinh_tin_hoc_huong_dan_lap_trinh_python_co_ban.pdf
Nội dung tài liệu: Giáo trình Tin Học - Hướng dẫn lập trình Python cơ bản
- Mục lục I Các câu lệnh Python cơ bản 7 Chương 1. Hướng dẫn cài đặt Python và Pycharm 9 1 Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2 Cài đặt Python trên Windows . . . . . . . . . . . . . . . . . . . . . . . . 11 3 Giao diện lập trình Python GUI . . . . . . . . . . . . . . . . . . . . . . . 12 4 Cài đặt PyCharm trên Window . . . . . . . . . . . . . . . . . . . . . . . . 14 5 Hướng dẫn setup và chạy chương trình với PyCharm . . . . . . . . . . 18 6 Chương trình đầu tiên trên PyCharm . . . . . . . . . . . . . . . . . . . . 22 7 Một số thao tác khác trên PyCharm . . . . . . . . . . . . . . . . . . . . . 23 8 Câu hỏi ôn tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Chương 2. Hiển thị kết quả trên Python 27 1 Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2 Hiển thị nhiều thông tin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3 Hiển thị với kí tự phân cách . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4 Hiển thị với kí tự kết thúc . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 5 Hiển thị với số thập phân . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 6 Câu hỏi ôn tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Chương 3. Nhập dữ liệu và Kiểu dữ liệu 31 1 Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2 Câu lệnh nhập dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3 Kiểu số nguyên trên Python . . . . . . . . . . . . . . . . . . . . . . . . . 32 3.1 Khai báo một biến kiểu số nguyên . . . . . . . . . . . . . . . . . 32 3.2 Nhập số nguyên từ bàn phím . . . . . . . . . . . . . . . . . . . . 33 3.3 Các phép toán trên số nguyên . . . . . . . . . . . . . . . . . . . 33 4 Kiểu số thực trên Python . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.1 Khai báo một biến kiểu số thực . . . . . . . . . . . . . . . . . . . 34 4.2 Nhập số thực từ bàn phím . . . . . . . . . . . . . . . . . . . . . . 34 4.3 Các phép toán trên số thực . . . . . . . . . . . . . . . . . . . . . 34 5 Xử lý lỗi nhập liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 6 Câu hỏi ôn tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Chương 4. Câu lệnh điều kiện IF 39 1 Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 2 Câu lệnh if .................................... 40 Hướng dẫn lập trình Python cơ bản Trang 3
- 3 Câu lệnh if else ................................. 41 4 Câu lệnh if elif else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 5 Câu lệnh lồng nhau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 6 Bàitập....................................... 43 7 Câu hỏi ôn tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Chương 5. Mảng một chiều - Cấu trúc lặp FOR 49 1 Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 2 Khai báo và truy xuất mảng một chiều . . . . . . . . . . . . . . . . . . . 50 3 Cấu trúc lặp for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4 Nhập mảng từ bàn phím . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5 Bàitập....................................... 52 6 Câu hỏi ôn tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Chương 6. Mảng nhiều chiều - FOR lồng nhau 57 1 Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 2 Thêm một file Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 3 Khai báo và truy xuất mảng nhiều chiều . . . . . . . . . . . . . . . . . . 59 4 Duyệt mảng nhiều chiều . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 5 Nhập mảng nhiều chiều từ bàn phím . . . . . . . . . . . . . . . . . . . 61 6 Bàitập....................................... 62 7 Câu hỏi ôn tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Chương 7. Cấu trúc lặp while 67 1 Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 2 Cú pháp vòng lặp while ............................ 68 2.1 Câu lệnh break và continue trong vòng lặp while ....... 69 2.1.1 Câu lệnh break ....................... 69 2.1.2 Câu lệnh continue ..................... 69 2.2 Sử dụng while trên một dòng . . . . . . . . . . . . . . . . . . . . 69 3 Cú pháp vòng lặp while-else ......................... 69 4 Bàitập....................................... 70 5 Câu hỏi ôn tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Chương 8. Các thao tác trên FILE 75 1 Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 2 Ghi dữ liệu ra File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 3 Đọc dữ liệu từ File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 4 Đọc mảng 1 chiều từ File . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 5 Đọc mảng nhiều chiều từ File . . . . . . . . . . . . . . . . . . . . . . . . 79 6 Bàitập....................................... 81 7 Câu hỏi ôn tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Chương 9. Hàm và lời gọi hàm 85 1 Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 2 Định nghĩa hàm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 3 GọiHàm ..................................... 86 3.1 Đối Số Mặc Định . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 3.2 Giá Trị Trả Về . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 3.3 Câu lệnh pass .............................. 88 Trang 4 The Dariu Foundation
- 4 Viết hàm để tính giai thừa . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 4.1 Viết hàm sử dụng vòng lặp for . . . . . . . . . . . . . . . . . . . 89 4.2 Viết hàm sử dụng đệ quy . . . . . . . . . . . . . . . . . . . . . . . 89 5 Bàitập....................................... 90 6 Câu hỏi ôn tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Chương 10. Cấu trúc dữ liệu nâng cao trên Python 95 1 Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 2 Chuỗi (string) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 2.1 Nối chuỗi, thay đổi hoặc xóa chuỗi . . . . . . . . . . . . . . . . 96 2.2 Phương thức dùng với biến kiểu chuỗi . . . . . . . . . . . . . . 97 3 Cấu trúc dữ liệu Tuple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 3.1 Khởi tạo và truy xuất các phần tử trong Tuple . . . . . . . . . . 97 3.2 Các thao tác với Tuple . . . . . . . . . . . . . . . . . . . . . . . . 98 3.3 Khi nào sử dụng Tuple . . . . . . . . . . . . . . . . . . . . . . . . 98 4 Cấu trúc dữ liệu tập hợp (Set) . . . . . . . . . . . . . . . . . . . . . . . . 99 4.1 Khởi tạo và truy xuất các phần tử trong tập hợp . . . . . . . . . 99 4.2 Thay đổi tập hợp . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 4.3 Các phép toán trong tập hợp . . . . . . . . . . . . . . . . . . . . 100 4.3.1 Phép hợp (Union) . . . . . . . . . . . . . . . . . . . . . 100 4.3.2 Phép giao (Intersection) . . . . . . . . . . . . . . . . . 100 4.3.3 Phép hiệu (Difference) . . . . . . . . . . . . . . . . . . 100 4.3.4 Hiệu đối xứng của hai tập hợp (Symmetric difference)101 4.4 Khi nào sử dụng tập hợp . . . . . . . . . . . . . . . . . . . . . . . 101 5 Cấu trúc dữ liệu từ điển (Dictionary) . . . . . . . . . . . . . . . . . . . . 101 5.1 Khởi tạo và truy xuất các phần tử trong từ điển . . . . . . . . . 101 5.2 Thêm và cập nhật phần tử trong từ điển . . . . . . . . . . . . . 102 5.3 Xóa phần tử khỏi từ điển . . . . . . . . . . . . . . . . . . . . . . . 102 5.4 Một số phương thức hay dùng trong từ điển . . . . . . . . . . . 103 5.5 Khi nào sử dụng từ điển . . . . . . . . . . . . . . . . . . . . . . . 103 6 Bàitập....................................... 103 7 Câu hỏi ôn tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 II Dự án ứng dụng 107 Chương 11. Trợ lý ảo trên Python - Văn bản thành Giọng nói 109 1 Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 2 Tạo mới một ứng dụng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 3 Cài đặt thư viện . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 4 Hiện thực chương trình . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 5 Câu hỏi ôn tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Chương 12. Trợ lý ảo trên Python - Nhận diện giọng nói 115 1 Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 2 Cài đặt thư viện . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 3 Hiện thực chương trình . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 4 Câu hỏi ôn tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Hướng dẫn lập trình Python cơ bản Trang 5
- Chương 13. Trợ lý ảo trên Python - Xây dựng trí thông minh 121 1 Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 2 Truy xuất ngày hiện tại . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 3 Hoàn thiện chương trình . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 4 Câu hỏi ôn tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 Chương 14. Lập trình giao diện trên Python 125 1 Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 2 Thiết kế giao diện . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 3 Thêm đối tượng giao diện vào cửa sổ . . . . . . . . . . . . . . . . . . . . 127 4 Câu hỏi ôn tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 Chương 15. Tạo hàm xử lý cho nút nhấn 131 1 Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 2 Khai báo hàm xử lý . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 3 Hiện thực hàm xử lý cho nút nhấn . . . . . . . . . . . . . . . . . . . . . 133 4 Bàitập....................................... 133 5 Câu hỏi ôn tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 Chương 16. Xử lý lỗi trên giao diện 135 1 Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 2 Xử lý lỗi nhập liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 3 Câu hỏi ôn tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 Trang 6 The Dariu Foundation
- Phần I Các câu lệnh Python cơ bản Hướng dẫn lập trình Python cơ bản Trang 7
- CHƯƠNG 1 Hướng dẫn cài đặt Python và Pycharm
- 1 Giới thiệu Python là một ngôn ngữ lập trình cấp cao và dễ tiếp cận hơn đối với những người mới bắt đầu học ngôn ngữ lập trình. Nếu so sánh Python với các ngôn ngữ truyền thống như Pascal hay C thì mức độ phức tạp của Python là thấp hơn. Một số ưu điểm của ngôn ngữ lập trình Python có thể kể ra như sau: • Python có cú pháp rất đơn giản. Nó dễ đọc và viết hơn rất nhiều khi so sánh với những ngôn ngữ lập trình khác như Pascal hay C. Mặc dù đôi lúc sự đơn giản này có thể gây ra một số phiền phức trong việc quản lý chương trình. Tuy nhiên Python làm cho việc lập trình trở đơn giản hơn, đặc biệt là các tác vụ nhập xuất (input và output), cho phép bạn tập trung vào những giải pháp chứ không phải cú pháp của ngôn ngữ lập trình. Một cách so sánh trừu tượng, Python tạo điều kiện cho bạn "giao tiếp ngôn ngữ", hơn là việc phải "học ngôn ngữ" một cách truyền thống. • Mã nguồn mở rộng rãi: Đây là yếu tố hết sức quan trọng dành cho người mới bắt đầu. Vì là mã nguồn mở, bạn không những có thể sử dụng các phần mềm, chương trình được viết trong Python mà còn có thể thay đổi mã nguồn của nó. Python có một cộng đồng rộng lớn, không ngừng cải thiện nó mỗi lần cập nhật. Rất nhiều mã nguồn mở liên quan đến trí tuệ nhân tạo hay nhận diện giọng nói đang có sẵn trên Python, để người dùng có thể phát triển những ứng dụng rất cao cấp. • Tương thích đa nền tảng: Rất nhiều hệ thống, từ máy tính cho đến các bo mạch nhúng, thậm chí là các bo mạch có tài nguyên thấp như MicroBit, cũng hỗ trợ ngôn ngữ lập trình Python. Do đó, bạn có thể hình dung rằng, phần mềm có thể chỉ cần phát triển một lần là có thể sử dụng cho rất nhiều nền tảng khác nhau. Chỉ với những thay đổi rất nhỏ, một phần mềm đang chạy trên máy tính cũng có thể chạy trên một bo mạch mini. Như vậy, có thể thấy rằng, ngôn ngữ lập trình Python là một khái niệm rất rộng. Tùy vào việc phát triển ứng dụng trên nền tảng nào, mà phần mềm đi kèm phù hợp sẽ được sử dụng, như minh họa ở Hình 1.1. Phần mềm ở đây không chỉ đóng vai trò là chương trình để chúng ta soạn thảo chương trình (hay còn gọi là lập trình), mà nó còn đóng vai trò biên dịch từ ngôn ngữ lập trình sang ngôn ngữ thực thi. Như minh họa ở Hình 1.1, khi lập trình Python trên máy tính, chúng ta sẽ cần 1 chương trình dịch từ ngôn ngữ Python sang ngôn ngữ mà máy tính có thể hiểu được. Và chương trình này, thông dụng nhất hiện tại là Python3. Tuy nhiên, nếu chúng ta muốn lập trình bằng ngôn ngữ Python nhưng cho mạch MicroBit, chúng ta sẽ cần một chương trình khác, chẳng hạn như là Mu. Chương trình này sẽ dịch từ ngôn ngữ Python sang ngôn ngữ mà mạch MicroBit có thể hiểu được. Trong hình Hình 1.1, chúng tôi gọi Máy tính hoặc mạch MicroBit là nền tảng thực thi. Cuối cùng, là phương thức dịch từ ngôn ngữ Python sang ngôn ngữ mà nền tảng thực thi có thể hiểu được, gọi là thông dịch (interpreter). Như một thông dịch viên, phần mềm sẽ dịch câu lệnh python đầu tiên, rồi thực thi nó. Sau đó, lại dịch tiếp câu lệnh thứ 2, và thực thi cho đến khi kết thúc chương trình. Đây là điểm vô cùng khác biệt so với ngôn ngữ Pascal, trình biên dịch sẽ dịch hết chương trình rồi mới Trang 10 The Dariu Foundation
- Hình 1.1: Ngôn ngữ lập trình và Trình biên dịch thực thi. Cũng vì lý do này, mà Python tương thích với nhiều nền tảng thực thi, vì bản chất chương trình Python chỉ là một file văn bản. Chỉ khi thực thi, nó mới được dịch sang ngôn ngữ mà nền tảng phần cứng hiểu được. Hướng dẫn bên dưới sẽ hướng dẫn chi tiết các bước cài đặt trình thông dịch Python3. Thực ra, sau khi cài đặt trình thông dịch này, chúng ta đã có một giao diện để lập trình bằng ngôn ngữ Python. Tuy nhiên, giao diện này khá nghèo nàn, nên chúng tôi khuyến khích bạn cài thêm PyCharm, một phần mềm rất được cộng đồng Python khuyên dùng. 2 Cài đặt Python trên Windows • Bước 1: Bạn tải Python phiên bản 3.8.5 từ đường dẫn sau đây: Trong trường hợp muốn cập nhật phiên bản mới hơn, bạn có thể truy cập vào trang chủ của Python là chọn tiếp vào mục Down- loads để lựa chọn phiên bản Python muốn cài. Tuy nhiên chúng tôi khuyến khích bạn xài phiên bản 3.8.5 trong hướng dẫn này. Hình 1.2: Tải phần mềm Python từ trang chủ Hướng dẫn lập trình Python cơ bản Trang 11
- • Bước 2: Khi tải xong, bạn tiến hành chạy file cài đặt có đuôi .exe vừa tải ở bước 1. Nhấp vào Install Now để cài đặt. Bạn cần phải chọn vào 2 tùy chọn cuối cùng (Install for all user và Add Python to PATH), như minh họa ở hình bên dưới. Hình 1.3: Chọn cả 2 tùy chọn, trước khi nhấn vào Install Now để cài đặt • Bước 3: Bạn có thể nhìn thấy tiến trình cài đặt Python lên máy. Hình 1.4: Đợi chương trình cài đặt Python • Bước 4: Khi cài đặt hoàn tất, bạn sẽ nhìn thấy một màn hình thông báo như dưới đây. Khi đó hãy click “Close” (ở góc dưới bên phải) để hoàn tất cài đặt. 3 Giao diện lập trình Python GUI Ngay sau khi cài đặt xong Python, bạn đã có thể bắt đầu lập trình. Từ nút khởi động Windows, bạn tìm kiếm với từ khóa Python GUI là thấy ứng dụng này, như minh họa ở Hình 14.1. Trang 12 The Dariu Foundation
- Hình 1.5: Quá trình cài đặt Python thành công Hình 1.6: Chương trình Python GUI Hướng dẫn lập trình Python cơ bản Trang 13